Saltar al contenido

¿Cómo soluciono los registros lentos en Amazon OpenSearch Service?

5 minutos de lectura
0

Cuando activo los registros de búsqueda lenta en mi dominio de Amazon OpenSearch Service, recibo un error. O bien, no puedo ver los registros lentos en mi grupo de registro de Amazon CloudWatch.

Resolución

Error al crear la política de acceso a los recursos

Si tu cuenta de AWS supera las 10 políticas de recursos en una sola región de AWS, recibirás el siguiente error en los registros de 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».

Para resolver este error, crea una política de recursos que incluya varios grupos de registros:


{  "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: Sustituye region por tu región. Sustituye account-id por el ID de tu cuenta.

Importante: No puedes aumentar la cuota de la política de AWS Identity and Access Management (IAM).

No se entregan los registros lentos

Si no ves que los registros lentos se envían a CloudWatch, comprueba tu política de IAM o los umbrales de OpenSearch Service.

Debes configurar tu política de IAM para registrar las consultas, ya que OpenSearch Service requiere permiso para escribir en los registros de CloudWatch.

Para crear tu política de IAM, sigue estos pasos:

  1. Abre la consola de OpenSearch Service.
  2. Elige tu dominio.
  3. Selecciona la pestaña Registros y, a continuación, elige Buscar registros lentos.
  4. Elige Seleccionar configuración.
  5. Actualiza tu política de IAM con los valores de tus recursos:
    
    {  "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: Sustituye region por tu región. Sustituye account-id por el ID de tu cuenta.
  6. (Opcional) Para mayor seguridad, agrega las claves de condición aws:SourceAccount y aws:SourceArn a tu política:
    {
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "account-id"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:es:region:account-id:domain/domain-name"
        }
      }
    }
    Nota: Sustituye region por tu región. Sustituye account-id por el ID de tu cuenta. Sustituye domain-name por tu nombre de dominio.
  7. Selecciona Activar.

Para obtener más información, consulta Activación de la publicación de registros (consola).

De forma predeterminada, OpenSearch Service tiene el registro desactivado. Puedes usar una llamada a la API para establecer el nivel de registro y el umbral de tiempo. Esta configuración es dinámica, por lo que puedes actualizarla en un clúster en ejecución y OpenSearch Service la aplica inmediatamente.

Establece un límite de tiempo adecuado para tu dominio. Si todas las solicitudes se completan antes del umbral establecido, CloudWatch no entregará los registros a tu grupo de registros. Puedes establecer umbrales de nivel de índice individuales para cada nivel de depuración (TRACE, DEBUG, INFO y WARN).

Por ejemplo, establece el umbral para el nivel de depuración de WARN en 10 segundos para tu índice de Paneles de OpenSearch:

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

Nota: Sustituye YOURINDEXNAME por el nombre de tu índice.

Para usar curl, ejecuta el siguiente comando:

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

Nota: Sustituye your_domain_endpoint por el punto de enlace de tu dominio. Sustituye 10s por el umbral de registro que desees utilizar.

Para registrar todas las consultas de tu dominio, puedes establecer TRACE en 0 milisegundos. Sin embargo, registrar todas las consultas consume muchos recursos y eso puede afectar al rendimiento del dominio. Para desactivar el registro, define el umbral en -1.

Para comprobar el umbral, ejecuta el siguiente comando:

GET /YOURINDEXNAME/_settings?pretty

Nota: Sustituye YOURINDEXNAME por el nombre de tu índice.

OpenSearch Service registra cualquier consulta que supere el umbral definido.

Aplicación de la configuración de registros lentos a todos los índices nuevos a nivel de clúster

Para aplicar la configuración de registros lentos a todos los índices nuevos a nivel de clúster, utiliza plantillas de índice. No hay una configuración para todo el clúster para indexar registros lentos en OpenSearch Service.

Crea una plantilla de índice que incluya la configuración de registros lentos:


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

La plantilla anterior aplica automáticamente la configuración a todos los índices nuevos que crees después de configurar la plantilla.

Prácticas recomendadas

Haz lo siguiente:

  • Realiza las actualizaciones de configuración de una en una.
  • Para identificar las consultas de búsqueda lentas, establece un umbral tanto para la fase de consulta como para la fase de búsqueda.
  • Realiza la prueba con un valor de umbral bajo. Aumenta lentamente el umbral para registrar solo las consultas que afectan al rendimiento o requieren optimización.
  • Elige la cantidad correcta de particiones para tu clúster y el caso de uso para optimizar el rendimiento del clúster. Para obtener más información, consulta Estrategia de particiones.
  • Para registros lentos, activa el registro en los niveles de depuración TRACE, DEBUG, INFO y WARN. Cada nivel de depuración registra diferentes categorías de información. Activa el registro según el estado de la solicitud.

Información relacionada

Analyzing Amazon Elasticsearch Service Slow Logs Using Amazon CloudWatch Logs Streaming and Kibana (Análisis de los registros lentos de Amazon Elasticsearch Service con transmisión de Registros de Amazon CloudWatch y Kibana)

¿Cómo puedo solucionar problemas de registros de CloudWatch para que se transmitan los registros a mi dominio de Amazon OpenSearch Service?

Viewing Amazon OpenSearch Service error logs (Visualización de los registros de errores de Amazon OpenSearch Service)

OFICIAL DE AWSActualizada hace un año