

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Crie índices de campo para melhorar o desempenho da consulta e reduzir o volume de escaneamento
<a name="CloudWatchLogs-Field-Indexing"></a>

Você pode criar *índices de campos* em seus eventos de logs para fazer pesquisas eficientes com base na igualdade. Quando você usa um índice de campo em uma consulta do CloudWatch Logs Insights, a consulta tenta ignorar o processamento de eventos de registro que, sabidamente, não incluem o campo indexado. Isso reduz o volume de escaneamento de suas consultas que usam índices de campo, possibilitando o retorno mais rápido dos resultados. Isso pode ajudar você a pesquisar rapidamente petabytes do total de logs em milhares de grupos de logs e a aprimorar os logs relevantes com mais rapidez. Os campos que você precisa consultar com mais frequência são bons para serem indexados. Campos com alta cardinalidade de valores também são bons candidatos para índices de campo, pois uma consulta usando esses índices de campo será concluída mais rapidamente, já que limita os eventos de logs que estão sendo correspondidos ao valor alvo.

Por exemplo, suponha que você tenha criado um índice de campo para `requestId`. Em seguida, qualquer consulta do CloudWatch Logs Insights nesse grupo de registros que inclua `requestId = value` ou `requestId IN [value, value, ...]` tente processar somente os eventos de registro que são conhecidos por conter esse campo indexado e o valor consultado, e que o CloudWatch Logs tenha detectado um valor para esse campo no passado.

Você também pode aproveitar seus índices de campo para criar consultas eficientes de um grande número de grupos de logs. Quando você usa o comando `filterIndex` em sua consulta em vez do comando `filter`, a consulta é executada em grupos de logs selecionados em eventos de logs que têm índices de campo. Essas consultas podem verificar até 10.000 grupos de logs selecionados especificando até cinco prefixos de nome de grupos de logs. Se for uma conta de monitoramento na observabilidade CloudWatch entre contas, você pode escolher todas as contas de origem ou especificar contas de origem individuais para selecionar os grupos de registros”.

Os campos indexados diferenciam maiúsculas e minúsculas. Por exemplo, um índice de campo de `RequestId` não corresponderá a um evento de logs que contenha `requestId`.

Os índices de campos são compatíveis somente com os formatos de log estruturados de JSON e logs de serviço.

CloudWatch Os registros fornecem índices de campo padrão para todos os grupos de registros na classe de registros padrão. Os índices de campo padrão ficam disponíveis automaticamente para os seguintes campos: 
+ `@logStream`
+ `@aws.region`
+ `@aws.account`
+ `@source.log`
+ `@data_source_name`
+ `@data_source_type`
+ `@data_format`
+ `traceId`
+ `severityText`
+ `attributes.session.id`

CloudWatch O Logs também fornece índices de campo padrão para determinadas combinações de nome e tipo de fonte de dados. Os índices de campo padrão estão disponíveis automaticamente para as seguintes combinações de nome e tipo de fonte de dados:


| Nome e tipo da fonte de dados | Índices de campo padrão | 
| --- | --- | 
|  `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`  | 

Os índices de campo padrão são adicionais aos índices de campo personalizados definidos em sua política. Os índices de campo padrão não são contabilizados em sua [cota de índice de campo](CloudWatchLogs-Field-Indexing-Syntax.md). 

CloudWatch Os registros indexam somente os eventos de registro ingeridos após a criação de uma política de índice. Ele não indexa eventos de logs ingeridos antes da criação da política. Depois de criar um índice de campo, cada evento de logs correspondente permanece indexado por 30 dias a partir do tempo de ingestão do evento de logs.

**nota**  
Se você criar uma política de índice de campo em uma conta de monitoramento, essa política não será usada para grupos de logs em contas de origem vinculadas. Uma política de índice de campo se aplica somente na conta em que foi criada.

O restante dos tópicos desta seção explica como criar índices de campo. Para obter informações sobre como se referir aos índices de campo em suas consultas, consulte [filterIndex](CWL_QuerySyntax-FilterIndex.md) e [filtrar](CWL_QuerySyntax-Filter.md). 

**Topics**
+ [Sintaxe e cotas do índice de campo](CloudWatchLogs-Field-Indexing-Syntax.md)
+ [Crie uma política de índice de campo ao nível da conta](CloudWatchLogs-Field-Indexing-CreateAccountLevel.md)
+ [Crie uma política de índice de campo em nível de grupo de logs](CloudWatchLogs-Field-Indexing-CreateLogGroupLevel.md)
+ [Opções de seleção de grupos de logs ao criar uma consulta](Field-Indexing-Selection.md)
+ [Efeitos da exclusão de uma política de índice de campo](CloudWatchLogs-Field-Indexing-Deletion.md)

