我能够使用 puppet 在 nagios 中添加 ec2 实例,但是实例终止后,如何从 nagios 配置中删除这些实例。
我正在寻找一些东西,每当任何节点被手动或通过 ASG 终止时,等待 10 分钟左右,如果节点仍然关闭,则从 nagios 中删除它并重新启动 nagios。
答案1
对于长期运行的主机,请使用配置管理工具在进行更改时更新 Nagios 配置。
对于 ASG 主机,我只需编写一个简单的脚本,使用 EC2 API 获取每个 ASG 的主机列表,然后让脚本修改 Nagios 配置。
答案2
如果您已在监控中添加实例,则您的 nagios 已维护了您的 EC2 的状态。Nagios 还公开了 API 来查询宕机主机以及它们处于宕机状态多长时间的详细信息。您可以查询 nagios API 以获取宕机主机列表,并编写脚本以在宕机时间超过 X 分钟时将其删除。
检查清理脚本部分这个博客。nagios 实例上的计划 cron 作业将定期查询主机并将其从主机文件中删除。代码以 PHP 编写,并公开 REST API,以便可以从任何地方调用。