

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Buat indeks bidang untuk meningkatkan kinerja kueri dan mengurangi volume pemindaian
<a name="CloudWatchLogs-Field-Indexing"></a>

Anda dapat membuat *indeks bidang bidang* dalam peristiwa log Anda untuk pencarian berbasis kesetaraan yang efisien. Saat Anda kemudian menggunakan indeks bidang dalam kueri Wawasan CloudWatch Log, kueri akan mencoba melewati pemrosesan peristiwa log yang diketahui tidak menyertakan bidang yang diindeks. Ini mengurangi volume pemindaian kueri Anda yang menggunakan indeks bidang, sehingga memungkinkan untuk mengembalikan hasil lebih cepat. Ini dapat membantu Anda dengan cepat mencari petabyte dari total log di ribuan grup log, dan mengasah log yang relevan lebih cepat. Bidang yang baik untuk diindeks adalah bidang yang sering perlu Anda kueri. Bidang yang memiliki nilai kardinalitas tinggi juga merupakan kandidat yang baik untuk indeks bidang karena kueri yang menggunakan indeks bidang ini akan selesai lebih cepat karena membatasi peristiwa log yang dicocokkan dengan nilai target.

Misalnya, Anda telah membuat indeks bidang untuk`requestId`. Kemudian, kueri CloudWatch Logs Insights pada grup log yang menyertakan `requestId = value` atau `requestId IN [value, value, ...]` akan mencoba memproses hanya peristiwa log yang diketahui berisi bidang yang diindeks dan nilai kueri, dan bahwa CloudWatch Log telah mendeteksi nilai untuk bidang tersebut di masa lalu.

Anda juga dapat memanfaatkan indeks bidang Anda untuk membuat kueri efisien dari jumlah grup log yang lebih besar. Saat Anda menggunakan `filterIndex` perintah dalam kueri alih-alih `filter` perintah, kueri akan berjalan terhadap grup log yang dipilih pada peristiwa log yang memiliki indeks bidang. Kueri ini dapat memindai sebanyak 10.000 grup log yang Anda pilih dengan menentukan sebanyak lima awalan nama grup log. Jika ini adalah akun pemantauan dalam pengamatan CloudWatch lintas akun, Anda dapat memilih semua akun sumber atau menentukan akun sumber individu untuk memilih grup log”.

Bidang yang diindeks peka huruf besar/kecil. Misalnya, indeks bidang tidak `RequestId` akan cocok dengan peristiwa log yang berisi`requestId`.

Indeks bidang didukung hanya untuk format log terstruktur JSON dan log layanan.

CloudWatch Log menyediakan indeks bidang default untuk semua grup log di kelas log Standar. Indeks bidang default secara otomatis tersedia untuk bidang berikut: 
+ `@logStream`
+ `@aws.region`
+ `@aws.account`
+ `@source.log`
+ `@data_source_name`
+ `@data_source_type`
+ `@data_format`
+ `traceId`
+ `severityText`
+ `attributes.session.id`

CloudWatch Log menyediakan indeks bidang default untuk nama sumber data tertentu dan kombinasi tipe juga. Indeks bidang default secara otomatis tersedia untuk kombinasi nama dan jenis sumber data berikut:


| Nama dan Jenis Sumber Data | Indeks Bidang Default | 
| --- | --- | 
|  `amazon_vpc.flow`  |  `action` `logStatus` `region` `flowDirection` `type`  | 
|  `amazon_route53.resolver_query`  |  `query_type` `transport` `rcode`  | 
|  `aws_waf.access`  |  `action` `httpRequest.country`  | 
|  `aws_cloudtrail.data` ` aws_cloudtrail.management`  |  `eventSource` `eventName` `awsRegion` `userAgent` `errorCode` `eventType` `managementEvent` `readOnly` `eventCategory` `requestId`  | 

