Nagios 以电子邮件形式发送每日警报历史记录

Nagios 以电子邮件形式发送每日警报历史记录

我知道我们可以使用 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)。

http://docs.icinga.org/latest/en/cgiparams.html

http://docs.icinga.org/latest/en/cgicmd.html

相关内容