Como soluciono problemas de logs lentos no Amazon OpenSearch Service?

Última atualização: 2021-07-30

Habilitei os logs lentos de pesquisa para meu domínio do Amazon OpenSearch Service (sucessor do Amazon Elasticsearch Service). No entanto, recebo um erro ou os logs lentos não aparecem em meu grupo de logs do Amazon CloudWatch. Como resolvo isso?

Resolução

Recebo um erro ao tentar configurar logs lentos

Se sua conta da AWS tiver mais de dez políticas de recursos para sua região, você receberá a seguinte mensagem de erro no Amazon 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 essa mensagem de erro, crie uma política de recursos que inclua vários grupos de logs.

Por exemplo:

{
    "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: não é possível aumentar o limite de políticas do AWS Identity and Access Management (IAM).

Não vejo a entrega de nenhum log lento

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

Como o OpenSearch Service requer permissão para gravar no CloudWatch Logs, você deve ter a política adequada do IAM para registrar suas consultas em log. Para atualizar sua política do IAM, acesse Search Slow Logs (Pesquisar logs lentos) e escolha Select Setup (Selecionar configuração).

Por exemplo:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "es.amazonaws.com"
      },
      "Action": [
        "logs:PutLogEvents",
        "logs:CreateLogStream"
      ],
      "Resource": "arn:aws:logs:us-east-1:588671893395:log-group:/aws/aes/domains/myes/search-logs:*"
    }
  ]
}

Além disso, não esqueça de definir um limite de tempo adequado para o seu domínio. Por exemplo, se todas as suas solicitações forem concluídas antes do limite definido, seus logs não serão entregues ao grupo de logs.

Também é possível definir limites individuais por INDEX para cada nível de depuração (TRACE, DEBUG, INFO e WARN).

Por exemplo, você pode definir o limite para os níveis de depuração WARN como dez segundos para o índice YOURINDEXNAME no OpenSearch Dashboards:

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

Observação: é possível definir TRACE como “0" milissegundos para registrar em log todas as consultas para o seu domínio. No entanto, como o registro de todas as consultas em log consome muitos recursos, a performance do seu domínio pode ser afetada.

Em seguida, verifique seu limite usando o seguinte comando:

GET/YOURINDEXNAME/_settings?pretty

O OpenSearch Service registra em log todas as consultas que ultrapassem o limite definido.

Práticas recomendadas

  • Evite fazer várias alterações de configuração (como ativar ou desativar logs publicados no CloudWatch) ao mesmo tempo. A realização de muitas mudanças de configuração ao mesmo tempo desencadeia várias implantações azul/verde. Várias implantações azul/verde podem fazer com que o domínio do OpenSearch Service fique preso em um estado de processamento. Para mais informações sobre implantação azul/verde, consulte Alterar a configuração do OpenSearch Service.
  • Defina o limite para a fase de consulta e a fase de busca a fim de identificar consultas de pesquisa lenta.
  • Teste com um valor de limite baixo e aumente gradualmente o limite para registrar em log somente as consultas que estejam afetando a performance ou exigindo otimização.
  • Escolha o número adequado de fragmentos para o cluster a fim de otimizar a performance do cluster. Para mais informações sobre a manutenção de fragmentos, consulte Práticas recomendadas do Amazon OpenSearch Service.
  • Para logs lentos, habilite o registro em log nos níveis de depuração TRACE, DEBUG, INFO e WARN. Como cada nível de depuração registra diferentes categorias de informações em log, uma das práticas recomendadas é habilitar o registro em log de acordo com o status da solicitação.