Indeks bidang default merupakan tambahan dari indeks bidang kustom apa pun yang Anda tentukan dalam kebijakan Anda. Indeks bidang default tidak dihitung terhadap kuota [indeks bidang](CloudWatchLogs-Field-Indexing-Syntax.md) Anda. 

CloudWatch Log hanya mengindeks peristiwa log yang dicerna setelah kebijakan indeks dibuat. Itu tidak mengindeks peristiwa log yang dicerna sebelum kebijakan dibuat. Setelah Anda membuat indeks bidang, setiap peristiwa log yang cocok tetap diindeks selama 30 hari dari waktu konsumsi peristiwa log.

**catatan**  
Jika Anda membuat kebijakan indeks bidang di akun pemantauan, kebijakan tersebut tidak akan digunakan untuk grup log di akun sumber tertaut. Kebijakan indeks bidang hanya berlaku di akun tempat kebijakan itu dibuat.

Topik lainnya di bagian ini menjelaskan cara membuat indeks bidang. Untuk informasi tentang merujuk ke indeks bidang dalam kueri Anda, lihat [FilterIndex](CWL_QuerySyntax-FilterIndex.md) dan. [filter](CWL_QuerySyntax-Filter.md) 

**Topics**
+ [Sintaks indeks bidang dan kuota](CloudWatchLogs-Field-Indexing-Syntax.md)
+ [Membuat kebijakan indeks bidang tingkat akun](CloudWatchLogs-Field-Indexing-CreateAccountLevel.md)
+ [Membuat kebijakan indeks bidang log-group](CloudWatchLogs-Field-Indexing-CreateLogGroupLevel.md)
+ [Opsi pemilihan grup log saat membuat kueri](Field-Indexing-Selection.md)
+ [Efek menghapus kebijakan indeks bidang](CloudWatchLogs-Field-Indexing-Deletion.md)

# Sintaks indeks bidang dan kuota
<a name="CloudWatchLogs-Field-Indexing-Syntax"></a>

Anda membuat indeks bidang dengan membuat *kebijakan indeks bidang*. Anda dapat membuat kebijakan indeks tingkat akun yang berlaku untuk seluruh akun Anda, dan Anda juga dapat membuat kebijakan yang hanya berlaku untuk satu grup log. Untuk kebijakan indeks seluruh akun, Anda dapat memiliki kebijakan yang berlaku untuk semua grup log di akun. Anda juga dapat membuat kebijakan indeks tingkat akun yang berlaku untuk subset grup log di akun, yang dipilih berdasarkan awalan nama grup log mereka. Jika Anda memiliki beberapa kebijakan tingkat akun di akun yang sama, awalan nama grup log untuk kebijakan ini tidak dapat tumpang tindih. Demikian pula, Anda dapat membuat kebijakan indeks tingkat akun yang berlaku untuk nama sumber data tertentu dan kombinasi tipe. Hanya satu kebijakan akun yang dapat dibuat per nama sumber data dan kombinasi jenis. 

Kebijakan indeks bidang tingkat grup log mengganti kebijakan indeks bidang tingkat akun: yang berlaku untuk grup log secara keseluruhan (seperti, kebijakan tingkat akun tanpa kriteria pemilihan atau dengan kriteria pemilihan berdasarkan awalan nama grup log). Kebijakan tingkat akun yang cocok di tingkat peristiwa log (seperti, untuk nama sumber data tertentu dan kombinasi jenis) akan berlaku selain kebijakan yang cocok dengan grup log secara keseluruhan. Jika Anda membuat kebijakan indeks tingkat log-grup, grup log tersebut tidak menggunakan kebijakan tingkat akun yang cocok di tingkat grup log.

Pencocokan peristiwa log dengan nama indeks bidang peka huruf besar/kecil. Misalnya, indeks bidang tidak `RequestId` akan cocok dengan peristiwa log yang berisi`requestId`.

