¿Cómo configuro el nivel de registro de Alertmanager de Prometheus?

¿Cómo configuro el nivel de registro de Alertmanager de Prometheus?

Configuré Alertmanager de Prometheus para, bueno, administrar alertas de Prometheus. Recibí las alertas provenientes de Prometheus a Alertmanager, pero ahí termina la historia. Alertmanager nunca envía las alertas a mi punto final de correo electrónico.

Para saber exactamente dónde dentro de Alertmanager terminan las alertas, quiero cambiar el nivel de registro de información a depuración, pero no he podido descubrir cómo. Incluso encontrar el registro parece una tarea difícil en este momento, no está /var/logy journalctl -u alertmanagercontiene tan poco que puede ser que haya otro registro en alguna parte.

La página del manual paraconfigurando el administrador de alertasno menciona el nivel de depuración. Revisé el código fuente en busca de menciones de registro y descubrí que la configuración debería llamarse log.level. Agregar el siguiente fragmento a la configuración YAML tampoco ayudó:

log:
  level: debug

ya que Alertmanager no pudo iniciarse y no se pudo analizar su archivo de configuración.

Respuesta1

La respuesta es que no es posible configurar el nivel de registro de Alertmanagers de Prometheus para que se depure a través del archivo de configuración, solo es posible a través de argumentos de línea de comandos. No me pregunten por qué, estoy seguro de que tenían sus razones.

A través de Puppet agregué el argumento al archivo de unidad Systemd para Alertmanager, de modo que terminó luciendo así:

[Unit]
Description=Prometheus alertmanager
Wants=basic.target
After=basic.target network.target

[Service]
User=alertmanager
Group=alertmanager
EnvironmentFile=/etc/sysconfig/alertmanager
ExecStart=/usr/local/bin/alertmanager \
--config.file=/etc/alertmanager/alertmanager.yaml \
--storage.path=/var/lib/alertmanager \
--log.level=debug

ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always

[Install]
WantedBy=multi-user.target

Si está iniciando Alertmanager desde su shell, puede simplemente agregar la bandera --log.level=debuga su invocación.

Los mensajes de depuración se pueden ver a través journalctl -u alertmanagerde distribuciones de Linux con el sistema de inicio Systemd.

Respuesta2

En sistemas Ubuntu (si prometheus-alertmanager se instaló mediante apt y desde el repositorio oficial).

Abierto

/etc/default/prometheus-alertmanager

Y añadir

ARGS="--log.level=debug"

presentar (reemplazar ARGS="")

Luego reinicie prometheus-alertmanager a través de systemd:

sudo systemctl restart prometheus-alertmanager.service

Mostrar registros a través de journalctl:

journalctl -u prometheus-alertmanager.service --since today

Respuesta3

En mi docker-compose.ymlhice lo siguiente:command: --log.level=debug

Ver detalles:

  alertmanager:
    restart: unless-stopped
    image: prom/alertmanager:latest
    command:
      - '--config.file=/etc/alertmanager/alertmanager.yml'
      - '--storage.path=/alertmanager'
      - '--log.level=debug'
    volumes:
      - ./alertmanager.yml:/etc/alertmanager/alertmanager.yml
    expose:
      - 9093/tcp
    networks:
      monitoring-net:

información relacionada