
Ich habe den Alertmanager von Prometheus so eingerichtet, dass er, nun ja, Alarme von Prometheus verwaltet. Die Alarme werden von Prometheus an den Alertmanager weitergeleitet, aber damit endet die Geschichte. Die Alarme werden vom Alertmanager nie an meinen E-Mail-Endpunkt weitergeleitet.
Um herauszufinden, wo genau im Alertmanager die Alarme enden, möchte ich die Protokollebene von Info auf Debug ändern, konnte aber nicht herausfinden, wie das geht. Selbst das Auffinden des Protokolls scheint derzeit eine schwierige Aufgabe zu sein, es ist nicht vorhanden /var/log
und journalctl -u alertmanager
enthält so wenig, dass es sein kann, dass es irgendwo ein anderes Protokoll gibt.
Die Manualpage fürKonfigurieren von Alertmanagererwähnt keine Debugebene. Ich habe den Quellcode nach Erwähnungen von log durchsucht und festgestellt, dass die Einstellung benannt werden sollte log.level
. Das Hinzufügen des folgenden Snippets zur Konfigurations-YAML hat auch nicht geholfen:
log:
level: debug
da der Start von Alertmanager aufgrund eines Fehlers bei der Analyse der Konfigurationsdatei fehlschlug.
Antwort1
Die Antwort ist, dass es nicht möglich ist, die Protokollebene des Alertmanagers von Prometheus über die Konfigurationsdatei auf Debuggen einzustellen. Dies ist nur über Befehlszeilenargumente möglich. Fragen Sie mich nicht, warum, ich bin sicher, sie hatten ihre Gründe.
Über Puppet habe ich das Argument zur Systemd-Unit-Datei für Alertmanager hinzugefügt, sodass es am Ende so aussah:
[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
Wenn Sie Alertmanager von Ihrer Shell aus starten, können Sie --log.level=debug
Ihrem Aufruf einfach das Flag hinzufügen.
journalctl -u alertmanager
Die Debug-Meldungen können dann über auf Linux-Distributionen mit dem Init-System Systemd eingesehen werden .
Antwort2
Auf Ubuntu-Systemen (wenn prometheus-alertmanager über apt und aus dem offiziellen Repo installiert wurde).
Offen
/etc/default/prometheus-alertmanager
Und hinzufügen
ARGS="--log.level=debug"
in Datei (ersetze ARGS="")
Starten Sie dann prometheus-alertmanager über systemd neu:
sudo systemctl restart prometheus-alertmanager.service
Protokolle über journalctl anzeigen:
journalctl -u prometheus-alertmanager.service --since today
Antwort3
In meinem docker-compose.yml
habe ich als nächstes Folgendes gemacht:command: --log.level=debug
Siehe Einzelheiten:
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: