我正在使用资源监控工具Munin。 (版本1.4.6)
今天我启用了电子邮件提醒功能,以便在值过高时收到通知。
使用munin,可以设置两级警报。 (警告或严重)
我已经像这样配置了munin.conf文件:
contact.scs.command mail -s "Munin notification ${var:host}" [email protected]
[varnish;server01.domain.net]
address server01.domain.net
use_node_name yes
cpu.iowait.warning 14
cpu.iowait.critical 17
cpu.contacts scs
当性能值超过定义的最大值时,将成功发送带有警报的邮件通知。 :-)
现在问我的问题:
是否可以将关键通知发送到与警告通知不同的邮件地址?
不幸的是我在网上找不到任何东西。
我已经试过了,但它对我不起作用:
contact.scs.command mail -s "Munin notification ${var:host}" [email protected]
contact.crit.command mail -s "Munin notification ${var:host}" [email protected]
[varnish;server01.domain.net]
address server01.domain.net
use_node_name yes
cpu.iowait.warning 14
cpu.iowait.critical 17
cpu.contacts scs
cpu.contacts.warning scs
cpu.contacts.critical crit
感谢帮助!
这是你的猜测。对于所有仅警告联系人:
contact.scs.command mail -s "Munin notification ${var:host}" [email protected]
contact.scs.always_send warning
对于所有关键的联系人:
contact.crit.command mail -s "Munin notification ${var:host}" [email protected]
contact.crit.always_send critical
对于任何警告和关键联系人:
contact.other.command mail -s "Munin notification ${var:host}" [email protected]
contact.other.always_send warning critical
不幸的是,munin不支持这个,它的文档很差。但是可以通过解决方法来实现。我的情况下面有点复杂,我必须首先ssh到另一台机器,因为在我的情况下邮件不能直接从munin机器发送。但是,当然可以在不使用ssh的情况下简化它。
contact.email.command ssh [email protected] "cat > /tmp/muninmail.txt; bash -c \"if grep -q CRITICAL /tmp/muninmail.txt; then cat /tmp/muninmail.txt | mail -s 'Munin-notification for ${var:group} :: ${var:host}' [email protected]; fi\"
没有ssh,这样的事情应该这样做,但我没有测试过这种情况:
contact.email.command bash -c "cat > /tmp/muninmail.txt; if grep -q CRITICAL /tmp/muninmail.txt; then cat /tmp/muninmail.txt | mail -s 'Munin-notification for ${var:group} :: ${var:host}' [email protected]; fi"