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

Amazon OpenSearch Service espone i seguenti OpenSearch log tramite Amazon CloudWatch Logs:

Gli slow log degli shard di ricerca, gli slow log di indicizzazione degli shard e i log degli errori sono utili per la risoluzione dei problemi di prestazioni e stabilità. I log di verifica tengono traccia dell'attività degli utenti a fini di conformità Tutti i log sono disabilitati per impostazione predefinita. Se abilitata, si applica la tariffa standard. CloudWatch

Nota

I log degli errori sono disponibili solo per le versioni 5.1 OpenSearch e successive di Elasticsearch. Gli slow log sono disponibili per tutte OpenSearch le versioni e per quelle di Elasticsearch.

Per i suoi log, OpenSearch utilizza Apache Log4j 2 e i suoi livelli di registro incorporati (dal più basso al più severo) diTRACE,,, e. DEBUG INFO WARN ERROR FATAL

Se abiliti i log degli errori, OpenSearch Service pubblica le righe di registro di, e to. WARN ERROR FATAL CloudWatch OpenSearch Il servizio pubblica anche diverse eccezioni dal DEBUG livello, tra cui le seguenti:

  • 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 console OpenSearch di servizio è il modo più semplice per abilitare la pubblicazione dei log su. CloudWatch

Per abilitare la pubblicazione dei 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 nuovo 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

    CloudWatch Logs supporta 10 politiche di risorse per regione. Se si prevede di abilitare i log per diversi domini di OpenSearch servizio, è necessario creare e riutilizzare una politica più ampia che includa più 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 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 hai abilitato uno degli shard slow log, vedi. Impostazione di soglie di slow log condivise 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)

Prima di poter abilitare la pubblicazione dei log, è necessario un gruppo di CloudWatch log. 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

Ora puoi concedere al OpenSearch servizio le autorizzazioni di scrittura nel gruppo di log. È 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

CloudWatch Logs supporta 10 politiche di risorse per regione. Se prevedi di abilitare gli shard slow log per diversi domini di OpenSearch servizio, dovresti creare e riutilizzare una politica più ampia che includa più 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 consente la pubblicazione di slow log degli shard di ricerca e indicizzazione 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 su CloudWatch, esegui lo stesso comando con. Enabled=false

Se hai abilitato uno degli slow log dello shard, vedi. Impostazione di soglie di slow log condivise 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 dei log, è necessario creare un gruppo di CloudWatch log, ottenerne l'ARN e concedere al OpenSearch Service le autorizzazioni di scrittura su di esso. Le operazioni pertinenti sono documentate nell'Amazon CloudWatch Logs API Reference:

  • CreateLogGroup

  • DescribeLogGroup

  • PutResourcePolicy

È possibile accedere a tali operazioni utilizzando gli SDK AWS.

Gli AWS SDK (ad eccezione degli SDK per Android e iOS) supportano tutte le operazioni definite nell'Amazon OpenSearch Service API Reference, inclusa l'--log-publishing-optionsopzione per CreateDomain e. UpdateDomainConfig

Se hai abilitato uno degli slow log degli shard, vedi. Impostazione di soglie di slow log condivise 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, creiamo CloudFormation un gruppo di log chiamatoopensearch-logs, assegniamo le autorizzazioni appropriate e quindi creiamo un dominio con la pubblicazione dei log abilitata per i log delle applicazioni, gli slow log degli shard di ricerca e gli slow log di indicizzazione.

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

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, create una politica delle risorse che dia al OpenSearch servizio le autorizzazioni di scrittura nel gruppo di log:

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, crea il seguente CloudFormation stack, che genera un dominio di OpenSearch servizio con pubblicazione dei log. La politica di accesso consente all'utente di Account AWS 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 slow log delle richieste di ricerca

Gli slow log delle richieste di ricerca sono disponibili per la ricerca nei domini di OpenSearch servizio in esecuzione nella versione 2.13 e successive. Le soglie di slow log delle richieste di ricerca sono configurate per il tempo totale impiegato dalla richiesta. Ciò è diverso dagli slow log delle richieste di shard, che sono configurati in base al tempo impiegato dai singoli shard.

È possibile specificare gli slow log delle richieste di ricerca con le impostazioni del cluster. Ciò è diverso dagli shard slow log, che puoi abilitare con le impostazioni dell'indice. Ad esempio, puoi specificare le seguenti impostazioni tramite l' OpenSearch API REST:

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

Impostazione di soglie di slow log condivise

OpenSearch disabilita gli slow log degli shard per impostazione predefinita. Dopo aver abilitato la pubblicazione degli shard slow log su CloudWatch, è comunque necessario specificare le soglie di registrazione per ogni indice. OpenSearch Queste soglie definiscono esattamente cosa deve essere registrato e a quale livello di log.

Ad esempio, puoi specificare queste impostazioni tramite l'API REST: OpenSearch

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

Test degli slow log

Per verificare che sia la richiesta di ricerca che gli shard slow log vengano pubblicati correttamente, è consigliabile iniziare con valori molto bassi per verificare che i log vengano visualizzati CloudWatch, e quindi aumentare le soglie portandole a livelli più utili.

Se i log non vengono visualizzati, verificare quanto segue:

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

  • Il OpenSearch servizio dispone delle autorizzazioni per scrivere nel gruppo di log? Controlla la console OpenSearch di servizio.

  • Il dominio del OpenSearch servizio è configurato per la pubblicazione nel gruppo di log? Controlla la console di OpenSearch servizio, utilizza l' AWS CLI describe-domain-configopzione o chiama DescribeDomainConfig utilizzando uno degli SDK.

  • Le soglie OpenSearch di registrazione sono sufficientemente basse da consentire alle tue richieste di superarle?

    Per esaminare le soglie di slow log della richiesta di ricerca per un dominio, usa il seguente comando:

    GET domain-endpoint/_cluster/settings?flat_settings

    Per esaminare le soglie di slow log dello shard per un indice, utilizzate il seguente comando:

    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 disattivazione della pubblicazione per l' CloudWatch utilizzo della console di OpenSearch servizio o AWS CLI non OpenSearch impedisce la generazione dei log; interrompe solo la pubblicazione di tali registri. Assicurati di controllare le impostazioni dell'indice se non hai più bisogno degli shard slow log e le impostazioni del dominio se non hai più bisogno degli slow log della richiesta di ricerca.

Visualizzazione dei registri

Visualizzare l'applicazione e gli slow log in CloudWatch è come visualizzare qualsiasi altro registro. CloudWatch Per ulteriori informazioni, consulta View Log Data nella Amazon CloudWatch Logs User Guide.

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

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

  • In CloudWatch, i nomi dei flussi di registro hanno il suffisso-index-slow-logs, -search-slow-logs-application-logs, e -audit-logs per facilitare l'identificazione del contenuto.