是否有可能在远程工作站上检查来自terminal的警报?

我有nagios警报设置来通过jabber与http链接到ack。

是可能有一个脚本,我可以运行在远程工作站上的terminal,将主机名作为参数,并确认警报?

./ack主机名

这个好处,虽然看起来很平凡,却是三重的。 首先,取消closuresNagios。 其次,nagios的http页面可能需要10-20秒才能加载,所以我想在这里节省时间。 第三,避免使用鼠标+网页界面+ Firefox /其他烦人的浏览器。

理想情况下,我想要一个脚本绑定到一个键盘快捷键,只是最近的警报。 最后,我想从操纵杆,button和其他任何东西上取得input,然后连接到一个绑定到脚本上的大红色button,这样我就可以通过点击button来检查最近的nagios警报。 (如果button的shell上有一个屏幕,显示警报文本越来越大,那么也是一样的)

嘲笑我所有你想要的,但这实际上是对我有用的东西。 如果我每次可以节省五秒钟的时间,而且每天有200次警报,我需要确认一下,这样每天节省15分钟。 系统pipe理员不能自动化可以自动化的东西吗?

谢谢!

这绝对是可能的,但请记住,你正在潜入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 \"[\" date +%s \"] DISABLE_NOTIFICATIONS\" > /var/spool/nagios/cmd/nagios.cmd"

理论上你也可以用其他的守护进程来做这个工作,利用Netcat来监听一个端口和pipe道命令到一个文件中,或者甚至使用Jabber,IRC等等。我知道一个使用xinitd监听的组某些端口。 要非常小心地考虑允许未经身份validation的远程访问Nagios主机的安全隐患。

Nagios在手册中有关于外部命令的更多信息。 请参阅Nagios Core:外部命令

这里是一个从Munin执行命令的例子。 他们利用NSCA

如果安全不是你的优先考虑的话,那么每一个netcat + xinetd +脚本都会这样做。 如果你想要一些安全性和/或你不想自己写,你可以试试NRCD或nscaweb 。 或者看看这个名为nagios_commander的脚本

在标准核心中分布的东西,我会说不。 但是,如果您扩展网站的cgi.c和支持模块代码,则可以执行此操作。 URI可能看起来不漂亮。 一个可能的问题是请求身份validation授权执行命令。

你有没有签出nagios交stream网站,也许发布的东西呢?