我设置了 nagios 警报,通过带有 http 链接的 jabber 发送到 ack。
是否有可能我可以从远程工作站上的终端运行一个脚本,该脚本将主机名作为参数并确认警报?
./ack 主机名
好处虽然看似平凡,但却是三重的。首先,从 nagios 中去除 http 负载。其次,nagios http 页面可能需要 10-20 秒才能加载,所以我想在那里节省时间。第三,避免使用较慢的鼠标 + Web 界面 + firefox/其他令人讨厌的缓慢浏览器。
理想情况下,我想要一个绑定到键盘快捷键的脚本,该快捷键可以简单地确认最近的警报。最后,我想从操纵杆、按钮等获取输入,并将其中一个连接到绑定到脚本的大红色按钮,这样我就可以通过点击按钮来确认最近的 nagios 警报,哈哈。(如果按钮在外壳上有一个屏幕显示警报文本被确认,那也太棒了,哈哈)
随心所欲地取笑我,但这实际上对我有用。如果我可以为每个警报节省 5 秒钟,而我每天需要确认 200 个警报,那么我每天就可以节省 15 分钟。系统管理员的全部意义不是自动化可以自动化的内容吗?
谢谢!
这绝对是可能的,但请记住,您正在深入了解 Nagios 的内部,它的学习曲线很陡峭。这应该是一个有趣且有益的学习曲线。
您可以使用 Nagios外部命令来允许外部程序将命令插入到 Nagios 命令队列中。有很多命令。将此与远程访问以及来自命令行和 shell 脚本的可能性相结合,可能性非常大。
这是一个示例:从远程设备通过 SSH 连接到 Nagios 主机。该命令~/bin/ack
会将命令插入到command_file队列中。Nagios 然后将读取 command_file,并执行您的命令。该命令可能类似于:
ssh nagios.example.org ~/bin/ack hostA
另一个示例:要禁用来自远程主机的 Nagios 上的所有通知,命令类似于:
ssh nagios.example.org "echo \"[\"
日期 +%s\"] DISABLE_NOTIFICATIONS\" > /var/spool/nagios/cmd/nagios.cmd"
理论上,您也可以使用其他守护程序执行此操作,使用 Netcat 侦听端口和管道命令到文件中,甚至使用 Jabber、IRC 等执行此操作。我知道有一个小组使用 xinitd 侦听执行此操作某些端口。请务必小心考虑允许未经身份验证的远程访问 Nagios 主机的安全隐患。
Nagios 在手册中有更多关于外部命令的信息。请参阅Nagios 核心:外部命令
下面是从 Munin 执行命令的示例。他们利用NSCA
归档时间: |
|
查看次数: |
2213 次 |
最近记录: |