大家好我有一个脚本可以重新启动服务器(/scripts/startAll.sh)
中存在的所有组件(.jar文件)。因此,每当我的服务器出现故障时,我都想使用nagios调用脚本的执行,nagios运行在不同的Linux服务器上。有可能这样做吗?请帮助如何使用nagios调用此脚本的执行?
答案 0 :(得分:1)
事件处理程序
Nagios和Naemon允许执行自定义脚本,包括主机和服务进入“问题状态”。由于您的实现是为了重新启动特定的应用程序,因此您很可能需要成为服务事件处理程序。
可以在程序范围内启用或禁用事件处理程序 使用主配置文件中的enable_event_handlers。
可以启用或禁用特定于主机和服务的事件处理程序 在主机和服务中使用event_handler_enabled指令 定义。特定于主机和服务的事件处理程序不会 如果禁用全局enable_event_handlers选项,则执行。
为服务或主机启用和创建事件处理程序命令
[IE:/usr/local/nagios/etc/nagios.cfg]:
enable_event_handlers=1
event_handler
指令来实现此目的。[IE:/usr/local/nagios/etc/services.cfg]:
define service{
host_name my-server
service_description my-check
check_command my-check-command!arg1!arg2!etc
....
event_handler my-eventhandler
event_handler_enabled 1
}
[IE:/usr/local/nagios/etc/objects/commands.cfg]:
define command{
command_name my-eventhandler
command_line /usr/local/nagios/libexec/eventhandlers/my-eventhandler.sh
}
在此示例中,脚本“my-eventhandler.sh”应使用SSH连接到远程系统,并执行您已决定的命令。
注意:这仅适用于您环境中一个框的快速,有效的解决方案。实际上,最好远程创建事件处理程序脚本,并使用NRPE等代理在传递$HOSTNAME$
变量时执行命令(从而允许解决方案跨多个系统进行扩展)。我找到了使用NRPE执行事件处理程序的最简单的教程here。
答案 1 :(得分:0)
您可以使用 check_by_snmp.pl
通过snmpd在远程主机上运行shell脚本查看https://exchange.nagios.org/directory/Plugins/ * - Remote-Check-Tunneling / check_by_snmp - 2F-check_snmp_extend - 2F-check_snmp_exec / details
这是一个非常有用的nagios插件。我经常使用它。
祝你好运!!