如何配置Prometheus的Alertmanager的日志级别?

Rov*_*ion 4 prometheus

我已经设置了 Prometheus 的 Alertmanager 来管理来自 Prometheus 的警报。我收到了从 Prometheus 发送到 Alertmanager 的警报,但故事到此结束。Alertmanager 永远不会将警报发送到我的电子邮件端点。

为了弄清楚警报在 Alertmanager 内部的具体位置结束其旅程,我想将日志级别从信息级别更改为调试级别,但无法弄清楚如何操作。即使现在找到日志似乎也是一个艰巨的任务,它不存在/var/log并且journalctl -u alertmanager包含的​​内容太少,以至于可能在某个地方还有另一条日志。

配置Alertmanager的手册页没有提到调试级别。我查看了源代码中提到的 log 并发现该设置应该命名为log.level. 将以下代码片段添加到配置 YAML 也没有帮助:

log:
  level: debug
Run Code Online (Sandbox Code Playgroud)

因为 Alertmanager 无法启动,无法解析其配置文件。

Rov*_*ion 5

答案是,不可能通过配置文件设置 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
Run Code Online (Sandbox Code Playgroud)

如果您从 shell 启动 Alertmanager,则只需将该标志添加--log.level=debug到您的调用中即可。

journalctl -u alertmanager然后可以通过Linux 发行版上的 Systemd init 系统查看调试消息。