我可以发送检查脚本从主人到客户端,并保持与Icinga2执行位?

我相信我已经成功地在Debian 9(Stretch)上configuration了Icinga 2,使用Icinga文档中描述的“自上而下configuration同步”模式使用Debian软件包。

我已经在客户端上安装了icinga2和监控插件 – 基本上,我可以使用check_apt等添加远程检查。我甚至CheckCommands通过自动发送到客户端的“全局模板”机制添加我自己的CheckCommands并结束于/var/lib/icinga2/api/zones/global-templates/_etc/

我有一些我自己的检查脚本(用shell和Python编写),我也想运行。 我也把它们放在/etc/icinga2/zones.d/global-templates ,并且也发送给客户端。 但是,他们在执行过程中失去了执行位,所以我不得不在运行时明确地提供解释器。 这工作,但它有点难看。

有没有更好的方法来发送我的检查脚本从主人到客户端? 如果没有,有没有办法保持这个方法执行位?

不要这样做。 群集configuration同步仅适用于普通configuration文件。

虽然脚本可能只需要一个可执行的位,但具有不同架构和库依赖性的二进制文件却是一个更大的问题。

同步configuration的path也可能改变,没有可靠的方法来依赖它。

(生命周期)pipe理工具(如Puppet,Ansible等)可以帮助部署这些脚本。通过从软件存储库中可用的脚本中完全创build一个包,可以帮助解决脚本依赖性。

在我以前的工作中,我有一个中央插件库,定期检查客户端。