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