我了解 Nagios 是如何工作的,因为它会定期轮询系统的状态。例如,它可以每分钟检查某些文件的存在或某些网页的可用性。
但是当我想直接从我的应用程序代码创建警报时呢?假设用户尝试执行一些非法操作,我想收到警报。
例如,我可以将此事件记录到文件中并配置 Nagios 以定期轮询此文件。这似乎只是一种间接的方式。如果我可以使用警报详细信息调用某个接口(REST、SOAP),为什么还要在文件系统中编写、轮询和解析文件?
是否有可用的东西可以让我的应用程序直接调用 Nagios(或者由于某种原因这会是一个糟糕的设计)?
您正在寻找的是 NAGIOS 的被动服务概念,以及NSCA
状态注入的使用。
该服务是被动的——也就是说,NAGIOS 根本不会轮询它。您在 NAGIOS 服务器上运行 NSCA 守护进程,并通过让您的应用程序调用从客户端注入状态信息send_nsca
。当 NAGIOS 得到这个状态信息时,它会根据服务定义发出警报。
如果您正在设置这样的服务,最好为它启用新鲜度检查,在连续状态注入之间大约两倍的最大延迟时触发,并让新鲜度检查器在调用时直接进入 CRITICAL。这意味着如果状态注入发生故障,NAGIOS 会通知您更新已停止到达。
归档时间: |
|
查看次数: |
222 次 |
最近记录: |