# Sintaxe e cotas do índice de campo
<a name="CloudWatchLogs-Field-Indexing-Syntax"></a>

É possível gerar índices de campo criando *políticas de índice de campo*. Você pode criar políticas de índice em nível de conta que se aplicam a toda a sua conta, bem como políticas que se aplicam somente a um único grupo de logs. Para políticas de indexação em toda a conta, você pode ter uma que se aplique a todos os grupos de logs da conta. Também é possível criar políticas de índice em nível de conta que se apliquem a um subconjunto de grupos de logs na conta, selecionados pelos prefixos dos nomes dos grupos de logs. Se você tiver várias políticas em nível de conta na mesma conta, os prefixos do nome do grupo de logs para essas políticas não podem se sobrepor. Da mesma forma, você pode criar políticas de índice em nível de conta que se apliquem a uma combinação específica de nome e tipo de fonte de dados. Somente uma política de conta pode ser criada por combinação de nome e tipo de fonte de dados. 

As políticas de índice de campo em nível de grupo de registros substituem as políticas de índice de campo em nível de conta: que se aplicam ao grupo de registros como um todo (como políticas em nível de conta sem critérios de seleção ou com critérios de seleção baseados no prefixo do nome do grupo de registros). As políticas em nível de conta que correspondam ao nível do evento de registro (como, por exemplo, para uma determinada combinação de nome e tipo de fonte de dados) serão aplicadas, além das políticas que correspondam ao grupo de registros como um todo. Se você criar uma política de índice em nível de grupo de registros, esse grupo de registros não usará políticas em nível de conta que correspondam ao nível do grupo de registros.

As correspondências de eventos de logs com os nomes dos índices de campo diferenciam maiúsculas de minúsculas. Por exemplo, um índice de campo de `RequestId` não corresponderá a um evento de logs que contenha `requestId`.

Você pode ter até 40 políticas de índice em nível de conta. Dessas políticas, 20 podem usar critérios de seleção de prefixo de nome de grupo de log e 20 podem usar critérios de seleção baseados em fonte de dados. Se você tiver várias políticas de índice em nível de conta filtradas para prefixos de nome de grupo de logs, nenhuma delas poderá usar prefixos de nome de grupo de logs iguais ou sobrepostos. Por exemplo, se você tiver uma política filtrada para grupos de logs que começam com `my-log`, não pode ter outra política de índice de campo filtrada para `my-logpprod` ou `my-logging`. Da mesma forma, se você tiver várias políticas de índice em nível de conta filtradas para combinações de nome e tipo de fonte de dados, nenhuma delas poderá usar o mesmo nome e tipo de fonte de dados. Por exemplo, se você tiver uma política filtrada pelo nome `amazon_vpc` e tipo da fonte de dados, não `flow` poderá criar outra política com essa combinação.

Se você tiver uma política de índice em nível de conta que não tenha prefixos de nome e se aplique a todos os grupos de registros, nenhuma outra política de índice em nível de conta com filtros de prefixo de nome de grupo de registros poderá ser criada; você pode criar políticas de índice em nível de conta que usem filtros de nome e tipo de fonte de dados.

Cada política de indexação tem as seguintes cotas e restrições:
+ Podem ser incluídos até 20 campos na política.
+ Cada nome de campo pode incluir até 100 caracteres.
+ Para criar um índice de um campo personalizado em seus grupos de logs que comece com `@`, você deve especificar o campo com um `@` extra no início do nome do campo. Por exemplo, se seus eventos de logs incluírem um campo chamado `@userId`, você deverá especificar `@@userId` para criar um índice para esse campo.

Para políticas de índice em nível de conta com critérios de seleção baseados no nome da fonte de dados e tipo, uma restrição adicional se aplica: todos os campos devem ser tipos de dados primitivos, os primitivos aninhados só são compatíveis com estruturas.

**Campos gerados e campos reservados**

CloudWatch O Logs Insights gera automaticamente campos do sistema em cada evento de registro. Esses campos gerados são prefixados com `@`. Para obter mais informações sobre os campos gerados, consulte [Logs compatíveis e campos descobertos](CWL_AnalyzeLogData-discoverable-fields.md).

Os seguintes campos gerados são compatíveis para uso como índices de campo:
+ `@logStream`
+ `@ingestionTime`
+ `@requestId`
+ `@type`
+ `@initDuration`
+ `@duration`
+ `@billedDuration`
+ `@memorySize`
+ `@maxMemoryUsed`
+ `@xrayTraceId`
+ `@xraySegmentId`

Para indexar esses campos gerados, você não precisa adicionar um `@` extra ao especificá-los, como é necessário fazer com campos personalizados que começam com `@`. Por exemplo, para criar um índice de campo para `@logStream`, basta especificar `@logStream` como índice de campo.

