我想要一种方法来自动发现Jenkins主服务器并自动监控这些Jenkins主服务器上的作业的运行状况,以便我可以查看单个控制台(使用nagios主机)来检测作业在任何地方发生故障时的问题集成。
有人可以帮我找到使用nagios的Jenkins主服务器吗?
答案 0 :(得分:4)
有一个用于从Jenkins检索作业健康信息的nagios插件,但看起来需要为每个作业手动配置,请参阅Nagios Jenkins plugin。
我对nagios不熟悉,不知道内置的自动发现是如何工作的,但看起来有几个示例脚本(check_find_new_hosts和device 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
即可。