从远程Icinga / Nagios实例获取警报

我有一个Icinga服务器(这基本上是Nagios的一个分支)在我的客户的网站之一。 我通过ssh访问服务器,无法访问其他端口。

既然在这个网站上有几件事情可以下来,我宁愿每天至less检查一次网站。 所以我运行以下命令:

 ssh -L 8080:localhost:80 [email protected] 

并使用我的浏览器检查Icinga Web UI:

 http://localhost:8080 

相当标准。

问题是,如果我有更多这样的客户,那么进入这些服务器将是一个痛苦的经历。 最受欢迎的解决scheme是在这些主机上configuration邮件提醒,不幸的是这些机器没有互联网接入,我通过访问他们的ssh是他们唯一的联系方式。

有什么方法通过SSH从这些实例收集信息? 比方说,Icinga将当前警报转储到一个文件中,并将该文件scp到本地实例? 还是其他解决scheme?

我真的很感激能够来工作,并在某个地方看到任何警报(本地仪表板,邮件,无论)。

编辑远程站点应该有自己的Icinga设置,所以networking内的任何人都可以检查它的警报。 另外我想在我的地方有一个本地实例,这将聚合这些远程实例,并只显示他们的警报。 这样我可以configuration它发送电子邮件警报(从我的本地Icinga实例发送)

对于初学者,您可以指定每个站点与特定端口8080,8081等,然后使用类似autossh维护连接。 然后你会被连接,只需要从8080到8081检查你已经映射到devise的本地端口的每个站点。

这种方法可以放大,所以你可以用一个脚本代替你检查每个站点的本地端口。 根据每个网站的Icinga网站上的内容,您可以定期使用您自己的Nagios / Icinga网站进行检查,该网站已被configuration为检查您手动检查的各种内容。

没有更多的细节提供更多信息是非常困难的。

通常解决办法是build立一个NSCA的分布式Nagios设置。 然而,既然你说你没有从这些主机访问Internet,而你只能使用SSH,那么你就不得不多做一点创意。 可能最好的做法是按照现在的方式维护SSH会话,但使用远程端口转发(-R代替-L)为NSCA提供一个套接字,以便将结果提交到集中的Nagios。 您也可以让远程Nagios将结果写入文件,使用SSH获取该文件,并在中央Nagios服务器上重放。 无论哪种方式。 然后您可以查看中央Nagios上的Web UI,并查看所有网站的结果。 (您需要进行一些configurationpipe理;远程为每个主机定义的所有监控点都需要在中央服务器上进行镜像)。

slmbuild议的SSH隧道与通过XML / JSON / SOAP /任何你喜欢的暴露nagios /冰雹状态的各种附加组件之一结合起来。

那么你需要写一个脚本(find?),这个脚本可以从所有的localhost:8080,localhost:8081等等中删除状态 ,可能使用check_multi或者等价的方法。

这将会有些脆弱,但是通过仔细定义的依赖关系和一个保持隧道畅通的工具,它可以工作。