我知道我们可以使用 nagios 插件电子邮件通知来发送任何类型的关键警报的电子邮件。现在我希望每天发送一封电子邮件作为过去一天的关键警报报告。有人能帮我解决这个问题吗?
答案1
现在我希望每天发送一封电子邮件作为过去一天的关键警报报告。
编辑nagios.cfg
以将轮换方法更改为每日:
# LOG ROTATION METHOD
# This is the log rotation method that Nagios should use to rotate
# the main log file. Values are as follows..
# n = None - don't rotate the log
# h = Hourly rotation (top of the hour)
# d = Daily rotation (midnight every day)
# w = Weekly rotation (midnight on Saturday evening)
# m = Monthly rotation (midnight last day of month)
log_rotation_method=d
然后解析nagios.log
关键警报,如下所示:
awk '/SERVICE ALERT: .*;CRITICAL;HARD/ { print $0 }' nagios.log | \
perl -pe 's/(\d+)/localtime($1)/e' | \
mail -s "Nagios daily report $(date +%F)" <your_email>@domain.com
如果您愿意,可以在一天结束时将上述命令作为日常 cron 作业运行。
答案2
您可以查看http://<nagios-server>/cgi-bin/icinga/summary.cgi
并选择每天想要查看的报告。调整参数后,获取生成的报告的 URL。
现在通过 cron 执行如下操作:
- 从上述 URL 获取报告
- 如果需要,可以对刚刚拉下来的 html 进行预处理和重新排列
- 通过电子邮件发送
答案3
为了在 shell 上调用 cgis,您还应该考虑阅读这些提示(它们针对的是 Icinga 1.x,因此某些 cgi 参数可能不适用于 Nagios)。