Salta al contenuto

Come posso risolvere i problemi relativi ai log delle query lente nel Servizio OpenSearch di Amazon?

5 minuti di lettura
0

Quando attivo i log delle query lente nel mio dominio del Servizio OpenSearch di Amazon, ricevo un errore. Oppure non riesco a vedere i log delle query lente nel mio gruppo di log di Amazon CloudWatch.

Risoluzione

Errore Unable to create the resource access policy

Se l'account AWS supera le 10 policy delle risorse in una singola Regione AWS, ricevi il seguente errore nei log di CloudWatch:

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

Per risolverlo, crea una policy delle risorse che includa più gruppi di log:


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

Nota: sostituisci region con la tua Regione. Sostituisci account-id con l'ID del tuo account.

Importante: non puoi aumentare la quota delle policy di AWS Identity and Access Management (AWS IAM).

I log delle query lente non vengono consegnati

Se non vedi i log delle query lente consegnati in CloudWatch, controlla la policy IAM o le soglie del Servizio OpenSearch.

Devi configurare la policy IAM per registrare le query perché il Servizio OpenSearch richiede l'autorizzazione per scrivere nei log di CloudWatch.

Per aggiornare la policy IAM, completa i passaggi seguenti:

  1. Apri la console Servizio OpenSearch.
  2. Scegli il dominio.
  3. Scegli la scheda Log, quindi seleziona Cerca log sulla lentezza.
  4. Scegli Select Setup (Seleziona configurazione).
  5. Aggiorna la policy IAM con i valori delle risorse:
    
    {  "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "es.amazonaws.com"
          },
          "Action": [
            "logs:PutLogEvents",
            "logs:CreateLogStream"
          ],
          "Resource": "arn:aws:region:account_id:log-group:/aws/aes/domains/myes/search-logs:*"
        }
      ]
    }
    Nota: sostituisci region con la tua Regione. Sostituisci account-id con l'ID del tuo account.
  6. (Facoltativo) Per una maggiore sicurezza, aggiungi le chiavi di condizione aws:SourceAccount and aws:SourceArn alla policy:
    {
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "account-id"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:es:region:account-id:domain/domain-name"
        }
      }
    }
    Nota: sostituisci region con la tua Regione. Sostituisci account-id con l'ID del tuo account. Sostituisci domain-name con il nome del tuo dominio.
  7. Scegli Abilita.

Per ulteriori informazioni, consulta Abilitazione della pubblicazione di log (console).

Per impostazione predefinita, il Servizio OpenSearch ha la registrazione disattivata. Puoi utilizzare una chiamata API per impostare il livello di log e la soglia temporale. Queste impostazioni sono dinamiche, per cui puoi aggiornarle in un cluster in esecuzione e il Servizio OpenSearch le applica immediatamente.

Imposta una soglia temporale appropriata per il dominio. Se tutte le richieste vengono completate prima della soglia impostata, CloudWatch non invia i log al gruppo di log. Puoi impostare soglie individuali a livello di indice per ogni livello di debug (TRACE, DEBUG, INFO e WARN).

Ad esempio, imposta la soglia per il livello di debug WARN su 10 secondi per l'indice in OpenSearch Dashboards:

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

Nota: sostituisci YOURINDEXNAME con il nome del tuo indice.

Per curl, esegui questo comando:

curl -XPUT http://your_domain_endpoint/index/_settings -d '{"index.search.slowlog.threshold.query.level":"10s"}'

Nota: sostituisci your_domain_endpoint con l'endpoint del tuo dominio. Sostituisci **10s ** con la soglia di log che desideri utilizzare.

Per registrare tutte le query per il dominio, puoi impostare TRACE su 0 millisecondi. Tuttavia, registrare tutte le query richiede molte risorse e ciò potrebbe influire sulle prestazioni del dominio. Per disattivare la registrazione, imposta la soglia su -1.

Per controllare la soglia, esegui questo comando:

GET /YOURINDEXNAME/_settings?pretty

Nota: sostituisci YOURINDEXNAME con il nome del tuo indice.

Il Servizio OpenSearch registra tutte le query che superano la soglia definita.

Applica le impostazioni dei log delle query lente a tutti i nuovi indici a livello di cluster

Per applicare le impostazioni dei log delle query lente a tutti i nuovi indici a livello di cluster, utilizza i modelli di indice. Non esiste un'impostazione dei log delle query lente per gli indici a livello di cluster nel Servizio OpenSearch.

Crea un modello di indice che includa le impostazioni dei log delle query lente:


PUT _template/all_indices_template
{
  "index_patterns": ["*"], // This applies to all indices
  "settings": {
    "index.indexing.slowlog.threshold.index.warn": "10s",
    "index.indexing.slowlog.threshold.index.info": "5s",
    "index.indexing.slowlog.threshold.index.debug": "2s",
    "index.indexing.slowlog.threshold.index.trace": "500ms"
  }
}

Il modello precedente applica automaticamente le impostazioni a tutti i nuovi indici creati dopo la configurazione del modello.

Best practice

Esegui queste azioni:

  • Effettua gli aggiornamenti della configurazione uno alla volta.
  • Per identificare le query di ricerca lente, imposta una soglia sia per la fase di interrogazione che per la fase di recupero.
  • Verifica con un valore di soglia basso. Aumenta lentamente la soglia per registrare solo le query che influiscono sulle prestazioni o richiedono l'ottimizzazione.
  • Scegli il numero giusto di shard per il cluster e il caso d'uso in modo da ottimizzare le prestazioni del cluster. Per ulteriori informazioni, consulta Strategia di sharding.
  • Per i log delle query lente, attiva la registrazione ai livelli di debug TRACE, DEBUG, INFO e WARN. Ogni livello di debug registra diverse categorie di informazioni. Attiva la registrazione in base allo stato della richiesta.

Informazioni correlate

Analyzing Amazon Elasticsearch Service Slow Logs Using Amazon CloudWatch Logs Streaming and Kibana (Analisi dei log delle query lente di Amazon Elasticsearch Service utilizzando lo streaming di Amazon CloudWatch Logs e Kibana)

Come posso risolvere i problemi dei file di log Amazon CloudWatch in modo che vengano trasmessi al mio dominio del servizio OpenSearch di Amazon?

Viewing Amazon OpenSearch Service Error Logs (Visualizzazione dei log degli errori del Servizio OpenSearch di Amazon)

AWS UFFICIALEAggiornata 3 mesi fa