我想要一种方法来自动发现Jenkins主服务器,并自动监控这些詹金斯主服务器上作业的运行状况,这样我就可以查看单个控制台(使用nagios主机)来检测集成中任何作业失败时的问题。
有人能帮我找到使用nagios的Jenkins主服务器吗?
有一个nagios插件用于从Jenkins检索作业健康信息,但看起来它需要为每个作业手动配置,请参阅nagios Jenkins插件。
我对nagios不够熟悉,不知道任何内置的自动发现是如何工作的,但看起来有几个示例脚本(check_find_new_hosts和设备发现)可以从网络扫描中生成必要的配置。您必须做一些工作才能将扫描结果集成到您的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 Remote API记录在Jenkins实例中,只需转到http://jenkins:8080/api
。