我需要配置 Nagios,如果没有问题,则发送一条通知,告知一切顺利。
是否存在这种设置或者是否有相应的插件?
答案1
我使用以下设置每天发送一次电子邮件。这让我知道我的 Nagios 服务器、电子邮件系统和 Nagios 配置一切正常。
# nagios/objects/localhost.cfg
....
# Send a message once per day to make sure nagios is working ok
define service{
use local-service
host_name localhost
service_description Nagios is OK
check_command check_all_is_well
check_period morning ; this is a custom period
normal_check_interval 60
; setting this to an hour and making the check_period
; interval 59 minutes long each day ensures it only
; happens once per day in a specific window
}
在你的时间段配置文件中:
# nagios/objects/timeperiods.cfg
....
define timeperiod{
timeperiod_name morning
alias First thing in the am
monday 06:00-6:59
tuesday 06:00-6:59
wednesday 06:00-6:59
thursday 06:00-6:59
friday 06:00-6:59
saturday 06:00-6:59
sunday 06:00-6:59
}
check_all_is_ok 命令是 sendmail 的一个简单包装器:
# check_all_is_ok
#!/bin/bash
echo "All is well from Nagio on `hostname`" \
| /etc/nagios/sendmail -s "Nagios on PIP is OK" <your email address>
echo "OK: nagios is ok on `hostname`";
exit 0
它不会检查前 24 小时内是否出现问题,但如果需要,您可以按照 guanta 的建议添加一些日志 grep-ping。您还可以通过将 normal_check_interval 设置为 1440(24 小时)来实现每天一次的要求,但我希望检查每天在特定窗口中运行。
答案2
如果您配置了每日日志轮换(log_rotation_method=d
),则可以编写一个脚本来计算警报数量nagios.log
,如下所示:
[ `grep -c ALERT var/nagios.log` -eq 0 ] && echo "Everything is OK!" | mail -s "Nagios daily report" your@email
将其放入 cron 作业中,在一天结束、睡觉前运行。
如果没有,请参阅这按照日期进行过滤的主题。
答案3
为了其他人的利益:我自己刚刚解决了这个问题,想到的最简单的解决方案是每 8 小时检查一次 nagios 进程,以确保 nagios 正在运行
#crontab -e
添加以下内容
* */8 * * * /usr/local/nagios/libexec/check_nagios -t 20 -e 5 -F /usr/local/nagios/var/status.dat -C /usr/local/nagios/bin/nagios > /var/local/nagios_stats && sendemail -f "NAGIOS STATUS [email protected]" -u Nagios Process Status -s smtp.gmail.com:587 -xu [email protected] -xp SenderPassword -o tls=yes -t [email protected] -m < /var/local/nagios_stats
别忘了
/var/local/nagios_stats
在(或其他地方但在 crontab 中更改)中创建文件
发件人地址、收件人地址、邮件密码
答案4
有点晚了,但对于其他正在寻找解决方案的人来说,有一个简单的方法,使用livestatus 经纪人模块。
设置 livestatus 使用 unix 套接字(Shinken 默认只设置了 tcp 端口,你可以在配置中添加套接字这一页),您可以使用例如 Python 脚本直接对其进行轮询。