使用nagios自动jenkins主发现和监控

时间:2012-12-13 14:29:40

标签: jenkins nagios

我想要一种方法来自动发现Jenkins主服务器并自动监控这些Jenkins主服务器上的作业的运行状况,以便我可以查看单个控制台(使用nagios主机)来检测作业在任何地方发生故障时的问题集成。

有人可以帮我找到使用nagios的Jenkins主服务器吗?

1 个答案:

答案 0 :(得分:4)

有一个用于从Jenkins检索作业健康信息的nagios插件,但看起来需要为每个作业手动配置,请参阅Nagios Jenkins plugin

我对nagios不熟悉,不知道内置的自动发现是如何工作的,但看起来有几个示例脚本(check_find_new_hostsdevice discovery)用于生成必要的配置来自网络扫描。您必须做一些工作才能将扫描结果集成到您的nagios实例中。 (IIRC,你需要在编写新配置后重新启动nagios吗?)

要获取Jenkins服务器列表,您可以构建一个适用于nagios的现有网络扫描脚本。该脚本应扫描IP范围并识别响应http://IP:8080/api/xml的设备。生成的XML文档(也支持JSON结果)应包含名为<hudson>的根标记(在我的实例中,在将来的版本中可能会更改为“jenkins”)。如果服务器响应此请求,那么您将希望您的脚本生成用于监视它的nagios配置。

此外,XML响应将包含一系列作业,例如:

<job>
  <name>My Job</name>
  <url>http://jenkins:8080/job/My%20job/</url>
  <color>blue</color>
</job>

通过遍历此列表,您可以获得作业名称,作业URL(有关更多详细信息或轮询状态)以及当前状态(蓝色表示成功)。此作业列表可以为Nagios Jenkins插件配置提供输入。

Jenkins实例上记录了Jenkins Remote API,只需转到http://jenkins:8080/api即可。