[Zabbix] 邮件告警

来源:互联网 发布:进货卖衣服淘宝 编辑:程序博客网 时间:2024/06/13 00:15

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 


6Web端配置

管理--报警媒介类型--创建媒体类型



管理--用户--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])



原创粉丝点击