詹金斯心跳脚本的最佳实践是什么?

What is the best practice for a jenkins hearbeat script?

我有多个 Jenkins 实例 运行,它们不一定具有 slave/master 关系。让他们相互监视并在一个实例出现故障时警告管理员的最佳方法是什么。我目前使用的方法是在实例 A 上创建一个作业,该作业触发实例 B 上的一个作业,然后实例 B 反过来检查实例 B 的资源是否正常。实例 B 然后在实例 A 上执行相同的触发过程。这是一个好的设置吗?触发作业和获取输出状态的最佳方式是什么?

Is this a good setup?

如果它适用于您的用例,那么它就是一个很好的设置;也就是说,您不会发现自己经常调整脚本,也不会误报。

在某些情况下,使用作业队列可能会出现问题 - 例如在那个之前有很多作业要执行,或者一些长运行宁的作业会阻塞要处理的心跳。然后,也许可以让一个工作执行者自由地执行像心跳这样的工作; 这个(工作限制) 似乎合适。

此外,按顺序耦合心跳意味着在第一次故障之后,没有关于序列中所有其他节点的更多信息;所以当实例A宕机时,你不知道实例B的状态。


我会检查服务器监控软件:nagios, cacti etc. You'll find scripts that integrate Jenkins into it, and it looks like integrating monitoring jobs is fairly easy; here on SO,meMangesh 编写了一个脚本来检查是否可以通过 HTTP 访问特定的 jenkins 作业 URL。

使用此类软件还有一个额外的好处,即您可以获得有关在服务器上查找什么的提示 - 例如当硬盘分区运行满时,当服务器负载运行宁高时,等等