以前,设置 Nagios 服务器进行监控很容易,因为每个代理服务器都是静态的。但现在,AWS 来了。我们如何设计/配置,以便 Nagios 服务器可以自动将正确的检查配置推送到每个扩大/缩小的服务器,我们如何知道当服务器缩小或扩大时,Nagios 不会说这是一个警报或问题,而是会说“这是您的服务器正在缩小”。
在 ASG 扩大/缩小服务器后,AWS 中的 IP 地址不再是静态的。我们如何获取这些信息?并告诉 Nagios 了解服务器的新设置。可能是当服务器缩小时,从 Nagios 中删除配置,当服务器扩大时,将配置推送到 Nagios。并立即对主机和服务进行主动检查。
答案1
客户端在 AWS 中实际上并没有什么不同——您的 AMI 或配置管理系统会根据您的环境需要设置 NRPE、安装插件等。
服务器端是一切变得疯狂的地方。正如您所指出的,AWS ASG 是动态的,因此您的 Nagios 配置也需要是动态的。实际上,这意味着您的配置的“真实来源”需要位于 Nagios 之外的某个地方,并且您有一些东西可以在任何更改时查询该数据存储并写入配置文件(并重新加载 Nagion)。您选择的脚本语言将在这里派上用场。对于“真实来源”,有许多服务注册和发现系统可以解决问题,但对于简单的用例,查询 EC2 API 以获取实例列表效果很好。
然后,您需要教会您的 EC2 实例在启动时向您选择的服务发现系统注册自己,并在它们干净终止时取消注册。有一个强有力的论据是,您不应该关心一台机器何时死机,我同意这一点,但如果您使用的是 Nagios,那么您组织的思维模式可能非常坚定地认为“机器很重要!”,试图在一夜之间改变这种状况将是一场斗争,所以您可能必须随着时间的推移了解到您现在从事的是放牧业务,而不是经营宠物店。
答案2
正如@womble 所解释的,您的 nagios 解决方案应该是动态的。查看此博客它通过脚本解释了整个解决方案,并且对我来说效果很好。