
Prometheus からのアラートを管理するために、Prometheus の Alertmanager を設定しました。Prometheus から Alertmanager にアラートが届きますが、話はそこで終わりです。アラートは、Alertmanager から電子メール エンドポイントに送信されることはありません。
Alertmanager 内のどこでアラートが終わるのかを正確に把握するために、ログ レベルを情報からデバッグに変更したいのですが、方法がわかりません。ログを見つけることさえ、今のところ難しいようです。ログは存在せず、/var/log
内容journalctl -u alertmanager
も非常に少ないため、どこかに別のログがある可能性があります。
マニュアルページAlertmanager の設定デバッグ レベルについては言及されていません。ソース コードで log について言及されている箇所を調べたところ、設定の名前は であることがわかりましたlog.level
。次のスニペットを構成 YAML に追加しても効果はありませんでした。
log:
level: debug
Alertmanager は設定ファイルの解析に失敗したため起動に失敗しました。
答え1
答えは、Prometheus の Alertmanagers ログ レベルを構成ファイルからデバッグに設定することはできず、コマンドライン引数からのみ設定できるということです。理由を聞かないでください。きっと理由があるはずです。
Puppet を通じて、Alertmanager の Systemd ユニット ファイルに引数を追加したので、最終的には次のようになりました。
[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
--log.level=debug
シェルから Alertmanager を起動する場合は、呼び出しにフラグを追加するだけです。
デバッグ メッセージは、journalctl -u alertmanager
Systemd init システムを搭載した Linux ディストリビューションで確認できます。
答え2
Ubuntu システムの場合 (prometheus-alertmanager が apt 経由で公式リポジトリからインストールされた場合)。
開ける
/etc/default/prometheus-alertmanager
そして追加
ARGS="--log.level=debug"
ファイルに(ARGS="" を置き換えます)
次に、systemd 経由で prometheus-alertmanager を再起動します。
sudo systemctl restart prometheus-alertmanager.service
journalctl 経由でログを表示します:
journalctl -u prometheus-alertmanager.service --since today
答え3
私はdocker-compose.yml
次のことを行いました:command: --log.level=debug
詳細を見る:
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: