
Eu configurei o Alertmanager do Prometheus para gerenciar alertas do Prometheus. Recebi alertas do Prometheus para o Alertmanager, mas a história termina aí. Os alertas nunca são enviados pelo Alertmanager para o meu endpoint de e-mail.
Para descobrir onde exatamente dentro do Alertmanager os alertas terminam sua jornada, quero mudar o nível de log de informações para depuração, mas não consegui descobrir como. Mesmo encontrar o log parece uma tarefa difícil agora, ele não está disponível /var/log
e journalctl -u alertmanager
contém tão pouco que pode ser que haja outro log em algum lugar.
A página de manual paraconfigurando o Alertmanagernão menciona o nível de depuração. Examinei o código-fonte em busca de menções ao log e descobri que a configuração deveria ser nomeada log.level
. Adicionar o seguinte trecho ao YAML de configuração também não ajudou:
log:
level: debug
pois o Alertmanager falhou ao iniciar com uma falha ao analisar seu arquivo de configuração.
Responder1
A resposta é que não é possível definir o nível de log do Alertmanagers do Prometheus para depuração por meio do arquivo de configuração, só é possível por meio de argumentos de linha de comando. Não me pergunte por quê, tenho certeza de que eles tiveram seus motivos.
Através do Puppet adicionei o argumento ao arquivo unitário do Systemd para o Alertmanager, de modo que ficou assim:
[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
Se você estiver iniciando o Alertmanager a partir do seu shell, basta adicionar o sinalizador --log.level=debug
à sua invocação.
As mensagens de depuração podem então ser vistas journalctl -u alertmanager
em distribuições Linux com o sistema init Systemd.
Responder2
Em sistemas Ubuntu (se o prometheus-alertmanager foi instalado via apt e do repositório oficial).
Abrir
/etc/default/prometheus-alertmanager
E adicione
ARGS="--log.level=debug"
para arquivar (substitua ARGS="")
Em seguida, reinicie o prometheus-alertmanager via systemd:
sudo systemctl restart prometheus-alertmanager.service
Mostrar registros via journalctl:
journalctl -u prometheus-alertmanager.service --since today
Responder3
No meu docker-compose.yml
eu fiz o seguinte:command: --log.level=debug
Veja detalhes:
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: