Ir para o conteúdo

Como soluciono problemas de logs lentos no Amazon OpenSearch Service?

5 minuto de leitura
0

Quando eu ativo os logs lentos de pesquisa no meu domínio do Amazon OpenSearch Service, recebo um erro. Ou não consigo ver os logs lentos no meu grupo de logs do Amazon CloudWatch.

Resolução

Não é possível criar o erro da política de acesso a recursos

Se sua conta da AWS exceder 10 políticas de recursos em uma única região da AWS, você receberá o seguinte erro nos CloudWatch Logs:

“Unable to create the Resource Access Policy - You have reached the maximum limit for number of Resource Access Policies for CloudWatch Logs. Please select an existing policy and edit it or delete an older policy and try again.”

Para resolver esse erro, crie uma política de recursos que inclua vários grupos de logs:


{  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "es.amazonaws.com"
      },
      "Action": [
        "logs:PutLogEvents",
        "logs:CreateLogStream"
      ],
      "Resource": [
        "ARN-Log-Group-1",
        "ARN-Log-Group-2",
        "ARN-Log-Group-3",
        "ARN-Log-Group-4"
      ]
    }
  ]
}

Observação: substitua region pela sua região. Substitua account-id pelo ID da sua conta.

Importante: não é possível aumentar a cota da política do AWS Identity and Access Management (AWS IAM).

Logs lentos não são entregues

Se você não vê seus logs lentos entregues ao CloudWatch, verifique sua política do IAM ou seus limites do OpenSearch Service.

Você deve configurar sua política do IAM para registrar suas consultas porque o OpenSearch Service exige permissão para gravar nos CloudWatch Logs.

Para atualizar sua política do IAM, conclua as seguintes etapas:

  1. Abra o console do OpenSearch Service.
  2. Escolha seu domínio.
  3. Escolha a guia Logs e, em seguida, escolha Pesquisar logs lentos.
  4. Escolha Selecionar configuração.
  5. Atualize sua política do IAM com seus valores de recursos:
    
    {  "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "es.amazonaws.com"
          },
          "Action": [
            "logs:PutLogEvents",
            "logs:CreateLogStream"
          ],
          "Resource": "arn:aws:region:account_id:log-group:/aws/aes/domains/myes/search-logs:*"
        }
      ]
    }
    Observação: substitua region pela sua região. Substitua account-id pelo ID da sua conta.
  6. (Opcional) Para maior segurança, adicione as chaves de condição aws:SourceAccount e aws:SourceArn à sua política:
    {
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "account-id"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:es:region:account-id:domain/domain-name"
        }
      }
    }
    Observação: substitua region pela sua região. Substitua account-id pelo ID da sua conta. Substitua domain-name pelo seu nome de domínio.
  7. Selecione Ativar.

Para obter mais informações, consulte Habilitar publicação de log (console).

Por padrão, o OpenSearch Service tem o registro desativado. É possível usar uma chamada de API para definir o nível de log e o limite de tempo. Essas configurações são dinâmicas, então é possível atualizar as configurações em um cluster em execução e o OpenSearch Service as aplica imediatamente.

Defina um limite de tempo apropriado para seu domínio. Se todas as suas solicitações forem concluídas antes do limite definido, o CloudWatch não entregará seus logs ao seu grupo de logs. É possível definir limites individuais de nível de índice para cada nível de depuração (TRACE, DEBUG, INFO e WARN).

Por exemplo, defina o limite para o nível de depuração WARN como 10 segundos para seu índice nos painéis do OpenSearch:

PUT /YOURINDEXNAME/_settings
{
  "index.search.slowlog.threshold.query.warn": "10s"
}

Observação: substitua YOURINDEXNAME pelo nome do índice.

Para o curl, execute o seguinte comando:

curl -XPUT http://your_domain_endpoint/index/_settings -d '{"index.search.slowlog.threshold.query.level":"10s"}'

Observação: substitua your_domain_endpoint pelo endpoint do seu domínio. Substitua 10s pelo limite de log que você deseja usar.

Para registrar todas as consultas do seu domínio, é possível definir TRACE para 0 milissegundos. No entanto, é intensivo o uso de recursos para registrar todas as consultas e isso pode afetar o desempenho do seu domínio. Para desativar o log, defina o limite como -1.

Para verificar seu limite, execute o seguinte comando:

GET /YOURINDEXNAME/_settings?pretty

Observação: substitua YOURINDEXNAME pelo nome do índice.

O OpenSearch Service registra todas as consultas que excedem o limite definido.

Aplique configurações de logs lentos para todos os novos índices no nível do cluster

Para aplicar configurações de logs lentos para todos os novos índices no nível do cluster, use modelos de índice. Não há uma configuração em todo o cluster para indexar logs lentos no OpenSearch Service.

Crie um modelo de índice que inclua as configurações de logs lentos:


PUT _template/all_indices_template
{
  "index_patterns": ["*"], // This applies to all indices
  "settings": {
    "index.indexing.slowlog.threshold.index.warn": "10s",
    "index.indexing.slowlog.threshold.index.info": "5s",
    "index.indexing.slowlog.threshold.index.debug": "2s",
    "index.indexing.slowlog.threshold.index.trace": "500ms"
  }
}

O modelo anterior aplica automaticamente as configurações a todos os novos índices que você cria após a configuração do modelo.

Práticas recomendadas

Realize as seguintes ações:

  • Faça atualizações de configuração uma de cada vez.
  • Para identificar consultas de pesquisa lentas, defina um limite para a fase de consulta e a fase de busca.
  • Teste com um valor limite baixo. Aumente lentamente o limite para registrar somente as consultas que afetam o desempenho ou exigem otimização.
  • Escolha o número certo de fragmentos para seu cluster e o caso de uso para otimizar o desempenho do cluster. Para obter mais informações, consulte Estratégia de fragmentos.
  • Para logs lentos, ative o registro nos níveis de depuração TRACE, DEBUG, INFO e WARN. Cada nível de depuração registra diferentes categorias de informações. Ative o registro de log de acordo com o status da solicitação.

Informações relacionadas

Análise de logs lentos do Amazon Elasticsearch Service usando o streaming de Amazon CloudWatch Logs e Kibana

How do I troubleshoot CloudWatch Logs so that it streams to my OpenSearch Service domain? (Como posso solucionar problemas do CloudWatch Logs para que ele transmita para meu domínio do OpenSearch Service?)

Visualizar logs de erros do Amazon OpenSearch Service

AWS OFICIALAtualizada há 2 meses