¿Cómo soluciono que mi agente unificado de CloudWatch no envíe eventos de registro?

8 minutos de lectura
0

Quiero resolver que mi agente unificado de Amazon CloudWatch no envía eventos de registro.

Breve descripción

Si su agente unificado de CloudWatch no envía eventos de registro, las posibles causas son las siguientes:

  • Metadatos desincronizados
  • Versión desactualizada del agente de CloudWatch
  • Fallo al conectarse al extremo de CloudWatch Logs
  • Configuraciones incorrectas de cuenta, región de AWS o grupo de registro
  • Permisos insuficientes de AWS Identity and Access Management (IAM)
  • Errores de ejecución del agente de CloudWatch
  • Problemas con la marca de tiempo
  • Falta un valor o es incorrecto en el archivo de estado del registro
  • Configuración incorrecta del archivo de registro de origen
  • Restricciones de PutLogEvents
  • Valor force_flush_interval alto

Nota: La siguiente resolución no se aplica a Información de contenedores de CloudWatch. Para más información sobre la solución de problemas de Información de contenedores de CloudWatch, consulte Resolución de problemas de Información de contenedores y ¿Cómo puedo solucionar problemas del estado del pod en Amazon EKS?

Resolución

Metadatos desincronizados

Si los metadatos no están sincronizados, el agente de CloudWatch no funciona según lo previsto. Para resolver este problema, siga estos pasos:

Versión desactualizada del agente de CloudWatch

Si tiene una versión desactualizada del agente de CloudWatch, descargue las notas de lanzamiento del paquete del agente de CloudWatch y el número de versión más reciente. La versión más reciente puede incluir actualizaciones que resuelvan su problema.

Fallo al conectarse al extremo de CloudWatch Logs

Para probar su conectividad con el punto de enlace de registros de CloudWatch, utilice uno de los siguientes comandos:

Nota: Sustituya example-region por su región solicitada.

telnet logs.<example-region>.amazonaws.com 443
nc -zv logs.<example-region>.amazonaws.com 443

Si recibe errores de conexión, complete los pasos siguientes:

  • Asegúrese de que el grupo de seguridad y las listas de control de acceso de la red (ACL de la red) permiten la conectividad.
  • En el caso de los puntos de enlace, utilice una puerta de enlace de Internet o una puerta de enlace de NAT para la instancia.
  • Si usa puntos de enlace de Amazon Virtual Private Cloud (Amazon VPC), asegúrese de que el punto final se resuelva en una IP de Amazon VPC. Además, asegúrese de que el grupo de seguridad de puntos de enlace permita el acceso desde la instancia de origen.

Configuraciones incorrectas de cuenta, región o grupo de registro

Para el archivo de configuración del agente de CloudWatch, asegúrese de que la región especificada coincide con la región de la consola. Además, asegúrese de que los registros figuren en la cuenta correcta.

Si lo desea, use los archivos common-config.toml para anular los valores predeterminados del sistema para el agente de CloudWatch:

Linux:

/opt/aws/amazon-cloudwatch-agent/etc/common-config.toml
/etc/amazon/amazon-cloudwatch-agent/common-config.toml

Windows:

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\common-config.toml

Permisos de IAM insuficientes

El agente de CloudWatch usa las credenciales de la política de usuario o rol de IAM para enviar los eventos de registro al servicio de CloudWatch. Antes de publicar un evento de registro, debe crear un grupo de registro y una secuencia de registro. Si no hay ningún grupo de registro o flujo de registros, entonces el agente de CloudWatch los crea.

Compruebe que su política incluye los siguientes permisos de IAM:

"logs:CreateLogGroup","logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"

Añada los permisos de IAM que falten a la política de usuario o a la política de roles.

Nota: Al crear roles y usuarios de IAM, se recomienda utilizar las políticas CloudWatchAgentServerPolicy y CloudWatchAgentAdminPolicy creadas por Amazon.

Errores de ejecución del agente de CloudWatch

Compruebe que el agente de CloudWatch se esté ejecutando. Si el agente no se está ejecutando, entonces compruebe si hay errores en la ubicación del archivo de registro:

Linux:

/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log

Windows:

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\amazon-cloudwatch-agent.log

Nota: Los registros pueden especificarse en una ubicación de archivo de registro personalizada. Consulte el archivo de configuración del agente para identificar cualquier ubicación de registro personalizada.

