客观的:我需要监控具有大量远程主机的云环境。
我的问题: 我有一个数据库,其中包含主机配置和状态的当前低级详细信息,该数据库是在对环境进行初始扫描时创建的。我希望在出现问题时更新数据库中的数据,例如某些网络接口出现故障。注意:通过监听云环境消息队列可以捕获云环境设置中的更改,从而单独处理。
我正在寻找:出于可扩展性原因,我想使用 Nagios 被动检查,即让主机使用 NSCA 或 NRDP 发送状态更新,或者使用其他任何可以实现此功能的方法。收到检查结果后,我想使用事件处理程序运行脚本来更新我的配置数据库。注意:我假设主机具有 NIC 冗余,因此我不需要从服务器运行主动 ping 检查。
我一直在想该怎么做,但我只看到关于单独使用被动检查或使用主动检查的事件处理程序的参考。我该怎么做?
答案1
您可以使用服务的静态配置使其工作。
这是我的静态配置,用于执行磁盘警报的 Python 脚本。
define service {
host_name my host
service_description / Disk Usage
check_command check_nrpe!check_disk!-a '-w 20% -c 10% -p /'!!!!!!
event_handler my_command.py
initial_state o
max_check_attempts 5
check_interval 10
retry_interval 1
check_period 24x7
notification_period 24x7
notifications_enabled 1
register 1
}
首先,您需要在 Nagios CCM 中创建一个命令。
(在我的例子中,该命令是 my_command.py)
定义命令名称和应随其传递的参数。
您可以将脚本保存在 Nagios 中自带的 /usr/local/nagios/libexec/ 中$USER1$
。
然后如上所述在 /usr/local/nagios/etc/static 中定义静态配置(可能根据您的安装而有所不同)。
希望这会有所帮助,而且回答还不算太晚。;)