Anda dapat memiliki sebanyak 40 kebijakan indeks tingkat akun, dari kebijakan ini 20 dapat menggunakan kriteria pemilihan awalan nama grup log dan 20 dapat menggunakan kriteria pemilihan berbasis sumber data. Jika Anda memiliki beberapa kebijakan indeks tingkat akun yang difilter untuk mencatat awalan nama grup, tidak ada dua dari mereka yang dapat menggunakan awalan nama grup log yang sama atau tumpang tindih. Misalnya, jika Anda memiliki satu kebijakan yang difilter untuk mencatat grup yang dimulai`my-log`, Anda tidak dapat memfilter kebijakan indeks bidang lain ke `my-logpprod` atau`my-logging`. Demikian pula, jika Anda memiliki beberapa kebijakan indeks tingkat akun yang difilter ke nama sumber data dan kombinasi tipe, tidak ada dua dari mereka yang dapat menggunakan nama dan jenis sumber data yang sama. Misalnya, jika Anda memiliki satu kebijakan yang difilter ke nama sumber data `amazon_vpc` dan tipe sumber data, `flow` Anda tidak dapat membuat kebijakan lain dengan kombinasi ini.

Jika Anda memiliki kebijakan indeks tingkat akun yang tidak memiliki awalan nama dan berlaku untuk semua grup log, maka tidak ada kebijakan indeks tingkat akun lain dengan filter awalan nama grup log yang dapat dibuat; Anda dapat membuat kebijakan indeks tingkat akun yang menggunakan nama sumber data dan jenis filter.

Setiap kebijakan indeks memiliki kuota dan batasan berikut:
+ Sebanyak 20 bidang dapat dimasukkan dalam kebijakan.
+ Setiap nama bidang dapat mencakup sebanyak 100 karakter.
+ Untuk membuat indeks bidang kustom di grup log Anda yang dimulai dengan`@`, Anda harus menentukan bidang dengan tambahan `@` di awal nama bidang. Misalnya, jika peristiwa log Anda menyertakan bidang bernama`@userId`, Anda harus menentukan `@@userId` untuk membuat indeks untuk bidang ini.

Untuk kebijakan indeks tingkat akun dengan nama sumber data dan kriteria pemilihan berdasarkan tipe, pembatasan tambahan berlaku: semua bidang harus berupa tipe data primitif, primitif bersarang hanya didukung untuk struct.

**Bidang yang dihasilkan dan bidang cadangan**

CloudWatch Wawasan Log secara otomatis menghasilkan bidang sistem di setiap peristiwa log. Bidang yang dihasilkan ini diawali dengan `@` Untuk informasi selengkapnya tentang bidang yang dihasilkan, lihat[Log yang didukung dan bidang yang ditemukan](CWL_AnalyzeLogData-discoverable-fields.md).

Dari bidang yang dihasilkan ini, berikut ini didukung untuk digunakan sebagai indeks bidang:
+ `@logStream`
+ `@ingestionTime`
+ `@requestId`
+ `@type`
+ `@initDuration`
+ `@duration`
+ `@billedDuration`
+ `@memorySize`
+ `@maxMemoryUsed`
+ `@xrayTraceId`
+ `@xraySegmentId`

Untuk mengindeks bidang yang dihasilkan ini, Anda tidak perlu menambahkan tambahan `@` saat menentukannya, seperti yang harus Anda lakukan untuk bidang khusus yang dimulai`@`. Misalnya, untuk membuat indeks bidang untuk`@logStream`, cukup tentukan `@logStream` sebagai indeks bidang.

CloudWatch Log menyediakan indeks bidang default untuk semua grup log di kelas log Standar. Indeks bidang default secara otomatis tersedia untuk bidang berikut: 
+ `@logStream`
+ `@aws.region`
+ `@aws.account`
+ `@source.log`
+ `@data_source_name`
+ `@data_source_type`
+ `@data_format`
+ `traceId`
+ `severityText`
+ `attributes.session.id`

