nrpe能不能执行远程主机上的shell脚本?
安装好nagios和nrpe插件后,我想在监控服务器上通过nrpe来传递一个参数给被监控的远程主机,并在远程主机上的一个shell脚本中能引用这个参数,并把执行后的结果返回到监控服务器上。不知道在监控服务器上nrpe怎么配置,希望能有监控大神来帮助解决一下。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
UPDATE:
1.编译NRPE时候加上--enable-command-args参数
2.打开nrpe.cfg的传参功能,将dont_blame_nrpe设为1
3.定义自己的command, 如command[my_check_disk]=/usr/local/nagios/libexec/my_check_disk -p $ARG1$
注意:
必须写全路径/usr/local/nagios/libexec
my_check_disk既是命令(command)也是自己定义的脚本,它能解析-p后面的参数,对比nrpe.cfg默认的定义的check_disk命令就会发现有所不同。
4.在命令中测试
/usr/local/nagios/libexec/check_nrpe -H 192.168.1.101 -c my_check_disk -a /usr
比如监控端中check_nrpe向被监控端(192.168.1.101)发出my_check_disk检测命令,并传递参数/usr。(可能my_check_disk接受一个参数检测不同路径下的磁盘的使用情况)。
5.在监控端cfg文件中的写法
define host{
host_name 101host
address 192.168.1.101
...
}
define service{
host_name 101host
service_description 检测/usr磁盘使用情况
check_command check_nrpe!my_check_disk!/usr
...
}
any help contact at honwhy19@163.com
“把执行后的结果返回到监控服务器上”——这个是如何实现的呢?求指教。
UPDATE:
1.编译NRPE时候加上--enable-command-args参数
2.打开nrpe.cfg的传参功能,将dont_blame_nrpe设为1
3.定义自己的command, 如command[my_check_disk]=/usr/local/nagios/libexec/my_check_disk -p $ARG1$
注意:
必须写全路径/usr/local/nagios/libexec
my_check_disk既是命令(command)也是自己定义的脚本,它能解析-p后面的参数,对比nrpe.cfg默认的定义的check_disk命令就会发现有所不同。
4.在命令中测试
/usr/local/nagios/libexec/check_nrpe -H 192.168.1.101 -c my_check_disk -a /usr
比如监控端中check_nrpe向被监控端(192.168.1.101)发出my_check_disk检测命令,并传递参数/usr。(可能my_check_disk接受一个参数检测不同路径下的磁盘的使用情况)。
5.在监控端cfg文件中的写法
define host{
host_name 101host
address 192.168.1.101
...
}
define service{
host_name 101host
service_description 检测/usr磁盘使用情况
check_command check_nrpe!my_check_disk!/usr
...
}
any help contact at honwhy19@163.com
1 我假设你已经知道了check_nrpe和NRPE的通信机制(socket,守护进程...)
2 请注意远程客户机的NRPE配置文件,nrpe.cfg,要能够传递参数,并让特定脚本获取这个参数
打开传参功能开关, dont_blame_nrpe(类似,可能不对,手头上目前没有这个代码,抱歉~~),写好相应的command[]=<binary path> -w<arg1> -c<arg2>,类似
在监控端,定义好相关服务....
声明我不是大婶,你的目的是传参和通信,是吗?
nagios是通过command pipe来执行外部指令的,传参有实现的可能,通信可能要自己扩展,会不会涉及到内核层面我就不知道了。
声明我不是大婶,你的目的是传参和通信,是吗?
nagios是通过command pipe来执行外部指令的,传参有实现的可能,通信可能要自己扩展,会不会涉及到内核层面我就不知道了。