1

我正在使用资源监控工具 Munin。(版本 1.4.6)

今天我启用了电子邮件警报功能,以便在值过高时收到通知。

使用 munin 可以设置两个级别的警报。(警告或严重)

我已经像这样配置了 munin.conf 文件:

contact.scs.command mail -s "Munin notification ${var:host}" simon@domain.net

[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}" simon@domain.net
contact.crit.command mail -s "Munin notification ${var:host}" critical@domain.net

[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

感谢帮助!

4

2 回答 2

0

这是你的猜测。对于所有仅警告联系人:

contact.scs.command mail -s "Munin notification ${var:host}" simon@domain.net
contact.scs.always_send warning

对于所有关键联系人:

contact.crit.command mail -s "Munin notification ${var:host}" critical@domain.net
contact.crit.always_send critical

对于任何警告和关键联系人:

contact.other.command mail -s "Munin notification ${var:host}" other@domain.net
contact.other.always_send warning critical
于 2013-08-26T17:59:10.130 回答
0

不幸的是,munin 不支持这一点,而且它的文档也很差。但是可以通过解决方法来做到这一点。我下面的情况有点复杂,我必须先 ssh 到另一台机器,因为在我的情况下,邮件不能直接从 munin 机器发送。但当然可以在不使用 ssh 的情况下对其进行简化。

contact.email.command ssh user@10.20.30.40 "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}' mail@domain.net; 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}' mail@domain.net; fi"
于 2019-02-22T09:34:16.967 回答