我还想使用 nagios 监控非关键服务,例如我们的 GitLab 服务器或 phpMyAdmin 实例。有没有办法只为某些服务创建警告而不是严重错误?
目前我正在使用以下内容:
define service {
host_name localhost
use generic-service
service_description HTTP GitLab
check_command check_www!git.example.com!'/users/sign_in'
}
define command {
command_name check_www
command_line /usr/lib/nagios/plugins/check_http -H '$ARG1$' -I '$HOSTADDRESS$' -e 'HTTP/1.1 200 OK' -u '$ARG2$'
}
答案1
这否定插件正是因为这个原因而存在。
使用 -c 选项,您可以将 CRITICAL 更改为 WARNING。例如,您可以执行以下操作:
define command {
command_name check_www_no_crit
command_line /usr/lib/nagios/plugins/negate -s -c WARNING /usr/lib/nagios/plugins/check_http -H '$ARG1$' -I '$HOSTADDRESS$' -e 'HTTP/1.1 200 OK' -u '$ARG2$'
}
答案2
问题似乎是您使用check_http
标志来检查返回代码。如果检查失败,-e
该插件似乎不提供返回 WARNING(而不是 CRITICAL)错误的选项。-e
您需要编写一个小型的 shell 脚本包装器,check_http
它将输出不加改变地传递下去,但检查插件的返回代码,如果插件的返回代码为 2 则执行exit 1
,否则将返回代码不加改变地传递下去。