zabbix利用python腳本發(fā)送報(bào)警郵件的方法
前言
zabbix是個(gè)非常強(qiáng)大的監(jiān)控工具,可以監(jiān)控linux和windows的服務(wù)器數(shù)據(jù),也可以通過(guò)自定義key來(lái)擴(kuò)展默認(rèn)的監(jiān)控項(xiàng),但是自帶的郵件報(bào)警提供的信息卻不太友善。本文想通過(guò)自定腳本的方式,實(shí)現(xiàn)在報(bào)警郵件的同時(shí)發(fā)送對(duì)應(yīng)的圖像和url連接。
步驟如下:
1、編輯zabbix_server.conf文件,修改AlertScriptsPath參數(shù),該參數(shù)用于指定外部腳本的絕對(duì)路徑。
vim /etc/zabbix/zabbix_server.confAlertScriptsPath=/usr/lib/zabbix/alertscripts
2、上傳新增py腳本至AlertScriptsPath參數(shù)指定的絕對(duì)路徑下,py文件如下:
#! /usr/bin/env python# coding:utf-8"""[INFORMATION]Zabbix Send Email With PythonAUTHOR : WingGitHub : https://github.com/wing324Email : wing324@126.com"""from email import encodersfrom email.header import Headerfrom email.mime.text import MIMETextfrom email.utils import parseaddr, formataddrimport smtplibimport sysdef send_mail(_to_email,_subject,_message):# 定義郵件發(fā)送 smtp_host = "smtp.xxx.xx" from_email = "xxx@xxx.xx" passwd = "xxxxxx" msg = MIMEText(_message,"plain","utf-8") msg["Subject"] = _subject smtp_server = smtplib.SMTP(smtp_host,25) smtp_server.login(from_email,passwd) smtp_server.sendmail(from_email,[_to_email],msg.as_string()) smtp_server.quit()if __name__ == "__main__": send_mail(sys.argv[1],sys.argv[2],sys.argv[3])
3、修改python腳本的權(quán)限
chown -R zabbix:zabbix zabbix_send_email.pychmod 755 zabbix_send_email.py
4、zabbix web端配置
Administration –> Media types –> Create media type
創(chuàng)建一個(gè)測(cè)試用戶Administration –> Users –> Create user
為新創(chuàng)建的user指定media:Administration –> Users –> Create user –> Media
創(chuàng)建action實(shí)現(xiàn)郵件報(bào)警Configuration –> Actions –> Create action
5、zabbix測(cè)試發(fā)送郵件
找一個(gè)test的zabbix_agentd,kill掉,查看是否收到報(bào)警郵件。再將其恢復(fù),查看是否收到恢復(fù)后的郵件。如果一切如預(yù)期所想,那么至此就完成了使用python腳本完成zabbix的報(bào)警郵件了。如果沒(méi)有如預(yù)期所想。
TIPS:
如果你用的zabbix3.0,請(qǐng)注意Administration –> Media types –> Create media type這一步的配置如下:
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。
相關(guān)文章:
