OpenSearch Registros de monitoramento com o Amazon CloudWatch Logs - OpenSearch Serviço Amazon

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á.

OpenSearch Registros de monitoramento com o Amazon CloudWatch Logs

O Amazon OpenSearch Service expõe os seguintes OpenSearch registros por meio do Amazon CloudWatch Logs:

Os registros lentos do fragmento de pesquisa, os registros lentos do fragmento de indexação e os registros de erros são úteis para solucionar problemas de desempenho e estabilidade. Os logs de auditoria rastreiam a atividade do usuário para fins de conformidade Por padrão, todos os logs são desabilitados. Se ativado, o CloudWatch preço padrão se aplica.

nota

Os registros de erros estão disponíveis somente para as versões 5.1 OpenSearch e posteriores do Elasticsearch. Os registros lentos estão disponíveis para todas as versões OpenSearch e para o Elasticsearch.

Para seus registros, OpenSearch usa o Apache Log4j 2 e seus níveis de log integrados (do menos ao mais severo) deTRACE,,DEBUG, INFOWARN, e. ERROR FATAL

Se você ativar os registros de erros, o OpenSearch Serviço publicará linhas de registro de WARNERROR, e FATAL para CloudWatch. OpenSearch O serviço também publica várias exceções do DEBUG nível, incluindo as seguintes:

  • org.opensearch.index.mapper.MapperParsingException

  • org.opensearch.index.query.QueryShardException

  • org.opensearch.action.search.SearchPhaseExecutionException

  • org.opensearch.common.util.concurrent.OpenSearchRejectedExecutionException

  • java.lang.IllegalArgumentException

Os logs de erros podem ajudar a solucionar problemas em muitas situações, incluindo:

  • Problemas de compilação de script Painless

  • Consultas inválidas

  • Indexação de problemas

  • Falhas de snapshots

  • Falhas de migração do Index State Management

Habilitação da publicação de logs (console)

O console OpenSearch de serviço é a maneira mais simples de permitir a publicação de registros no CloudWatch.

Para habilitar a publicação de registros em CloudWatch (console)
  1. Vá para https://aws.amazon.com e escolha Fazer login no console.

  2. Em Analytics, escolha Amazon OpenSearch Service.

  3. Selecione o domínio que deseja atualizar.

  4. Na guia Logs, selecione um tipo de log e escolha Habilitar.

  5. Crie um novo grupo de CloudWatch registros ou escolha um existente.

    nota

    Se você planejar habilitar vários logs, recomendamos publicar cada um em seu próprio grupo de logs. Essa separação torna os logs mais fáceis de serem encontrados.

  6. Escolha uma política de acesso que contenha as permissões apropriadas ou crie uma política usando o JSON fornecido pelo console:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": [ "logs:PutLogEvents", "logs:CreateLogStream" ], "Resource": "cw_log_group_arn:*" } ] }

    Recomendamos que você adicione as chaves de condição aws:SourceAccount e aws:SourceArn na política para se proteger contra o problema confused deputy. A conta de origem é o proprietário do domínio e o ARN de origem é o ARN do domínio. Para adicionar essas chaves de condição, o seu domínio deve estar no software de serviço R20211203 ou superior.

    Por exemplo, você poderia adicionar o bloco de condições a seguir na política:

    "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:es:region:account-id:domain/domain-name" } }
    Importante

    CloudWatch O Logs oferece suporte a 10 políticas de recursos por região. Se você planeja habilitar registros para vários domínios OpenSearch de serviço, crie e reutilize uma política mais ampla que inclua vários grupos de registros para evitar atingir esse limite. Para obter as etapas sobre como atualizar a política, consulte Habilitação da publicação de logs (AWS CLI).

  7. Escolha Habilitar.

    O status de seu domínio muda de Active para Processing. O status deve retornar para Ativo antes que a publicação de logs seja habilitada. Essa alteração geralmente leva 30 minutos, mas pode demorar mais, dependendo da configuração do domínio.

Se você ativou um dos registros lentos de fragmentação, consulteDefinindo limites de fragmentação de registros lentos. Se você habilitou os logs de auditoria, consulte Etapa 2: ativar os registros de auditoria nos OpenSearch painéis. Se tiver habilitado apenas logs de erros, você não precisará executar nenhuma etapa de configuração adicional.

Habilitação da publicação de logs (AWS CLI)

Antes de habilitar a publicação de registros, você precisa de um grupo de CloudWatch registros. Se você ainda não tem, pode criar um usando o seguinte comando:

aws logs create-log-group --log-group-name my-log-group

Digite o comando seguinte para localizar o ARN do grupo de log e anote-o:

aws logs describe-log-groups --log-group-name my-log-group

Agora você pode conceder permissões ao OpenSearch Serviço para gravar no grupo de registros. Você deve fornecer o ARN do grupo de log quase no final do comando:

aws logs put-resource-policy \ --policy-name my-policy \ --policy-document '{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com"}, "Action":[ "logs:PutLogEvents","logs:CreateLogStream"],"Resource": "cw_log_group_arn:*"}]}'
Importante

