我在 Nagios 监控方面遇到问题。我有以下配置:
在命令.cfg 中
define command{
command_name check_service.sh
command_line /usr/lib64/nagios/plugins/check_service.sh -o $ARG1$ -t $ARG2$
}
在服务定义中
define service {
use generic-service
host_name ARGPLUS_REDIS_SLV
service_description Redis Service
check_command check_service.sh!linux!"service redis-server status"
notifications_enabled 0
}
我收到以下错误:
当前状态:未知(0 天 0 小时 0 分 17 秒)状态信息:未知状态:redis-server:无法识别的服务命令或服务配置中是否有拼写错误?:redis-server:无法识别的服务
但使用相同的配置,只需更改进程名称即可获得正确的输出
define service {
use generic-service
host_name ARGPLUS_REDIS_SLV
service_description Redis Service
check_command check_service.sh!linux!"service nrpe status"
notifications_enabled 0
}
输出 服务状态信息当前状态:OK(0 天 0 小时 24 分 20 秒)状态信息:nrpe(pid 16124)正在运行...
我认为进程名称 redis-server 中的减号导致了问题。
答案1
我认为 redis 服务也可以用名称运行redis. 有可能。
define service {
use generic-service
host_name ARGPLUS_REDIS_SLV
service_description Redis Service
check_command check_service.sh!linux!"service redis status"
notifications_enabled 0
}
确认运行手动检查
$ ./check_service.sh -o linux -t "service redis status"