Monitoraggio dei OpenSearch log con Amazon CloudWatch Logs - OpenSearch Servizio Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Monitoraggio dei OpenSearch log con Amazon CloudWatch Logs

OpenSearchIl servizio Amazon utilizza i seguenti OpenSearch log tramite Amazon CloudWatch Logs Logs:

I log di ricerca lenti, i log di indicizzazione lenti e i log di errore sono utili per la risoluzione dei problemi relativi alle prestazioni e alla stabilità. I log di verifica tengono traccia dell'attività degli utenti a fini di conformità Tutti i log sono disabilitati per impostazione predefinita. Se attivati, si applicano i prezzi standard CloudWatch.

Nota

I log di errore sono disponibili solo per le versioni Elasticsearch search Search 5.1 OpenSearch e versioni successive e registri abilitata. I log lenti sono disponibili per tutte le versioni OpenSearch e Elasticsearch log log di Elasticsearch search log log log abilitata

Per i log, OpenSearch utilizza Apache Log4j 2 e i relativi livelli di log integrati (dal minore al più severo) di TRACE, DEBUG, INFO, WARN, ERROR e FATAL.

Se si attivano i registri degli errori, OpenSearch Service pubblica le righe di registro di WARN e FATAL su. ERROR CloudWatch OpenSearchService pubblica inoltre diverse eccezioni dal DEBUG livello, tra cui:

  • org.opensearch.index.mapper.MapperParsingException

  • org.opensearch.index.query.QueryShardException

  • org.opensearch.action.search.SearchPhaseExecutionException

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

  • java.lang.IllegalArgumentException

I log di errore possono aiutarti con la risoluzione dei problemi in molti casi, tra cui i seguenti:

  • Problemi di compilazione di script Painless

  • Query non valide

  • Problemi di indicizzazione

  • Snapshot non riuscite

  • Errori di migrazione di Index State Management

Abilitazione della pubblicazione di log (console)

La OpenSearch Service console è il modo più semplice per abilitare la pubblicazione di log di log suCloudWatch.

Per abilitare la pubblicazione di log su CloudWatch (console)
  1. Andare all'indirizzo https://aws.amazon.com e quindi scegliere Sign In to the Console (Accedi alla console).

  2. In Analytics, scegli Amazon OpenSearch Service.

  3. Selezionare il dominio da aggiornare.

  4. Nella scheda Log, seleziona un tipo di log e scegli Abilita.

  5. Crea un gruppo di CloudWatch log o scegline uno esistente.

    Nota

    Se si pianifica di abilitare molteplici log, consigliamo di pubblicarli ognuno sul proprio gruppo di log. Questa separazione rende più semplice analizzare i log.

  6. Scegliere una policy d'accesso che contiene le autorizzazioni appropriate oppure creare una policy utilizzando il formato JSON che la console offre:

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

    Si consiglia di aggiungere le chiavi di condizione aws:SourceAccount e aws:SourceArn alla policy per proteggersi dal problema del "confused deputy". L'account fonte è il proprietario del flusso di log e l'ARN fonte è l'ARN del dominio. Per aggiungere queste chiavi di condizione, il dominio deve trovarsi sul software di servizio R20211203 o versioni successive.

    Ad esempio, è possibile aggiungere il seguente blocco di condizione alla policy:

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

    CloudWatchLogs Logs Logs Logs Logs delle risorse per regione. Se si prevede di abilitare i log per vari domini di OpenSearch servizio, è necessario creare e riutilizzare una policy più ampia che include diversi gruppi di log per evitare di raggiungere questo limite. Per le fasi dell'aggiornamento della policy, consulta Abilitazione della pubblicazione di log (AWS CLI).

  7. Scegli Enable (Abilita).

    Lo stato del dominio cambia da Attivo a Elaborazione. Lo stato deve tornare su Attivo prima che venga abilitata la pubblicazione dei log. Questa modifica richiede in genere 30 minuti, ma può richiedere più tempo a seconda della configurazione del dominio.

Se è stato abilitato uno dei log lenti vedere Impostazione delle soglie di OpenSearch registrazione per i log lenti. Se sono stati abilitati i log di verifica, consultare Passaggio 2: attiva i registri di controllo nelle dashboard OpenSearch . Se sono stati abilitati solo i log di errore, non è necessario eseguire operazioni di configurazione aggiuntive.

Abilitazione della pubblicazione di log (AWS CLI)

Per abilitare la pubblicazione dei log, è necessario disporre di un gruppo di log CloudWatch. Se non se ne dispone già di uno, è possibile crearlo utilizzando il comando seguente:

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

Immettere il comando successivo per individuare l'ARN del gruppo di log e quindi annotarlo:

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

Adesso è possibile assegnare le autorizzazioni di OpenSearch Service per scrivere nel gruppo di log abilitata. È necessario indicare l'ARN del gruppo di log vicino al termine del 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

CloudWatchLogs Logs Logs Logs Logs delle risorse per regione. Se si prevede di abilitare i log lenti per vari domini di OpenSearch servizio, è necessario creare e riutilizzare una policy più ampia che include diversi gruppi di log per evitare di raggiungere questo limite.

Se è necessario rivedere questa policy in un secondo momento, utilizza il comando aws logs describe-resource-policies. Per aggiornare la policy, esegui lo stesso comando aws logs put-resource-policy con un nuovo documento di policy.

Infine, è possibile utilizzare l'opzione --log-publishing-options per abilitare la pubblicazione. La sintassi dell'opzione è identica per entrambi i comandi create-domain e update-domain-config.

