Prometheus の Alertmanager のログ レベルを設定するにはどうすればよいですか?

Prometheus の Alertmanager のログ レベルを設定するにはどうすればよいですか?

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 alertmanagerSystemd 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:

関連情報