CloudWatch Log menyediakan indeks bidang default untuk nama sumber data tertentu dan kombinasi tipe juga. Indeks bidang default secara otomatis tersedia untuk kombinasi nama dan jenis sumber data berikut:


| Nama dan Jenis Sumber Data | Indeks Bidang Default | 
| --- | --- | 
|  `amazon_vpc.flow`  |  `action` `logStatus` `region` `flowDirection` `type`  | 
|  `amazon_route53.resolver_query`  |  `query_type` `transport` `rcode`  | 
|  `aws_waf.access`  |  `action` `httpRequest.country`  | 
|  `aws_cloudtrail.data` ` aws_cloudtrail.management`  |  `eventSource` `eventName` `awsRegion` `userAgent` `errorCode` `eventType` `managementEvent` `readOnly` `eventCategory` `requestId`  | 

Indeks bidang default merupakan tambahan dari indeks bidang kustom apa pun yang Anda tentukan dalam kebijakan Anda. Indeks bidang default tidak dihitung terhadap kuota [indeks bidang](#CloudWatchLogs-Field-Indexing-Syntax) Anda. 

**Bidang anak dan bidang array di log JSON**

Anda dapat mengindeks bidang yang merupakan bidang turunan bersarang atau bidang array di log JSON.

Misalnya, Anda dapat membuat indeks bidang `accessKeyId` anak dalam `userIdentity` bidang dalam log ini:

```
{
    "eventVersion": "1.0",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "EXAMPLE_PRINCIPAL_ID",
        "arn": "arn: aws: iam: : 123456789012: user/Alice",
        "accessKeyId": "11112222",
        "accountId": "123456789012",
        "userName": "Alice"
    },
    "eventTime": "2014-03-06T21: 22: 54Z",
    "eventSource": "ec2.amazonaws.com",
    "eventName": "StartInstances",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "192.0.2.255",
    "userAgent": "ec2-api-tools1.6.12.2",
    "requestParameters": {
        "instancesSet": {
            "items": [{
                "instanceId": "i-abcde123",
                "currentState": {
                    "code": 0,
                    "name": "pending"
                },
                "previousState": {
                    "code": 80,
                    "name": "stopped"
                }
            }]
        }
    }
}
```

Untuk membuat bidang ini, Anda merujuknya menggunakan notasi titik (`userIdentity.accessKeyId`) baik saat membuat indeks bidang dan saat menentukannya dalam kueri. Kueri bisa terlihat seperti ini:

```
fields @timestamp, @message 
| filterIndex userIdentity.accessKeyId = "11112222"
```

Dalam contoh peristiwa sebelumnya, `instanceId` bidang berada dalam array dalam `requestParameters.instancesSet.items` Untuk mewakili bidang ini baik saat membuat indeks bidang dan saat query, lihat itu sebagai `requestParameters.instancesSet.items.0.instanceId` 0 mengacu pada tempat bidang itu dalam array.

Maka kueri untuk bidang ini bisa menjadi sebagai berikut:

```
fields @timestamp, @message 
| filterIndex requestParameters.instancesSet.items.0.instanceId="i-abcde123"
```

# Membuat kebijakan indeks bidang tingkat akun
<a name="CloudWatchLogs-Field-Indexing-CreateAccountLevel"></a>

Gunakan langkah-langkah di bagian ini untuk membuat kebijakan indeks bidang yang berlaku untuk semua grup log di akun, atau ke beberapa grup log yang memiliki nama grup log yang dimulai dengan string yang sama.

**Untuk membuat kebijakan indeks bidang tingkat akun**

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Di panel navigasi kiri, pilih **Pengaturan** dan kemudian pilih tab **Log**.

1. Di bagian **Kebijakan indeks tingkat akun**, pilih **Kelola**.

1. Pilih **Buat kebijakan indeks**.

1. Untuk **nama Kebijakan**, masukkan nama untuk kebijakan baru Anda.

1. Untuk **Pilih lingkup kebijakan**, lakukan salah satu hal berikut:
   + Pilih **Semua grup log standar** agar kebijakan indeks berlaku untuk semua grup log Kelas Standar di akun.
   + Pilih **Pencocokan grup log menurut awalan** untuk menerapkan kebijakan ke subset grup log yang semuanya memiliki nama yang dimulai dengan string yang sama. Kemudian, masukkan awalan untuk grup log ini di **Masukkan nama awalan**.

     Setelah memasukkan awalan, Anda dapat memilih **Pratinjau awalan grup log yang cocok** untuk mengonfirmasi bahwa awalan Anda cocok dengan grup log yang Anda harapkan.

     Pilih **Log Data menurut Sumber data** untuk menerapkan kebijakan ke kombinasi nama dan tipe sumber data tertentu. Anda kemudian dapat memilih **Sumber data** dan **Jenis data** dari menu tarik-turun. 

     Setelah Anda memilih nama dan jenis sumber data, Anda dapat memilih **Dapatkan bidang** untuk mengisi bagian **Konfigurasikan indeks bidang dan aspek** dengan informasi yang relevan seperti bidang yang tersedia, termasuk grup log, serta indeks bidang default dan kustom.

1. Untuk **konfigurasi bidang indeks kustom**, pilih **Tambahkan jalur bidang** untuk memasukkan bidang pertama yang akan diindeks.

   Kemudian masukkan string untuk digunakan sebagai nilai nama bidang atau pilih bidang dari menu drop-down. Ini harus menjadi kasus yang sama persis dengan apa yang muncul dalam peristiwa log. Misalnya, jika peristiwa log Anda termasuk`requestId`, Anda harus masuk `requestId` di sini. `RequestId`,`requestID`, dan `request Id` tidak akan cocok.

   Jika Anda ingin mengindeks bidang log kustom yang dimulai dengan `@` karakter, Anda harus menyertakan `@` karakter tambahan saat memasukkan string indeks. Misalnya, jika Anda memiliki bidang log kustom`@emailname`, masukkan `@@emailname` di kotak **Tambah jalur bidang**.

   Anda juga dapat membuat indeks untuk `@ingestionTime` dan `@logStream` bidang yang dihasilkan CloudWatch Log secara otomatis. Jika ya, Anda tidak perlu menambahkan tambahan `@` saat menentukannya.

1. (Opsional) Selain menentukan jalur bidang, Anda dapat memilih **Set sebagai faset** untuk membuat bidang sebagai faset.

1. Ulangi langkah sebelumnya untuk menambahkan sebanyak 20 indeks bidang.

1. Setelah selesai, pilih **Buat**.

# Membuat kebijakan indeks bidang log-group
<a name="CloudWatchLogs-Field-Indexing-CreateLogGroupLevel"></a>

Gunakan langkah-langkah di bagian ini untuk membuat kebijakan indeks bidang yang berlaku untuk satu grup log.

**Untuk membuat kebijakan indeks bidang tingkat log-group**

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Di panel navigasi kiri, pilih **Logs**, **Log groups** (Grup log).

1. Pilih nama grup log.

1. Pilih tab **Indeks bidang**.

1. Pilih **Kelola indeks bidang untuk grup log ini**

1. Untuk **Mengelola indeks bidang tingkat grup log**, pilih **Tambahkan jalur bidang** untuk memasukkan bidang pertama yang akan diindeks.

   Kemudian masukkan string untuk digunakan sebagai nilai nama bidang. Ini harus menjadi kasus yang sama persis dengan apa yang muncul dalam peristiwa log. Misalnya, jika peristiwa log Anda termasuk`requestId`, Anda harus masuk `requestId` di sini. `RequestId`,`requestID`, dan tidak `request Id` akan cocok.

   Jika Anda ingin mengindeks bidang log kustom yang dimulai dengan `@` karakter, Anda harus menyertakan `@` karakter tambahan saat memasukkan string indeks. Misalnya, jika Anda memiliki bidang log kustom`@emailname`, masukkan `@@emailname` di kotak **Tambah jalur bidang**.

   Anda juga dapat membuat indeks untuk `@ingestionTime` dan `@logStream` bidang yang dihasilkan CloudWatch Log secara otomatis. Jika Anda melakukannya, tidak perlu menambahkan tambahan `@` saat menentukannya.

1. (Opsional) Selain menentukan jalur bidang, Anda dapat memilih **Set sebagai faset** untuk membuat bidang sebagai faset.

1. Ulangi langkah sebelumnya untuk menambahkan sebanyak 20 indeks bidang.

1. Setelah Anda selesai, pilih **Simpan**.

# Opsi pemilihan grup log saat membuat kueri
<a name="Field-Indexing-Selection"></a>

Bagian ini menjelaskan berbagai cara Anda dapat memilih grup log untuk disertakan dalam kueri.

**Untuk memilih grup log untuk kueri di konsol**

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Di panel navigasi, pilih **Log**, **Wawasan Log**.

1. Pilih bahasa kueri yang ingin Anda gunakan untuk kueri ini. **Anda dapat memilih: **Log Wawasan QL, OpenSearch PPL****, atau SQL**. OpenSearch **

1. Ada tiga cara untuk memilih grup log untuk kueri:
   + Gunakan kotak **nama grup Log**. Ini adalah metode pemilihan default. Anda dapat memasukkan sebanyak 50 nama grup log dengan metode ini. Jika ini adalah akun pemantauan dalam pengamatan CloudWatch lintas akun, Anda dapat memilih grup log di akun sumber serta akun pemantauan. Satu kueri dapat menanyakan log dari akun yang berbeda sekaligus. 
   + Gunakan bagian **Kriteria grup Log**. Di bagian ini, Anda dapat memilih grup log berdasarkan awalan nama grup log. Anda dapat menyertakan sebanyak lima awalan dalam satu kueri. Grup log yang memiliki awalan ini dalam nama mereka akan dipilih. Atau, opsi **Semua grup log** memilih semua grup log dari akun. 
   + Jika ini adalah akun pemantauan dalam pengamatan CloudWatch lintas akun, Anda dapat memilih **Semua akun** di menu tarik-turun akun untuk memilih grup log dari semua akun yang ditautkan. Atau, Anda dapat secara individual memilih akun mana yang harus disertakan untuk kueri ini.

   Jika pilihan Anda cocok dengan lebih dari 10.000 grup log, Anda akan melihat kesalahan yang meminta Anda untuk mempersempit pilihan Anda.

1. Kelas log default untuk kueri adalah **Standar**. Anda dapat menggunakan **kelas Log** untuk mengubahnya menjadi **akses yang jarang**.

**Menggunakan AWS CLI**

Untuk membuat jenis pilihan ini ketika Anda memulai kueri dari baris perintah, Anda dapat menggunakan `source` perintah dalam kueri Anda. Untuk informasi selengkapnya dan contoh tambahan, lihat [SUMBER](CWL_QuerySyntax-Source.md).

# Efek menghapus kebijakan indeks bidang
<a name="CloudWatchLogs-Field-Indexing-Deletion"></a>

Jika Anda menghapus kebijakan indeks bidang yang telah berlaku selama beberapa waktu, hal berikut akan terjadi:
+ Hingga 30 hari setelah kebijakan dihapus, kueri masih dapat memperoleh manfaat dari peristiwa log yang diindeks.
+ Jika Anda menghapus kebijakan indeks tingkat log-grup, dan sudah ada kebijakan tingkat akun yang akan berlaku untuk grup log tersebut, kebijakan tingkat akun pada akhirnya akan berlaku untuk grup log tersebut.