CloudWatch O Logs oferece suporte a 10 políticas de recursos por região. Se você planeja habilitar a fragmentação de registros lentos para vários domínios de OpenSearch serviço, crie e reutilize uma política mais ampla que inclua vários grupos de registros para evitar atingir esse limite.

Se você precisar revisar essa política posteriormente, use o comando aws logs describe-resource-policies. Para atualizar a política, emita o mesmo comando aws logs put-resource-policy com um novo documento de política.

Por fim, você pode usar a --log-publishing-options opção de habilitar a publicação. A sintaxe para essa opção é a mesma para os comandos create-domain e update-domain-config.

Parâmetro Valores válidos
--log-publishing-options SEARCH_SLOW_LOGS={CloudWatchLogsLogGroupArn=cw_log_group_arn,Enabled=true|false}
INDEX_SLOW_LOGS={CloudWatchLogsLogGroupArn=cw_log_group_arn,Enabled=true|false}
ES_APPLICATION_LOGS={CloudWatchLogsLogGroupArn=cw_log_group_arn,Enabled=true|false}
AUDIT_LOGS={CloudWatchLogsLogGroupArn=cw_log_group_arn,Enabled=true|false}
nota

Se você planejar habilitar vários logs, recomendamos publicar cada um em seu próprio grupo de logs. Essa separação torna os logs mais fáceis de serem encontrados.

Exemplo

O exemplo a seguir permite a publicação de registros lentos de fragmentos de pesquisa e indexação para o domínio especificado:

aws opensearch update-domain-config \ --domain-name my-domain \ --log-publishing-options "SEARCH_SLOW_LOGS={CloudWatchLogsLogGroupArn=arn:aws:logs:us-east-1:123456789012:log-group:my-log-group,Enabled=true},INDEX_SLOW_LOGS={CloudWatchLogsLogGroupArn=arn:aws:logs:us-east-1:123456789012:log-group:my-other-log-group,Enabled=true}"

Para desativar a publicação em CloudWatch, execute o mesmo comando comEnabled=false.

Se você ativou um dos registros lentos de fragmentação, consulteDefinindo limites de fragmentação de registros lentos. Se você habilitou os logs de auditoria, consulte Etapa 2: ativar os registros de auditoria nos OpenSearch painéis. Se tiver habilitado apenas logs de erros, você não precisará executar nenhuma etapa de configuração adicional.

Habilitação da publicação de logs (AWS SDKs)

Antes de habilitar a publicação de registros, você deve primeiro criar um grupo de CloudWatch registros, obter seu ARN e conceder permissões ao OpenSearch Serviço para gravar nele. As operações relevantes estão documentadas na Referência da API Amazon CloudWatch Logs:

  • CreateLogGroup

  • DescribeLogGroup

  • PutResourcePolicy

Você pode acessar essas operações usando os AWS SDKs.

Os AWS SDKs (exceto os SDKs para Android e iOS) oferecem suporte a todas as operações definidas na Amazon OpenSearch Service API Reference, incluindo a --log-publishing-options opção de e. CreateDomain UpdateDomainConfig

Se você ativou um dos registros lentos de fragmentação, consulteDefinindo limites de fragmentação de registros lentos. Se tiver habilitado apenas logs de erros, você não precisará executar nenhuma etapa de configuração adicional.

Habilitação da publicação de logs (CloudFormation)

Neste exemplo, usamos CloudFormation para criar um grupo de registros chamadoopensearch-logs, atribuir as permissões apropriadas e, em seguida, criar um domínio com a publicação de registros ativada para registros de aplicativos, fragmentar registros lentos de pesquisa e indexar registros lentos.

Antes de habilitar a publicação de registros, você precisa criar um grupo de CloudWatch registros:

Resources: OpenSearchLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: opensearch-logs Outputs: Arn: Value: 'Fn::GetAtt': - OpenSearchLogGroup - Arn

O modelo gera o ARN do grupo de logs. Neste caso, o ARN é arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs.

Usando o ARN, crie uma política de recursos que dê ao OpenSearch serviço permissões para gravar no grupo de registros:

Resources: OpenSearchLogPolicy: Type: AWS::Logs::ResourcePolicy Properties: PolicyName: my-policy PolicyDocument: "{ \"Version\": \"2012-10-17\", \"Statement\": [{ \"Sid\": \"\", \"Effect\": \"Allow\", \"Principal\": { \"Service\": \"es.amazonaws.com\"}, \"Action\":[ \"logs:PutLogEvents\",\"logs:CreateLogStream\"],\"Resource\": \"arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs:*\"}]}"

Por fim, crie a CloudFormation pilha a seguir, que gera um domínio OpenSearch de serviço com publicação de registros. A política de acesso permite que o usuário faça todas as solicitações HTTP para o domínio. Conta da AWS

