配置Nagios通过check_by_ssh监控远程Linux的mpg123服务问题
解决Nagios使用check_by_ssh监控远程mpg123服务的问题
你已经完成了不少基础配置环节,不过既然遇到了监控异常的问题,咱们先从关键配置的正确性入手,再逐一排查常见坑点。
一、先确认你已完成的核心配置是否符合规范
先把你提到的几个步骤的标准配置示例列出来,方便你对比自查:
1. 无密码SSH登录验证
先在Nagios服务器上切换到nagios用户,测试远程登录是否生效:
su - nagios ssh 远程用户名@client002的IP ip addr
如果能直接执行命令无需输入密码,说明这一步没问题。
2. 定义进程检查命令(check_music.cfg)
确保你的命令定义符合规范,注意路径和参数的正确性:
define command { command_name check_mpg123_by_ssh command_line $USER1$/check_by_ssh -H $HOSTADDRESS$ -l $ARG1$ -C "$USER1$/check_procs -c 1: -C mpg123" }
提示:
$ARG1$是远程主机的登录用户,需要该用户有执行check_procs的权限;如果远程主机的nagios插件安装路径不同,要替换成实际路径。
3. 主机定义文件(client002.cfg)
主机和服务的关联要准确,服务检查命令要和上面定义的命令名匹配:
define host { use linux-server host_name client002 alias Remote Music Server address 192.168.x.x # 替换成你的客户端实际IP } define service { use generic-service host_name client002 service_description mpg123 Service Status check_command check_mpg123_by_ssh!远程用户名 # 替换成远程主机的SSH登录用户 max_check_attempts 3 check_interval 5 retry_interval 1 }
4. Nagios主配置文件(nagios.cfg)
确保已经正确添加了自定义配置文件的引用:
cfg_file=/usr/local/nagios/etc/objects/check_music.cfg cfg_file=/usr/local/nagios/etc/objects/client002.cfg
二、常见问题排查思路
如果监控还是不正常,按以下步骤逐一排查:
手动测试check_by_ssh命令:在Nagios服务器上用
nagios用户直接执行监控命令,看返回结果和报错信息:su - nagios /usr/local/nagios/libexec/check_by_ssh -H 客户端IP -l 远程用户名 -C "/usr/local/nagios/libexec/check_procs -c 1: -C mpg123"这里的报错会直接告诉你问题所在(比如权限不足、命令路径错误)。
检查远程主机的插件路径:有些系统中nagios插件的安装路径是
/usr/lib/nagios/plugins/,要确认远程主机上check_procs的实际位置。SELinux限制排查:如果远程主机开启了SELinux,可能会阻止SSH执行监控命令,可以临时关闭测试:
setenforce 0如果恢复正常,再配置SELinux规则允许相关操作。
验证配置并重启Nagios:每次修改配置后,一定要先验证配置语法,再重启服务:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg systemctl restart nagios
内容的提问来源于stack exchange,提问作者aristosv
相关产品推荐
相关产品推荐

