1、关闭postfix
#systemctl stop postfix
#systemctl disable postfix
2、安装mailx
# yuminstall -y mailx
3、配置mailx
#vi /etc/mail.rc
setfrom=6025957xx@qq.com smtp=smtp.qq.com
setsmtp-auth-user=6025957xx smtp-auth-password=XXXXX
set smtp-auth=login
# :wq
4、测试
# echo "zabbix test mail" | mail -s "zabbix"1596179xxxx@139.com
# 收到邮件:
5、编写shell脚本
# vi /usr/lib/zabbix/alertscripts/sedmail.sh #脚本目录在zabbix-server.conf 配置文件中定义
#!/bin/sh echo "$3" | mail -s "$2" $1 |
# :wq
# chown zabbix.zabbixsedmail.sh
# chmod +x sedmail.sh
6、Web端配置
管理--报警媒介类型--创建媒体类型
管理--用户--Admin--报警媒介
配置--动作--触发器--创建动作
最后,分享一个 python 告警脚本
# Python2.6.6
# vi /usr/lib/zabbix/alertscripts/alert.py
#!/usr/bin/python # -*- coding: utf-8 -*- """ Zabbix SMTP Alert script from 126. """ import sys import smtplib from email.mime.text import MIMEText
#邮件发送列表,发给哪些人 #mailto_list=["6025957xx@qq.com","159617963xx@139.com"] #设置服务器,用户名、口令以及邮箱的后缀 mail_host="smtp.139.com" mail_user="1596179xxxx" mail_pass="xxxxxx" mail_postfix="139.com"
#定义send_mail函数 def send_mail(to_list,sub,content): ''' to_list:发给谁 sub:主题 content:内容 send_mail("602595xxx@qq.com","sub","content") ''' address=mail_user+"<"+mail_user+"@"+mail_postfix+">" msg = MIMEText(content) msg['Subject'] = sub msg['From'] = address msg['To'] =to_list try: s = smtplib.SMTP() s.connect(mail_host) s.login(mail_user,mail_pass) s.sendmail(address, to_list, msg.as_string()) s.close() return True except Exception, e: print str(e) return False if __name__ == '__main__': send_mail(sys.argv[1], sys.argv[2], sys.argv[3]) |