Utilice el parámetro debug para activar el registro detallado de depuración en el archivo de configuración. Si utiliza el parámetro run_as_user, compruebe que el usuario tiene permisos para acceder a la ubicación del registro. Si el usuario no tiene los permisos necesarios, CloudWatch no puede escribir registros en la ubicación.

Si observa problemas relacionados con el IMDS al iniciar el agente de CloudWatch, complete los pasos siguientes:

Problemas con la marca de tiempo

Compruebe si hay marcas temporales de eventos del registro que tengan más de 14 días o más de dos horas en el futuro. El comando PutLogEvents no permite registrar lotes en ninguno de los períodos de tiempo. Además, compruebe que el servicio de hora del sistema de la instancia esté configurado correctamente. Para obtener más información, consultw Cambiar la zona horaria de la instancia.

Falta un valor o es incorrecto en el archivo de estado del registro

Para resolver un valor que falta o es incorrecto en el archivo de estado del registro, complete los pasos siguientes:

  1. Asegúrese de que sus archivos de estado estén en la ubicación correcta:
    Linux:

    /opt/aws/amazon-cloudwatch-agent/logs/state
    
    

    Windows:

    C:\ProgramData\Amazon\AmazonCloudWatchAgent\Logs\state

    Nota: Asegúrese de que los archivos de estado anteriores contengan el mismo valor de tamaño que el archivo de registro. Esto permite leer y publicar nuevos datos en CloudWatch.

  2. Compruebe el valor de tamaño del archivo de estado:
    Linux:

    sudo cat /opt/aws/amazon-cloudwatch-agent/logs/state/_var_log_httpd_access_log
    
    

    Windows:

    gc 'C:\ProgramData\Amazon\AmazonCloudWatchAgent\Logs\state\C__Program_Files_log.log'
    
    

    Nota: La salida de los comandos anteriores es un valor numérico del desfase actual. Por ejemplo, si la salida es 34, el desfase actual está en el byte 34 del archivo de registro. Los registros se leen en este byte cuando se escriben nuevos registros en el archivo de registro.

  3. Compruebe el valor del tamaño del archivo de registro:
    Linux:

    stat /var/log/httpd/access_log | grep Size | awk '{print $2}'
    
    

    Windows:

    Get-Item 'C:\Program Files\log.log' | Format-List | findstr Length
  4. Compruebe que las salidas de los pasos 2 y 3 anteriores sean las mismas.

Configuración incorrecta del archivo de registro de origen

Para resolver los problemas derivados de una configuración incorrecta del archivo de registro de origen, complete los siguientes pasos:

  • Compruebe si la configuración del agente de CloudWatch incluye el archivo de registro que desea supervisar.
  • Asegúrese de que el archivo de registro tiene el formato de archivo correcto y de que se utilizan los nombres y las ubicaciones correctos.
  • En la configuración actual, compruebe que los registros se envíen al mismo grupo de registros y la secuencia de registros de los que desea recuperar los datos.
  • Revise el archivo de registro que está supervisando en su instancia. Compruebe que el archivo de registro de origen contenga los datos que desea publicar en el grupo de registros.

Restricciones de PutLogEvents

El agente de CloudWatch usa la API PutLogEvents para publicar los eventos de registro en los grupos de registros de CloudWatch. Asegúrese de cumplir con las restricciones de esta API. Para obtener más información, consulte PutLogEvents.

Valor force_flush_interval alto

El intervalo force_flush_interval indica la cantidad máxima de tiempo que los registros pueden permanecer en el búfer de memoria antes de que se envíen al servidor. Si el tamaño de los registros alcanza el búfer máximo de 1 MB, los registros se publican inmediatamente en CloudWatch. Los registros se publican en CloudWatch independientemente del intervalo establecido por force_flush_interval.

Si el intervalo se establece en un valor alto y el tamaño del registro no alcanza 1 MB, los registros permanecen en el búfer. Los registros permanecen en el búfer hasta que el mismo esté lleno o transcurra el intervalo. Durante este intervalo, los registros no están disponibles en CloudWatch. Asegúrese de establecer el valor del intervalo en el tamaño correcto. Se recomienda establecer el valor del intervalo en función del tamaño del registro y los intervalos en los que desea que se publiquen.

Información relacionada

Troubleshooting the CloudWatch agent (Solución de problemas del agente de CloudWatch)

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año