Parametro Valori validi
--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 si pianifica di abilitare molteplici log, consigliamo di pubblicarli ognuno sul proprio gruppo di log. Questa separazione rende più semplice analizzare i log.

Esempio

L'esempio seguente descrive come pubblicare log di ricerca e indicizzazione lenti per il dominio specificato:

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}"

Per disabilitare la pubblicazione in CloudWatch, eseguire lo stesso comando con Enabled=false.

Se è stato abilitato uno dei log lenti vedere Impostazione delle soglie di OpenSearch registrazione per i log lenti. Se sono stati abilitati i log di verifica, consultare Passaggio 2: attiva i registri di controllo nelle dashboard OpenSearch . Se sono stati abilitati solo i log di errore, non è necessario eseguire operazioni di configurazione aggiuntive.

Abilitazione della pubblicazione di log (SDK AWS)

Prima di poter abilitare la pubblicazione di log, è necessario creare un gruppo di CloudWatch log, ottenere il relativo ARN e fornire al OpenSearch servizio le autorizzazioni di scrittura. Le operazioni rilevanti sono riportate nella Documentazione di riferimento delle API Amazon CloudWatch Logs Logs API Amazon Logs:

  • CreateLogGroup

  • DescribeLogGroup

  • PutResourcePolicy

È possibile accedere a tali operazioni utilizzando gli SDK AWS.

Gli AWS SDK (ad eccezione degli SDK Android e iOS) supportano tutte le operazioni definite in Informazioni di riferimento sull'API Amazon OpenSearch Service Service Service Service inclusa l'--log-publishing-optionsopzione per CreateDomain e registri abilitata. UpdateDomainConfig

Se è stato abilitato uno dei log lenti vedere Impostazione delle soglie di OpenSearch registrazione per i log lenti. Se sono stati abilitati solo i log di errore, non è necessario eseguire operazioni di configurazione aggiuntive.

Abilitazione della pubblicazione di log (CloudFormation)

In questo esempio, viene utilizzato CloudFormation per creare un gruppo di log denominatoopensearch-logs, sono assegnate le autorizzazioni appropriate e quindi viene creato un dominio con la pubblicazione dei log delle applicazioni, dei log di ricerca lenti e dei log di indicizzazione lenti.

Prima di poter abilitare la pubblicazione di log, è necessario creare un gruppo di CloudWatch log:

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

Il modello emette l'ARN del gruppo di log. In questo caso, l'ARN è arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs.

Utilizzando l'ARN, creare una policy delle risorse che conceda le autorizzazioni OpenSearch di Service per scrivere nel gruppo di log abilitata:

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:*\"}]}"

Infine, creare il seguente CloudFormation stack che genera un dominio OpenSearch Service con la pubblicazione dei log abilitata. La policy di accesso consente all'utente dell'Account AWS di effettuare tutte le richieste HTTP al dominio.

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

Per informazioni dettagliate sulla sintassi, consultare Opzioni di pubblicazione dei log nella Guida per l'utente di AWS CloudFormation

Impostazione delle soglie di OpenSearch registrazione per i log lenti

OpenSearch disabilita i log di query lente per impostazione predefinita. Dopo aver abilitato la pubblicazione di log di query lente in CloudWatch, è comunque necessario specificare le soglie di logging per ogni indice OpenSearch. Queste soglie definiscono esattamente cosa deve essere registrato e a quale livello di log.

È possibile specificare queste impostazioni tramite l'API REST di OpenSearch:

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

Per controllare che i log di query lente siano pubblicati correttamente, partire da valori molto bassi per verificare che i log appaiano in CloudWatch e poi aumentare le soglie a livelli più utili.

Se i log non vengono visualizzati, verificare quanto segue:

  • Il gruppo di log CloudWatch esiste? Controllare la console CloudWatch.

  • OpenSearchService dispone delle autorizzazioni per scrivere nel gruppo di log? Controllare la Console OpenSearch di servizio abilitata.

  • Il dominio OpenSearch Service Service Service Service Service per pubblicare nel gruppo di log? Controlla la console di OpenSearch servizio, utilizza l'AWS CLIdescribe-domain-configopzione o chiama DescribeDomainConfig utilizzando uno degli SDK.

  • Le soglie di logging OpenSearch sono sufficientemente basse da essere superate dalle richieste? Per esaminare le soglie per un indice, utilizzare il comando seguente:

    GET domain-endpoint/index/_settings?pretty

Se desideri disattivare i log di query lente per un indice, ripristinare le soglie modificate sul valore predefinito di -1.

La disabilitazione della pubblicazione per CloudWatch utilizzare la console OpenSearch Service o AWS CLI non OpenSearch impedisce di generare log, ma ne interrompe solo la pubblicazione. Assicurarsi di verificare le impostazioni dell'indice se non si ha più necessità dei log di query lente.

Visualizzazione dei registri di

La visualizzazione dei log lenti e dell'applicazione in CloudWatch è identica alla visualizzazione di qualsiasi altro log CloudWatch. Per ulteriori informazioni, consulta Visualizza i dati di registro nella Guida per l'utente di Amazon CloudWatch Logs.

Di seguito sono elencate alcune considerazioni per la visualizzazione dei log:

  • OpenSearchService pubblica solo i primi 255.000 caratteri di ciascuna riga su. CloudWatch Il contenuto rimanente viene troncato. Per i log di verifica, sono possibili 10.000 caratteri per messaggio.

  • NelCloudWatch, i nomi dei flussi di log hanno i suffissi di-index-slow-logs, -search-slow-logs-application-logs, e -audit-logs per aiutarne l'identificazione del contenuto.