Zabbix設置郵件告警
前提條件:
Zabbix Server 和 Zabbix Agent都已安裝完畢,並已啟動
1、添加主機


2、配置郵件告警,這里以VSFTP服務為例
yum install -y vsftpd
vim /etc/vsftpd/vsftpd.conf
...
listen=YES # 修改該條
listen_ipv6=YES # 刪除該條
...
systemctl start vsftpd
郵件告警可以采取兩種方式,一是通過zabbix web直接設置,二是通過腳本設置
推薦第一種,以QQ郵箱為例:
(1)首先先打開qq郵箱授權


(2)創建媒介類型



媒介創建完畢就ok,可以測試發送一下看是否能收到。

下邊直接介紹腳本媒介告警方式,后邊的用戶設置及動作設置都是相同的
第二種,腳本告警:
首先,查看作用腳本路徑(可以自定義修改):
grep AlertScriptsPath zabbix_server.conf


到此路徑下編寫郵件告警腳本:
vim /usr/local/zabbix/share/zabbix/alertscripts/sendmail.py


將以下內容復制:(我用的qq郵箱,如用其他郵箱做發件人,請根據注釋修改)
#!/usr/bin/env python # _*_ coding:utf-8 _*_ import smtplib from email.mime.text import MIMEText import sys # configure your own parameters here #下面郵件地址的smtp地址 mail_host = 'smtp.163.com' #用來發郵件的郵箱,在發件人抬頭顯示(不然你的郵件會被當成是垃圾郵件) mail_user = '****@qq.com' # 客戶端授權碼 mail_auth = '******' # 發送方顯示的名稱 send_name = mail_user # 接收方顯示的名稱 recv_name = mail_user def excute(to, title, content): msg = MIMEText(content, 'plain', 'utf-8') msg['From'] = send_name msg['To'] = recv_name msg['Subject'] = title server = smtplib.SMTP(mail_host, 25) server.login(mail_user,mail_auth) server.sendmail(mail_user,to,msg.as_string()) server.quit() if __name__ == '__main__': excute(sys.argv[1], sys.argv[2], sys.argv[3]) # $1 $2 $3
然后賦予執行權限chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.py
3、創建報警媒介及動作



添加完成:


選擇



然后點擊添加按鈕,其他兩個模塊也修改為與以上相同的


默認標題:故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!
消息內容:
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

添加完成

4、將vsftp服務停掉,測試是否可以收到郵件了

此項說明郵件已送達,下一步打開郵箱看一下

ok,收到郵件,nice,再恢復服務看能不能收到郵件


也收到了 ok!

注意:以上在Zabbix頁面配置郵件報警時我的截圖均為選擇的py腳本方式,使用zabbix web的郵件告警方式就直接替換下選擇就ok