Come posso risolvere i problemi di lentezza dei registri su Amazon OpenSearch Service?

Ultimo aggiornamento: 30-07-2021

Ho abilitato i registri di ricerca lenti per il mio dominio Amazon OpenSearch Service (successore di Amazon Elasticsearch Service). Tuttavia, viene visualizzato un errore o i registri lenti non vengono visualizzati nel gruppo di registri di Amazon CloudWatch. Come posso risolvere questo problema?

Risoluzione

Viene visualizzato un errore quando tento di impostare i registri lenti

Se il tuo account AWS supera le dieci policy delle risorse per la tua regione, riceverai il seguente messaggio di errore in Amazon CloudWatch Logs:

"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 risolvere questo messaggio di errore, crea una policy delle risorse che includa più gruppi di registri.

Ad esempio:

{
    "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: non è possibile aumentare il limite di policy di AWS Identity and Access Management (IAM).

Non vedo alcun registro lento in consegna

Se non vedi che i tuoi registri lenti vengono consegnati a CloudWatch, controlla la tua policy IAM o le soglie OpenSearch Service.

Poiché OpenSearch Service richiede l'autorizzazione per scrivere in CloudWatch Logs, devi disporre della policy IAM corretta per registrare le query. Per aggiornare la policy IAM, accedi a Cerca registro lento, quindi scegli Seleziona configurazione.

Ad esempio:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "es.amazonaws.com"
      },
      "Action": [
        "logs:PutLogEvents",
        "logs:CreateLogStream"
      ],
      "Resource": "arn:aws:logs:us-east-1:588671893395:log-group:/aws/aes/domains/myes/search-logs:*"
    }
  ]
}

Inoltre, assicurati di impostare una soglia di tempistiche corretta per il tuo dominio. Ad esempio, se tutte le richieste vengono completate prima della soglia impostata, i registri non verranno recapitati al gruppo di registri.

È inoltre possibile impostare singole soglie di livello INDEX per ogni livello di debug (TRACE, DEBUG, INFO e WARN).

Ad esempio, puoi impostare la soglia per i livelli di debug WARN su dieci secondi per l'indice YOURINDEXNAME in OpenSearch Dashboards:

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

Nota: puoi impostare TRACE su “0” millisecondi per registrare tutte le query per il tuo dominio. Tuttavia, poiché la registrazione di tutte le query richiede un uso intensivo delle risorse, le prestazioni del dominio potrebbero risentirne.

Quindi, controlla la soglia utilizzando il seguente comando:

GET/YOURINDEXNAME/_settings?pretty

OpenSearch Service registra tutte le query che superano la soglia definita.

Best practice

  • Evita di apportare più modifiche alla configurazione (come abilitare o disabilitare i registri pubblicati su CloudWatch) contemporaneamente. Troppe modifiche alla configurazione contemporaneamente attivano più distribuzioni blu/verdi. Diverse distribuzioni blu/verdi possono causare il blocco del dominio OpenSearch Service in uno stato di elaborazione. Per ulteriori informazioni sull’implementazione blu/verde, consulta Come apportare modifiche alla configurazione in OpenSearch Service.
  • Imposta la soglia sia per la fase di query che per la fase di recupero per identificare le query di ricerca lente.
  • Esegui il test con un valore di soglia basso e aumenta lentamente la soglia per registrare solo le query che influiscono sulle prestazioni o che richiedono l'ottimizzazione.
  • Scegli il numero corretto di partizioni per il tuo cluster per ottimizzarne le prestazioni. Per ulteriori informazioni sulla manutenzione delle partizioni, consulta le best practice di Amazon OpenSearch Service.
  • Per i registri lenti, abilita la registrazione ai livelli di debug TRACE, DEBUG, INFO e WARN. Poiché ogni livello di debug registra categorie di informazioni diverse, è consigliabile abilitare la registrazione in base allo stato della richiesta.