原文出自http://www.iyunv.com/thread-22904-1-1.html
首先web端的配置顺序如下:
创建用户媒介-->创建用户组和用户-->针对trigger(触发器)添加报警动作,设置邮件发送用户及媒介1. 创建用户媒介
创建用户媒介-->创建用户组和用户-->Media types-->Createmedia type
Mediatype设置如下, Name项自定义(创建用户时会用到这个名字),我们使用脚本来发邮件,所以Type项请选择Script,Script项则是你zabbix server上的发送邮件的脚本名字(注:如脚本名字是snedmail.sh,那此项就填sendmail,后缀不要)。
2.创建用户组
在菜单栏选择Administration-->User-->Createusaer group
在User groups标签下填入用户组名字,勾选Enabled。
需要注意的是:在Permissions标签下,需要把用户组可以访问的主机添加进Read-write或Read only下(如不添加对应主机,那么报警邮件将无法正确发送出去)。另外,用户的权限是随着所属用户组的。
3.创建用户
在Administration-->User下,点击第二列Users选项,进入用户组所在用户列表,然后再点击页面右上角Create user选项来创建用户。
在User标签下,填入别名,用户名,密码,所属组选择,Auto-login勾选上,其它默认即可。
再到Media标签下,点击Add添加用户及该用户的报警方式,然后Type项选择你所创建的邮件报警名字(Media Type),在Send to后填入用户的报警邮箱,其他默认即可。
4.针对触发器添加报警动作
以下以根目录磁盘剩余空间报警为例:(下图为说明,无需操作)
下面这台主机的根目录磁盘剩余空间的trigger名为:Free disk space is less than 10%on volume /,主机名为:CMCC-OTT-01 172.16.15.166
下面是针对上面这个trigger设置邮件报警的action,在菜单栏选择Configuration-->Action-->Createaction
在Action标签下,Name项填入自定义名字,其他项用默认的即可。
在conditions标签下的New Condition项下选择Trigger name,like,把要添加报警的trigger名填入后面的文本框中(如下图):
接下来添加另一个NewCondition,选择Host,=,把主机名填入(如下图):
在Operations标签下,点击New创建邮件报警和报警延迟。
在打开的detail下,下图标箭头的地方需要注意修改:
1.To后面改成0表示,trigger出发后且一直未恢复,则会一直报警。
2.Operationtype处选择Send message。
3.Sendto Users处选择刚创建的用户。
4.Sendonly to选择刚创建的Media type。
配置完成后即可测试邮件报警功能是否成功。当然如果大家感觉配置麻烦可以试试OneAlert一键集成zabbix,轻松实现微信、电话、邮件、短信、APP的告警通知。地址是:http://www.onealert.com/activity/zabbix.html
附:
zabbix可以配合msmtp+mutt来发邮件(此方法可以指定外部发件邮箱来发送邮件),当然也可以使用其他方式发邮件,比如直接写Python脚本或php脚本来发送邮件。
1.Msmtp的安装及配置
(1)下载源码包并解压安装,步骤如下:
(2)创建配置文件
(3)手动发送测试邮件检验是否配置成功
2.配置zabbix邮件发送脚本
将AlertScriptsPath=${datadir}/zabbix/alertscripts行的注释取消或改成其他路径,编写发送Email的脚本,邮件发送脚本内容如下即可:
注释:脚本中有三个变量,$1,$2,$3,其中$1是收件地址,$2是邮件主题,$3是邮件内容。
最后对脚本添加执行权限: