我想要一种自动发现 Jenkins 主服务器并自动监控这些 Jenkins 主服务器上作业的运行状况的方法,以便我可以查看单个控制台(使用 nagios 主机)来检测作业在集成中的任何位置失败时出现的问题。
有人可以帮我找到使用 nagios 的 Jenkins 主服务器吗?
有一个用于从 Jenkins 检索作业健康信息的 nagios 插件,但看起来它需要为每个作业手动配置,请参阅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 远程 API记录在您的Jenkins 实例上,只需转到http://jenkins:8080/api
.