我可以将检查脚本从主机发送到客户端并使用 Icinga2 维护执行位吗?

我可以将检查脚本从主机发送到客户端并使用 Icinga2 维护执行位吗?

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

我已经在客户端上安装了 icinga2 和 surveillance-plugins-basic,我能够使用check_apt等添加远程检查。我甚至设法CheckCommands通过“全局模板”机制添加了我自己的模板,这些模板会自动发送给客户端,最终/var/lib/icinga2/api/zones/global-templates/_etc/

我有许多自己的检查脚本(用 shell 和 Python 编写),我也想运行它们。我/etc/icinga2/zones.d/global-templates也把它们放进去了,它们也被发送给了客户端。然而,它们在途中丢失了执行位,所以我被迫在运行它们时明确提供解释器。这可行,但有点丑陋。

有没有更好的方法将我的检查脚本从主服务器发送到客户端?如果没有,有没有办法用这种方法保留执行位?

答案1

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

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

同步配置的路径也可能会改变,没有可靠的方法来依赖它。

可以使用诸如 Puppet、Ansible 等(生命周期)管理工具来帮助部署此类脚本。可以通过从软件存储库中可用的脚本完整创建包来帮助解决脚本依赖关系。

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

相关内容