在 Debian 7 (Wheezy) 中 nginx 的初始化脚本中,我阅读了以下摘录:
status)
status_of_proc -p /var/run/$NAME.pid "$DAEMON" nginx && exit 0 || exit $?
;;
Run Code Online (Sandbox Code Playgroud)
此代码运行良好并sudo service nginx status输出[ ok ] nginx is running. 然而status_of_proc没有在 bash 中定义,也没有在 dash 中定义:
$ type status_of_proc
status_of_proc: not found
Run Code Online (Sandbox Code Playgroud)
虽然如果我将相同的检查插入到 nginx 脚本中,我会得到以下结果:
status_of_proc is a shell function
Run Code Online (Sandbox Code Playgroud)
在 init 文件本身上运行 bash 提供了进一步的解释:
status_of_proc is a function
status_of_proc ()
{
local pidfile daemon name status OPTIND;
pidfile=;
OPTIND=1;
while getopts p: opt; do
case …Run Code Online (Sandbox Code Playgroud) 我已经设置了 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 无法启动,无法解析其配置文件。