经过多日的工作和网上搜索,我决定向您寻求帮助,这是最后一次机会。我实际上正在使用 nagios core 4.4.3 和 nrpe 监控 unix 进程。
我的目标是检查:恰好有 1 个使用命令“java”的进程运行,最长 23 小时,仅使用一个服务
该过程每天都会重新启动。
以下是我在客户端主机 (/etc/nagios/nrpe.cfg) 上的内容:
command[check_java]=/usr/lib64/nagios/plugins/check_procs -c 1:1 -C java
command[check_java_elapsed]=/usr/lib64/nagios/plugins/check_procs -c :82800 --metric=ELAPSED -C java
在服务器上(/usr/local/nagios/etc/client_host.cfg):
define service{
use generic-service
host_name client_host
service_description java_elapsed
check_command check_nrpe!check_java
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 2
}
define service{
use generic-service
host_name client_host
service_description perl_elapsed
check_command check_nrpe!check_java_elapsed
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 2
}
总之,我想将两项服务合并为一项服务
答案1
似乎命令 check_procs 无法提供同时执行这两项操作的意见。我建议创建一个包装器脚本或在配置中将这两个命令放在一起。
像这样:
command[check_java_elapsed]=/usr/lib64/nagios/plugins/check_procs -c 1:1 -C java && /usr/lib64/nagios/plugins/check_procs -c :82800 --metric=ELAPSED -C java
我已经在 Debian 上的 nrpe 中测试过它,它应该可以工作。基本上,如果第一和第二次通过,您将获得返回代码 0,否则您将只获得第一个(当 java 未运行时,检查经过的时间没有意义)