zabbix系列,同之前一样,采自整理的文档。这篇主要讲配置邮件告警的方法。 告警设置在管理中进行配置。
邮件告警
设置邮件告警,首先需先设置报警媒介类型:
可以选择修改使用自带的Email的类型,修改SMTP登陆:
使用自带的Email媒介,邮件头固定为文本格式。
我们也可以自行创建使用脚本通过传参来发送邮件,这样可以定制化告警邮件样式(如使用HTML),在服务端配置文件中设置告警脚本位置:
vim /usr/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/alertscripts
systemctl restart zabbix-server
创建发送邮件脚本:
mkdir -p /usr/local/zabbix/alertscripts vim /usr/local/zabbix/alertscripts/sendmail.py
#!/usr/local/python3/bin/python3 # -*- coding:UTF-8 -*- # =====================Description===================== # [Features]: SMTP电子邮件发送 # [Usage]: ./sendmail.py [email protected] Subject Message # Put it in: /usr/local/zabbix/alertscripts # ===================================================== import sys import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header from email.utils import parseaddr,formataddr # <----------------------------Configure Start---------------------------> # STMP Config SMTP_Host="mail.xxx.com" SMTP_Port=465 SMTP_User="[email protected]" SMTP_Pass="xxxx" # Mail Config Mail_From="Zabbix Monitor<%s>" % SMTP_User Mail_To=sys.argv[1] Mail_Subject=sys.argv[2] Mail_Body=sys.argv[3] # <----------------------------Configure End----------------------------> # 署名格式化函数 def _format_addr(s): name, addr = parseaddr(s) return formataddr((Header(name, 'utf-8').encode(), addr)) # 格式化署名和接收人信息 message=MIMEMultipart() message['From'] = _format_addr(Mail_From) message['To'] = _format_addr(Mail_To) message['Subject'] = Header(Mail_Subject, 'utf-8').encode() message.attach(MIMEText(Mail_Body, 'html', 'utf-8')) # 发送邮件! try: smtpobj = smtplib.SMTP_SSL(SMTP_Host,SMTP_Port) smtpobj.login(SMTP_User, SMTP_Pass) smtpobj.sendmail(Mail_From, Mail_To, message.as_string()) print('邮件发送成功') smtpobj.quit() except smtplib.SMTPException as e: print('邮件发送失败,Case:%s'%e)
./sendmail.py [email protected] 告警标题 '<h1 style="color:blue;">This is a Message</h1>'
添加媒介类型,使用上面的脚本,并向其传参:
然后设置用户的报警媒介,使用上面设置的类型,在“用户资料 — 报警媒介”中进行设置:
配置成功后,再触发告警或恢复就会发送邮件到用户邮箱:
自定义告警内容
上面可以看到,默认的邮件内容展示不太清晰和友好,可以在“配置 — 动作”中进行定义:
默认中即存在一条,就是通过这条配置来发送的邮件信息。
直接创建一条新的:
Tips:可以根据触发条件来创建多个,以达到不同类型告警的发送不同的邮件信息。
在操作中设置发送邮件的内容,可以填写HTML代码。
同样的,恢复操作:
将原有动作禁用:
之后再触发告警,即是新格式的邮件: