zabbix系列之郵件告警(三)
1)、通過Linux自帶的mail發送告警郵件
2)、通過第三方郵箱發送(如QQ郵箱、163郵箱等)告警郵件
1、修改 zabbx_server.conf 文件,指定腳本路徑,沒有則添加
[root@centos1 ~]# vim /usr/local/zabbix/etc/zabbix_server.conf AlertScriptsPath=/usr/local/zabbix/alertscripts
2、在/usr/local/zabbix/alertscripts 下創建發送郵件腳本
(1)、通過Linux自帶的mail發送郵件的腳本
[root@centos1 alertscripts]# cat mailx.sh #!/bin/bash #to=$1 #subject=$2 #Dbody=$3 #export.UTF-8 echo "$3" | sed s/'\r'//g | mail -s "$2" $1
(2)、通過第三方郵箱(QQ郵箱)發送郵件的腳本
[root@centos1 alertscripts]# cat e-mail.py #!/usr/bin/python #coding: utf-8 import smtplib import sys from email.mime.text import MIMEText _user = "QQ郵箱" _pwd = "QQ郵箱中POP3/SMTP的服務密碼" _to = "發送到哪個郵箱" def send_mail(to,subject,contain): msg = MIMEText(contain) msg["Subject"] = subject msg["From"] = _user msg["To"] = to try: s = smtplib.SMTP_SSL("smtp.qq.com", 465) s.login(_user, _pwd) s.sendmail(_user, to, msg.as_string()) s.quit() with open('/tmp/zabbix.log', 'w') as f: f.write("%s\n%s\n%s\n"%(to,subject,contain)) # print "Success!" except smtplib.SMTPException,e: print "Falied,%s"%e if __name__ == "__main__": send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
註:
記得給腳本執行權限和重啟zabbix相關服務,同時還要先測試一下腳本是否能夠成功發送郵件(這裏就不做測試了)。
3、在zabbix頁面配置(註:)
(1)、創建報警媒介,如圖1所示
圖1
註:
名稱:zabbix_mail (名稱可以隨意指定,後期調用)
類型:腳本
腳本名稱:e-mail.py
添加腳本參數(在 3.0 版本之前默認傳值不用添加):
{ALERT.SENDTO} ####發送地址
{ALERT.SUBJECT} ###主題
{ALERT.MESSAGE} ###發送內容
##這裏只配置第三方郵箱發送郵件,使用Linux自帶的mail也是一樣的配置
(2)、添加用戶操作命令,什麽時候發送郵件,發送給誰,如圖2所示
圖2
註:類型選擇剛剛創建的報警媒介的名稱
(3)、創建動作操作,如圖3和圖4所示,配置恢復操作,如圖5所示
圖3
圖4
圖5
註:默認信息裏的主機和ip地址是自己添加的,因為如果某臺被監控的服務器出現問題了,默認發送的告警信息是沒有主機名和ip地址的,需要我們自己登陸到zabbix監控頁面查看究竟是哪臺服務器出現問題。
(4)、創建觸發器,如圖6所示
這裏以被監控的主機centos2為例,如果主機centos2的登陸用戶數超過3個就發送郵件告警
圖6
(5)、創建圖形,如圖7所示
圖7
(6)、查看監控頁面,如圖8所示
圖8
(7)、測試,當用戶登錄數大於設定值時,會發送告警郵件
查看用戶登錄數,如圖9所示
圖9
查看動作日誌,如圖10所示
圖10
查看郵件,如圖11所示
圖11
(8)、當用戶登陸數減少到設定的值以下時,會發送恢復通知
查看監控頁面,如圖12所示
圖12
註:由於之前忘了重啟zabbix相關服務,導致一開始郵件發送失敗,試了好幾次才發現,所以
查看動作日誌,如圖13所示
圖13
查看郵件,如圖14所示
圖14
至此,zabbix郵件告警就配置完成了。
zabbix系列之郵件告警(三)