我运行的多个Jenkins实例不一定具有slave / master关系。如果一个实例出现故障,让他们互相监控并警告管理员的最佳方法是什么?我正在使用的当前方法是在实例A上有一个作业,它触发实例B上的作业,然后实例B检查实例B的资源是否健康。然后,实例B在实例A上执行相同的触发过程。这是一个很好的设置吗?触发工作并获得输出状态的最佳方法是什么?
答案 0 :(得分:1)
这是一个很好的设置吗?
如果它适用于您的用例,那么这是一个很好的设置;也就是说,你不会经常调整脚本,或者被误报。
可能存在使用作业队列存在问题的情况 - 例如在那之前要执行许多作业,或者一些阻止心跳处理的长期作业。然后,也许可以让一个工作执行者自由地执行像心跳这样的工作; this one (Job Restrictions)似乎很合适。
此外,顺序耦合心跳意味着在第一次失败后,没有关于序列中所有其他节点的更多信息;所以当实例A关闭时,你不知道实例B的状态。
我检查服务器监控软件:nagios,cacti等。您将找到将Jenkins集成到其中的脚本,看起来集成监控作业相当容易; here on SO,meMangesh编写了一个脚本,用于检查是否可以通过HTTP访问特定的jenkins作业URL。
使用此类软件还有一个额外的好处,即您可以获得有关在服务器上查找内容的提示 - 例如当硬盘分区运行满,服务器负载运行高时等等