我正在使用 Nagios 来监控一定数量的服务器和进程是否保持在线。这个功能运行良好,我很满意。
但是,我希望在我继承并管理的服务器中有一个统一的“事件日志”。这些事件大多是 cron 作业,尽管以其他方式记录事件也不错。目前大多数 cron 作业的设置方式如下:
###
@hourly /backup/myscript.sh | mail -s "Myscript started" [email protected]
有什么更好的方法可以将来自不同服务器的日志集中到一个地方?也许我甚至可以登录 Nagios 并单击“事件日志”选项卡,然后查看所有这些通知。
这并不能替代查看脚本生成的实际日志文件(存储在服务器上),而只是另一种关注事物并在出现问题时快速回顾的方法。
我愿意接受有关这方面的建议,并希望听到您这样做的方式或最佳做法。
附言:我还应该提到,我想改变这一点的原因是,每天会生成数百封电子邮件,这使得很难发现何时存在真正的问题。我想我还想选择将事情记录为“已完成”或“遇到错误”或类似的内容,然后在出现问题时发送通知电子邮件。也许我希望太多了。
答案1
nagios 确实有一个监控仪表板。nagios 的真正强大之处在于,您可以编写自己的自定义触发器,通过电子邮件/短信/电话/闪烁灯/任何您可以编写的脚本来通知您任何问题/警告/错误。还有一个 Web 图形用户界面,可显示您正在监控的所有内容(即服务组...服务器...单个监视器...等等...)
答案2
由于您可以通过编写自己的插件来使用 Nagios,因此肯定有方法可以做到这一点。
例如,我使用 Splunk 收集所有服务器、网络设备等的事件日志。也可以使用通用系统日志服务器或转储到数据库来执行相同的操作。
我在 Splunk 中设置了搜索,Nagios 会执行这些搜索并执行警报逻辑。我建议,如果你想走这条路,先好好了解如何编写自定义插件。一旦你掌握了这些,就可以弄清楚你想在 Nagios 仪表板中添加什么。
答案3
如果您希望监控事物而不需要单独登录每个服务器,则可以使用 syslog 服务器将所有日志集中在一个地方。这样,您只需在一个地方查找所有相关信息即可。
答案4
我建议你看一下 LogZilla。它允许你集中记录所有内容、搜索它们,甚至创建图形/图表等。我们已经使用它大约一年了,我真的很喜欢它。对于较小的商店,它还有一个免费许可证。
编辑:有一个“现场”演示正在运行http://demo.logzilla.pro