CloudWatch Os registros fornecem índices de campo padrão para todos os grupos de registros na classe de registros padrão. Os índices de campo padrão ficam disponíveis automaticamente para os seguintes campos: 
+ `@logStream`
+ `@aws.region`
+ `@aws.account`
+ `@source.log`
+ `@data_source_name`
+ `@data_source_type`
+ `@data_format`
+ `traceId`
+ `severityText`
+ `attributes.session.id`

CloudWatch O Logs também fornece índices de campo padrão para determinadas combinações de nome e tipo de fonte de dados. Os índices de campo padrão estão disponíveis automaticamente para as seguintes combinações de nome e tipo de fonte de dados:


| Nome e tipo da fonte de dados | Índices de campo padrão | 
| --- | --- | 
|  `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`  | 

Os índices de campo padrão são adicionais aos índices de campo personalizados definidos em sua política. Os índices de campo padrão não são contabilizados em sua [cota de índice de campo](#CloudWatchLogs-Field-Indexing-Syntax). 

**Campos secundários e campos de matriz em logs JSON**

Você pode indexar campos que são secundários aninhados ou de matriz em logs JSON.

Por exemplo, você pode criar um índice do campo filho `accessKeyId` dentro do campo `userIdentity` desse log:

```
{
    "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"
                }
            }]
        }
    }
}
```

Para criar esse campo, você se refere a ele usando a notação de ponto (`userIdentity.accessKeyId`) ao criar o índice do campo e ao especificá-lo em uma consulta. A consulta pode ser como esta:

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

No evento de exemplo anterior, o campo `instanceId` está em uma matriz em `requestParameters.instancesSet.items`. Para representar esse campo ao criar o índice de campos e para consultar, indique-o como `requestParameters.instancesSet.items.0.instanceId`. O 0 se refere ao lugar desse campo no array.

Em seguida, uma consulta para esse campo pode ser:

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

# Crie uma política de índice de campo ao nível da conta
<a name="CloudWatchLogs-Field-Indexing-CreateAccountLevel"></a>

Use as etapas desta seção para criar uma política de índice de campo que se aplique a todos ou vários grupos de logs na conta que tenham nomes começados com a mesma string.

**Para criar uma política de índice de campo ao nível da conta**

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Na barra de navegação à esquerda, escolha **Configurações** e, em seguida, escolha **Logs**.

1. Na seção **Políticas de índice em nível de conta**, escolha **Gerenciar**.

1. Escolha **Criar política de índice**.

1. Em **Nome da política**, insira um nome para sua nova política.

1. Em **Selecionar escopo da política**, faça o seguinte:
   + Escolha **Todos os grupos de logs padrão** para que a política de índice se aplique a todos os grupos de logs da Classe Padrão na conta.
   + Escolha **Grupos de registros por correspondência de prefixo** para aplicar a política a um subconjunto de grupos de registros, todos com nomes que começam com a mesma string. Em seguida, insira o prefixo desses grupos de logs em **Inserir um nome de prefixo**.

     Depois de inserir seu prefixo, você pode escolher **Visualizar grupos de logs correspondentes ao prefixo** para confirmar se seu prefixo corresponde aos grupos que você esperava.

     Escolha **Dados de registros por fonte de dados** para aplicar a política a uma combinação específica de nome e tipo de fonte de dados. Em seguida, você pode selecionar a **Fonte de dados** **e o Tipo** de dados no menu suspenso. 

     Depois de selecionar o nome e o tipo da fonte de dados, você pode selecionar **Obter campos** para preencher a seção **Configurar índices e facetas de campo** com informações relevantes, como os campos disponíveis, os grupos de registros incluídos e os índices de campo padrão e personalizados.

1. Em **Configuração personalizada do campo de índice**, selecione **Adicionar caminho de campo** para inserir o primeiro campo a ser indexado.

   Em seguida, insira a string a ser usada como valor do nome do campo ou selecione um campo no menu suspenso. Ela deve ter letras maiúsculas e minúsculas que correspondam exatamente ao que aparece nos eventos de logs. Por exemplo, se seus eventos de logs incluírem `requestId`, você deverá inserir `requestId` aqui. `RequestId`, `requestID` e `request Id` não corresponderão.

   Se você quiser indexar um campo de log personalizado que comece com o caractere `@`, inclua um caractere extra `@` ao inserir a string de índice. Por exemplo, se você tiver um campo de log personalizado `@emailname`, insira `@@emailname` na caixa **Adicionar caminho do campo**.

   Você também pode criar índices para os `@logStream` campos `@ingestionTime` e que o CloudWatch Logs gera automaticamente. Se você fizer isso, não será necessário adicionar um `@` extra ao especificá-los.

1. (Opcional) Além de especificar o caminho do campo, você pode selecionar **Definir como uma faceta** para criar o campo como uma faceta.

1. Repita a etapa anterior para adicionar até 20 índices de campo.

1. Quando terminar, selecione **Create (Criar)**.

# Crie uma política de índice de campo em nível de grupo de logs
<a name="CloudWatchLogs-Field-Indexing-CreateLogGroupLevel"></a>

Use as etapas desta seção para criar uma política de índice de campo que se aplique a um único grupo de logs.

**Para criar uma política de índice de campo em nível de grupo de logs**

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação esquerdo, selecione **Logs**, **Log groups (Grupos de log)**.

1. Escolha o nome do grupo de logs.

1. Escolha a guia **Índices de campo**.

1. Escolha **Gerenciar índices de campo para esse grupo de logs**.

1. Em **Gerenciar índices de campo em nível de grupo de logs**, escolha **Adicionar caminho de campo** para inserir o primeiro campo a ser indexado.

   Em seguida, insira a string a ser usada como valor do nome do campo. Ela deve ter letras maiúsculas e minúsculas que correspondam exatamente ao que aparece nos eventos de logs. Por exemplo, se seus eventos de logs incluírem `requestId`, você deverá inserir `requestId` aqui. `RequestId`, `requestID` e `request Id` não corresponderão.

   Se você quiser indexar um campo de log personalizado que comece com o caractere `@`, inclua um caractere extra `@` ao inserir a string de índice. Por exemplo, se você tiver um campo de log personalizado `@emailname`, insira `@@emailname` na caixa **Adicionar caminho do campo**.

   Você também pode criar índices para os `@logStream` campos `@ingestionTime` e que o CloudWatch Logs gera automaticamente. Se você fizer isso, não será necessário adicionar um `@` extra ao especificá-los.

1. (Opcional) Além de especificar o caminho do campo, você pode selecionar **Definir como uma faceta** para criar o campo como uma faceta.

1. Repita a etapa anterior para adicionar até 20 índices de campo.

1. Quando terminar, escolha **Salvar**.

# Opções de seleção de grupos de logs ao criar uma consulta
<a name="Field-Indexing-Selection"></a>

Esta seção explica as várias maneiras pelas quais você pode selecionar grupos de logs a serem incluídos em uma consulta.

**Para selecionar grupos de logs para uma consulta no console**

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, escolha **Logs**, **Logs Insights**.

1. Selecione a linguagem de consulta que deseja usar para esta consulta. Você pode escolher entre: **Logs Insights QL**, **OpenSearchPPL** ou **OpenSearch SQL**.

1. Há três maneiras de selecionar grupos de logs para a consulta:
   + Use a caixa **Nome do grupo de logs**. Este é o método de seleção padrão. Você pode inserir até 50 nomes de grupos de logs com esse método. Se for uma conta de monitoramento na observabilidade CloudWatch entre contas, você poderá selecionar grupos de registros nas contas de origem e na conta de monitoramento. Uma única consulta pode consultar logs de diferentes contas ao mesmo tempo. 
   + Use a seção **Critérios do grupo de logs**. Nesta seção, você pode escolher grupos de logs com base no prefixo dos nomes dos grupos de logs. É possível incluir até cinco prefixos em uma consulta. Serão selecionados grupos de logs que tenham esses prefixos nos nomes. Como alternativa, a opção **Todos os grupos de logs** seleciona todos os grupos da conta. 
   + Se for uma conta de monitoramento na observabilidade CloudWatch entre contas, você pode selecionar **Todas as contas** no menu suspenso de contas para selecionar os grupos de registros de todas as contas vinculadas. Como alternativa, você pode selecionar individualmente quais contas devem ser incluídas nessa consulta.

   Se suas opções corresponderem a mais de 10.000 grupos de logs, será exibido um erro solicitando que você restrinja sua seleção.

1. A classe de log padrão para uma consulta é **Padrão**. Você pode usar a **classe Log** para alterá-la para **Acesso infrequente**.

**Usando o AWS CLI**

Para fazer esses tipos de seleções ao iniciar uma consulta na linha de comando, você pode usar o comando `source` na sua consulta. Para ter mais informações e exemplos, consulte [SOURCE](CWL_QuerySyntax-Source.md).

# Efeitos da exclusão de uma política de índice de campo
<a name="CloudWatchLogs-Field-Indexing-Deletion"></a>

Se você excluir uma política de índice de campo que está em vigor há algum tempo, pode acontecer o seguinte:
+ Por até 30 dias após a exclusão da política, as consultas ainda podem se beneficiar dos eventos de logs indexados.
+ Se você excluir uma política de índice em nível de grupo de logs e já existir uma política em nível de conta que se aplicaria a esse grupo, a política em nível de conta acabará se aplicando a ele.