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á.
Monitoramento de logs do OpenSearch com o Amazon CloudWatch Logs
O Amazon OpenSearch Service expõe os seguintes logs do OpenSearch via Amazon CloudWatch Logs:
Os logs lentos de fragmentos de pesquisa, logs lentos de fragmentos de indexação e logs 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 habilitados, os preços padrão do CloudWatch
nota
Os logs de erros estão disponíveis apenas para o OpenSearch e o Elasticsearch versões 5.1 e posteriores. Os logs lentos estão disponíveis para todas as versões do OpenSearch e do Elasticsearch.
Para os próprios logs, o OpenSearch usa o Apache Log4j 2TRACE
, DEBUG
, INFO
, WARN
, ERROR
e FATAL
.
Se você habilitar os logs de erros, o OpenSearch Service publicará as linhas de logs de WARN
, ERROR
e FATAL
no CloudWatch. O OpenSearch Service também publica várias exceções do nível DEBUG
, 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
nota
O OpenSearch Service não registra todos os erros que ocorrem.
Tópicos
- Habilitação da publicação de logs (console)
- Habilitação da publicação de logs (AWS CLI)
- Habilitação da publicação de logs (AWS SDKs)
- Habilitação da publicação de logs (CloudFormation)
- Definindo limites de log lento para solicitações de pesquisa
- Definindo limites de logs lentos de fragmentos
- Testando logs lentos
- Visualizar logs
Habilitação da publicação de logs (console)
O console do OpenSearch Service é a maneira mais simples de habilitar a publicação de logs no CloudWatch.
Para habilitar a publicação de logs no CloudWatch (console)
-
Vá para https://aws.amazon.com
e escolha Fazer login no console. -
Em Análise, escolha Amazon OpenSearch Service.
-
Selecione o domínio que deseja atualizar.
-
Na guia Logs, selecione um tipo de log e escolha Habilitar.
-
Crie um novo grupo de logs do CloudWatch ou escolha um já 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.
-
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
eaws: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
O CloudWatch Logs oferece suporte a 10 políticas baseadas em recurso por região. Se você planejar habilitar os logs para vários domínios do OpenSearch Service, crie e reutilize uma política mais abrangente que inclua vários grupos de logs 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).
-
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ê tiver habilitado um dos logs lentos de fragmentos, consulte Definindo limites de logs lentos de fragmentos. Se você habilitou os logs de auditoria, consulte Etapa 2: ativar os logs de auditoria no OpenSearch Dashboards. 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 logs, você precisa de um grupo de logs do CloudWatch. 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 Service para gravar o grupo de log. 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
O CloudWatch Logs oferece suporte a 10 políticas baseadas em recurso por região. Se você planejar habilitar os logs lentos de fragmentos para vários domínios do OpenSearch Service, crie e reutilize uma política mais abrangente que inclua vários grupos de logs 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= |
INDEX_SLOW_LOGS={CloudWatchLogsLogGroupArn= |
|
ES_APPLICATION_LOGS={CloudWatchLogsLogGroupArn= |
|
AUDIT_LOGS={CloudWatchLogsLogGroupArn= |
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 habilita a publicação de pesquisa e logs lentos de fragmentos de indexação no 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 desabilitar a publicação no CloudWatch, execute o mesmo comando com Enabled=false
.
Se você tiver habilitado um dos logs lentos de fragmentos, consulte Definindo limites de logs lentos de fragmentos. Se você habilitou os logs de auditoria, consulte Etapa 2: ativar os logs de auditoria no OpenSearch Dashboards. 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)
Para poder habilitar a publicação de logs, você deve primeiro criar um grupo de logs do CloudWatch, obter seu ARN e fornecer ao OpenSearch Service permissões para gravar nele. As operações relevantes estão documentadas na Referência da API do Amazon CloudWatch Logs:
-
CreateLogGroup
-
DescribeLogGroup
-
PutResourcePolicy
Você pode acessar essas operações usando os AWS SDKs
Os SDKs da AWS (exceto os SDKs para Android e iOS) são compatíveis com todas as operações definidas na Amazon OpenSearch Service API Reference (Referência da API do Amazon OpenSearch Service), incluindo a opção --log-publishing-options
para CreateDomain
e UpdateDomainConfig
.
Se você tiver habilitado um dos logs lentos de fragmentos, consulte Definindo limites de logs lentos de fragmentos. 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 o CloudFormation para criar um grupo de logs chamado opensearch-logs
, atribuímos as permissões adequadas e criamos um domínio com a publicação de log habilitada para logs de aplicações, logs lentos de fragmentos de pesquisa e logs lentos de indexação.
Antes que você possa habilitar a publicação de logs, é necessário criar um grupo de logs do CloudWatch:
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 conceda ao OpenSearch Service permissões para gravar no grupo de logs:
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 seguinte pilha CloudFormation, que gera um domínio OpenSearch Service com publicação de log. A política de acesso permite que o usuário do Conta da AWS faça todas as solicitações HTTP ao domínio.
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 logs lentos de solicitação de pesquisa
Você pode especificar logs lentos de solicitação de pesquisa com configurações de cluster. Isso é diferente dos logs lentos de fragmentos, que você ativa com as configurações de índice. Por exemplo, é possível especificar as seguintes configurações por meio da API REST do OpenSearch:
PUT
domain-endpoint
/_cluster/settings { "transient": { "cluster.search.request.slowlog.threshold.warn": "5s", "cluster.search.request.slowlog.threshold.info": "2s" } }
Definindo limites de logs lentos de fragmentos
O OpenSearch desabilita os logs lentos de fragmentos
Por exemplo, você pode especificar essas configurações por meio da API REST do OpenSearch:
PUT
domain-endpoint
/index
/_settings { "index.search.slowlog.threshold.query.warn": "5s", "index.search.slowlog.threshold.query.info": "2s" }
Testando logs lentos
Para testar se os logs lentos de solicitação de pesquisa e de fragmentos estão sendo publicados com êxito, comece com valores bem baixos para verificar se os logs aparecem no CloudWatch e, em seguida, aumente os limites para níveis mais úteis.
Se os logs não aparecerem, verifique o seguinte:
-
O grupo de log do CloudWatch existe? Verifique o console do CloudWatch.
-
O OpenSearch Service tem permissões para gravar no grupo de log? Verifique o console do OpenSearch Service.
-
O domínio do OpenSearch Service está configurado para publicar no grupo de logs? Verifique o console do OpenSearch Service use a opção
describe-domain-config
da AWS CLI ou chameDescribeDomainConfig
usando um dos SDKs. -
Os limites de log do OpenSearch são baixos a ponto de suas solicitações excedê-los?
Para revisar os limites de logs lentos de sua solicitação de pesquisa para um domínio, use o seguinte comando:
GET
domain-endpoint
/_cluster/settings?flat_settingsPara revisar seus limites de logs lentos de fragmentos 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 o CloudWatch usando o console do OpenSearch Service ou a AWS CLI não impede que o OpenSearch Service gere logs, apenas interrompe a publicação desses logs. Verifique suas configurações de índice se você não precisar mais dos logs lentos de fragmentos e suas configurações de domínio se não precisar mais dos logs lentos de solicitação de pesquisa.
Visualizar logs
Visualizar a aplicação e os logs lentos no CloudWatch é igual a qualquer outra visualização de log do CloudWatch. Para obter mais informações, consulte Visualizar dados de log no Manual do usuário do Amazon CloudWatch Logs.
Algumas considerações sobre a visualização de logs:
-
O OpenSearch Service publica apenas os primeiros 255.000 caracteres de cada linha no CloudWatch. O conteúdo restante ficará truncado. Para logs de auditoria, o limite é de 10.000 caracteres por mensagem.
-
No CloudWatch, os nomes dos fluxos de log têm os sufixos
-index-slow-logs
,-search-slow-logs
,-application-logs
e-audit-logs
para ajudar a identificar seu conteúdo.