Nagios - 检查同一服务上的 procs 和 --metric=elapsed

Nagios - 检查同一服务上的 procs 和 --metric=elapsed

经过多日的工作和网上搜索,我决定向您寻求帮助,这是最后一次机会。我实际上正在使用 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 未运行时,检查经过的时间没有意义)

相关内容