本文共 1567 字,大约阅读时间需要 5 分钟。
先创建组和用户,这个组内的用户只是用来监控的,所以权限只给读权限,报警媒介输入邮箱地址。
2.在 配置-动作 选择创建动作。
3.填写动作名称,触发条件。
4.操作填写触发后执行的动作,远程执行命令或发送邮件:
1 | #默认信息,这里是宏变量,可以设置成中文,这里我常用的是下面这个。 |
1 2 3 4 5 6 7 | 告警主机:{HOST.NAME} 主机IP: {HOST.IP} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息:{TRIGGER.NAME} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 事件ID: {EVENT.ID} |
5.在管理-报警媒介处选择报警类型(注意以下三处)。
1)这里脚本名称是Email.sh,所以要在zabbix的安装目录中创建一个脚本:
我这里的zabbix3.2是编译安装的,所以脚本目录应放在/usr/local/zabbix/etc/alertscripts/下,yum安装的应放在/etc/zabbix/alertscripts/下。
1 2 | mkdir -p /usr/local/zabbix/etc/alertscripts/ cd /usr/local/zabbix/etc/alertscripts/ |
2)编写发送邮件的脚本
$1:邮件地址。
$2:邮件主题。
$3:邮件内容
vi Email.sh
1 2 3 4 5 6 | #!/bin/sh #export.UTF-8 FILE= /tmp/mailtmp .txt echo "$3" >$FILE dos2unix -k $FILE /bin/mail -s "$2" $1 < $FILE |
注意:这里的Email.sh脚本一定要有可执行权限,mailtmp.txt同样需要可执行权限,否则发送的邮件会有问题。
1 2 3 | chmod +x Email.sh touch /tmp/mailtmp .txt chmod 777 /tmp/mailtmp .txt |
3)安装发送邮件的工具postfix或者申请一个163邮箱的smtp,这里用第二种方式,用163邮箱作为发送邮件的工具。
首先卸载linux自带的邮件发送工具。
1 | yum remove sendmail postfix -y |
申请一个163邮箱,然后设置smtp:
点击客户端授权密码,开启以后会得到一个密码,这个密码下面就要用到。
4)在服务器上编辑邮件mailx,没有的话需要安装:
1 2 3 4 5 6 7 8 9 | yum install -y mailx vi /etc/mail .rc #在配置文件最后添加如下内容: set bsdcompat set from=zabbix_darren@163.com set smtp=smtp.163.com set smtp-auth-user=zabbix_darren@163.com set smtp-auth-password=123456 #这个密码就是刚才开启的163客户端授权密码 set smtp-auth=login |
5)测试Email.sh脚本发送邮件是否能成功:
1 | /usr/local/zabbix/etc/alertscripts/Email .sh test @qq.com "test" "test email" |
6)如果脚本测试成功,那说明linux系统发送邮件是没有问题的,如果zabbix触发了事件,结果没收到邮件,就要检查zabbix的设置了。
本文转自 王家东哥 51CTO博客,原文链接:http://blog.51cto.com/xiaodongge/1924995
转载地址:http://ftiga.baihongyu.com/