Resources: OpenSearchServiceDomain: Type: "AWS::OpenSearchService::Domain" Properties: DomainName: my-domain EngineVersion: "OpenSearch_1.0" ClusterConfig: InstanceCount: 2 InstanceType: "r6g.xlarge.search" DedicatedMasterEnabled: true DedicatedMasterCount: 3 DedicatedMasterType: "r6g.xlarge.search" EBSOptions: EBSEnabled: true VolumeSize: 10 VolumeType: "gp2" AccessPolicies: Version: "2012-10-17" Statement: Effect: "Allow" Principal: AWS: "arn:aws:iam::123456789012:user/es-user" Action: "es:*" Resource: "arn:aws:es:us-east-1:123456789012:domain/my-domain/*" LogPublishingOptions: ES_APPLICATION_LOGS: CloudWatchLogsLogGroupArn: "arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs" Enabled: true SEARCH_SLOW_LOGS: CloudWatchLogsLogGroupArn: "arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs" Enabled: true INDEX_SLOW_LOGS: CloudWatchLogsLogGroupArn: "arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs" Enabled: true

Para obter informações detalhadas sobre sintaxe, consulte as opções de publicação de logs no Manual do usuário do AWS CloudFormation .

Definindo limites de log lento para solicitações de pesquisa

Os registros lentos da solicitação de pesquisa estão disponíveis para pesquisa em domínios OpenSearch de serviço executados na versão 2.13 e posterior. Os limites de log lento da solicitação de pesquisa são configurados para o tempo total de solicitação demorada. Isso é diferente dos registros lentos de solicitações de fragmentos, que são configurados para cada fragmento demorado.

Você pode especificar registros lentos da solicitação de pesquisa com configurações de cluster. Isso difere dos fragmentos de registros lentos, que você ativa com as configurações de índice. Por exemplo, você pode especificar as seguintes configurações por meio da API OpenSearch REST:

PUT domain-endpoint/_cluster/settings { "transient": { "cluster.search.request.slowlog.threshold.warn": "5s", "cluster.search.request.slowlog.threshold.info": "2s" } }

Definindo limites de fragmentação de registros lentos

OpenSearch desativa a fragmentação de registros lentos por padrão. Depois de habilitar a publicação de fragmentos de registros lentos no CloudWatch, você ainda precisa especificar limites de registro para cada OpenSearch índice. Esses limites definem exatamente o que deve ser registrado e em que nível de log.

Por exemplo, você pode especificar essas configurações por meio da API OpenSearch REST:

PUT domain-endpoint/index/_settings { "index.search.slowlog.threshold.query.warn": "5s", "index.search.slowlog.threshold.query.info": "2s" }

Testando registros lentos

Para testar se a solicitação de pesquisa e os registros lentos de fragmentação estão sendo publicados com êxito, considere começar com valores muito baixos para verificar se os registros aparecem e CloudWatch, em seguida, aumentar os limites para níveis mais úteis.

Se os logs não aparecerem, verifique o seguinte:

  • O grupo CloudWatch de registros existe? Verifique o CloudWatch console.

  • O OpenSearch serviço tem permissões para gravar no grupo de registros? Verifique o console OpenSearch de serviço.

  • O domínio do OpenSearch serviço está configurado para publicar no grupo de registros? Verifique o console OpenSearch de serviço, use a AWS CLI describe-domain-config opção ou ligue DescribeDomainConfig usando um dos SDKs.

  • Os limites de OpenSearch registro são baixos o suficiente para que suas solicitações os excedam?

    Para analisar os limites de registro lento de sua solicitação de pesquisa para um domínio, use o seguinte comando:

    GET domain-endpoint/_cluster/settings?flat_settings

    Para revisar seus limites de log de fragmentação lenta para um índice, use o seguinte comando:

    GET domain-endpoint/index/_settings?pretty

Se você quer desabilitar logs lentos para um índice, redefina todos os limites que você mudou para os valores padrão de -1.

Desabilitar a publicação para CloudWatch usar o console de OpenSearch serviço ou AWS CLI não interrompe OpenSearch a geração de registros; apenas interrompe a publicação desses registros. Certifique-se de verificar suas configurações de índice se você não precisar mais dos registros lentos do shard e suas configurações de domínio se não precisar mais dos registros lentos da solicitação de pesquisa.

Visualizar logs

Visualizar o aplicativo e os logins lentos CloudWatch é como visualizar qualquer outro CloudWatch registro. Para obter mais informações, consulte Exibir dados de registro no Guia do usuário do Amazon CloudWatch Logs.

Algumas considerações sobre a visualização de logs:

  • OpenSearch O serviço publica somente os primeiros 255.000 caracteres de cada linha para. CloudWatch O conteúdo restante ficará truncado. Para logs de auditoria, o limite é de 10.000 caracteres por mensagem.

  • Em CloudWatch, os nomes dos fluxos de log têm sufixos de-index-slow-logs, -search-slow-logs-application-logs, e -audit-logs para ajudar a identificar seu conteúdo.