1、Zabbix邮件告警
说明:
Zabbix监控服务端、客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常。
实现目的:
在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱
首先在配置文件里修改AlertScriptsPath
[root@cml alertscripts]# vim /usr/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/alertscripts
在qq邮箱里面生成一个授权码作为给脚本授权帮你发邮件使用
编写一个发邮件的Python脚本
[root@cml alertscripts]# cd /usr/local/zabbix/alertscripts/
[root@cml alertscripts]# ls
linkedsee.sh weixin.py zabbix_mail.py
[root@cml alertscripts]# cat zabbix_mail.py
#!/usr/bin/python
#coding: utf-8
import smtplib
import sys
from email.mime.text import MIMEText
_user = "406552227@qq.com" ##填写作为邮件报警发送端
_pwd = "zpys" ###填写刚刚邮箱里面生成的授权码
#_to = "13926109782@163.com"
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])
[root@cml alertscripts]#
在zabbix配置 管理-->报警媒介类型-->创建报警媒介类型(类型需要选择脚本,脚本名称与编写的脚本名字一样,下面三个参数代表发送给那个邮件、标题是什么、内容是什么。 )
在用户配置报警媒介 需要填写收件人的邮箱和类型
然后配置-->动作-->创建动作--操作-->恢复操作
触发报警:
解决报警后
成功演示了服务器报警后自动发生邮件给我的邮箱