1

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

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

4

1 回答 1

4

有一个用于从 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.

于 2012-12-14T17:57:14.257 回答