检查傀儡代理是否是最新的

我想检查我的nagios监视每个节点是否使用puppetmaster提供的当前目录版本。

在我的情况下,有:

  • 木偶大师
  • 主机1
  • 主机2
  • 主机X

我想在host1,host2,hostX上创buildnrpe插件:

  • 检查主机上的当前目录版本
  • 检查为puppetmaster上的节点准备的当前目录版本
  • 警告,如果两者不同

问题:

  1. 要检查puppetmaster上的目录版本,我可以运行/ production / catalog API查询,但是它非常昂贵(cpu) – 因为每当我请求时都需要编译目录。
  2. 我看不到任何选项来检查节点上的当前目录版本。 我尝试了木偶目录,但这不是很有帮助。

所以我的问题是,如何监视木偶代理人的健康,并得到通知,如果任何主机使用旧的木偶目录? 这有什么意义吗?

我写了一个简单的check_puppet NRPE脚本,可以完成你想要的大部分function。 它基于RI Pienaar的原创,比我所需要的还要多。 在这两种情况下,我们都会parsing/var/lib/puppet/state/last_run_summary.yaml以查看上次代理运行的状态。

当正常的代理程序运行时应提供足够的数据以正确提醒,我看不出使用第三块软件比较主服务器和代理程序之间的目录版本的优势。

以下是我们的工作:

在我们的设置中,我们有一个围绕着调用puppet agent --test的包装脚本 – testing还会检查一些环境设置,比如存在一个“制动器文件”,允许loginpipe理员临时禁用自动化。

在包装器脚本中,每当puppet代理以状态码0退出时,我们触摸状态文件(/ var / state / puppet-run)。

然后,我们跟踪这个文件的年龄,以确定它是否比例如1.5倍的木偶运行时间更早。

这个确切的问题激发了我作为一种服务来构build这个服务,所以人们可以继续前进,而不必build立自己的监控工具。 查看http://cronitor.io – 一个监视器是免费的,并有业务的付费计划。