zabbix邮件告警1python
出现了告警,须要及时通知维护人员,就须要设置邮件发送。linux
阿里云邮件报送服务web
阿里云 → 管理控制台 → 产品与服务 → 云通讯 → 邮件推送
当即开通 → 发信域名 → 新建域名 → 点击配置
dnspod → TXT记录/MX记录/CNAME
验证
发信地址 → 新建发信地址 → 域名/帐号/发信类型(触发) → 设置
smtp密码
设置完成后记住smtp服务器地址和端口号vim
SMTP服务地址: smtpdm.aliyun.com ,SMTP服务端口号:25或80或465(SSL加密)。 [root@wangzb01 ~]# mkpasswd -l 10 //能够经过linux的expect工具生成随机密码 [root@wangzb01 ~]# vim mail.py //输入如下Python内容 #!/usr/bin/python #coding:utf-8 import smtplib from email.mime.text import MIMEText import sys mail_user = 'admin@wangzb.club' mail_pass = 'xxxxxxxx' ##定义邮箱的帐号和密码,你须要修改为你本身的帐号和密码(请不要把真实的用户名和密码放到网上公开,不然你会死的很惨) def send_mail(to_list,subject,content): me = "zabbix 监控告警平台"+"<"+mail_user+">" msg = MIMEText(content, 'plain', 'utf-8') msg['Subject'] = subject msg['From'] = me msg['to'] = to_list try: s = smtplib.SMTP("smtpdm.aliyun.com", 25) s.login(mail_user,mail_pass) s.sendmail(me,to_list,msg.as_string()) s.close() return True except Exception,e: print str(e) return False if __name__ == "__main__": send_mail(sys.argv[1], sys.argv[2], sys.argv[3]) [root@wangzb01 ~]# chmod 755 mail.py //修改权限 [root@wangzb01 ~]# ./mail.py wangzhiboxm@163.com "测试邮件" "'cat /etc/my.cnf'" //发送测试邮件
打开163邮箱查看是否有收到邮件浏览器
zabbix邮件告警2服务器
打开配置文件zabbix_server.conf [root@wangzb01 ~]# vim /etc/zabbix/zabbix_server.conf AlertScriptsPath=/usr/lib/zabbix/alertscripts 须要将刚刚的mail.py脚本放在/usr/lib/zabbix/alertscripts路径下面 [root@wangzb01 ~]# ls /usr/lib/zabbix/alertscripts [root@wangzb01 ~]# mv mail.py /usr/lib/zabbix/alertscripts 这个文件的权限是由zabbix用户执行的,所以zabbix须要有执行权限
到浏览器web端,点击以下菜单工具
点击“create media type”测试
输入名称,type选择script,脚本名称必定要和服务器中脚本名称一致,增长三个参数,点击添加。阿里云
点击users——admin加密
添加接收邮箱,能够添加多个邮箱
配置动做:当发现故障时,要作什么动做?
默认已经有一个action了 点击create action
operations其余地方默认,operations点击new
recovery operations,点击new
设置send to group users 和 send only to
最后一项update operations默认便可,点击add
下面模拟测试报警
回到主机界面,点击trigger触发器,
点击咱们手动增长的监控网卡流量
修改条件将{wangzb02:net.if.in[ens33].last()}>=10000000改成{wangzb02:net.if.in[ens33].last()}<=10000000
过一下子,能够看到monitoring下problem里就会有报警
可是邮件没发送成功,缘由是由于user中没有配置media