我已经设置了 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 无法启动,无法解析其配置文件。
答案是,不可能通过配置文件设置 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 系统查看调试消息。
归档时间: |
|
查看次数: |
20587 次 |
最近记录: |