zoukankan      html  css  js  c++  java
  • Zabbix 配置Python邮件告警

    1.首先你应该注册一个163邮箱,用于发信,再注册时开启SMTP/POP3功能,使用加密密码认证.

    2.在Zabbix主机上新建send.py文件,将以下代码复制编辑,设置发件用户、密码.

    [root@localhost ~]# vim send.py
    
    #!/usr/bin/python
    #coding:utf-8
    import smtplib
    from email.mime.text import MIMEText
    import sys
    mail_host = 'smtp.163.com'  
    mail_user = 'smtpwho'
    mail_pass = '密码'
    mail_postfix = '163.com'
    def send_mail(to_list,subject,content):
        me = "Zabbix 监控告警通知"+"<"+mail_user+"@"+mail_postfix+">"
        msg = MIMEText(content, 'plain', 'utf-8')
        msg['Subject'] = subject
        msg['From'] = me
        msg['to'] = to_list
    
        s = smtplib.SMTP()
        s.connect(mail_host)
        s.login(mail_user,mail_pass)
        s.sendmail(me,to_list,msg.as_string())
        s.close()
    
    if __name__ == "__main__":
        send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
    

    3.紧接着我们给脚本相应的权限测试是否能够发信成功,并拷贝到zabbix的默认脚本目中.

    [root@localhost ~]# chmod +x send.py
    [root@localhost ~]# python send.py 1181506874@qq.com zabbix checkok
    [root@localhost ~]# echo $?
    0
    [root@localhost ~]# cp -a send.py /usr/lib/zabbix/alertscripts/
    [root@localhost ~]# chmod 755 -R /usr/lib/zabbix/alertscripts/
    

    4.登录Zabbix主机,查看配置zabbix_server.conf,找到AlertScriptsPath取消注释.

    [root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
    [root@localhost ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
    
    ### Option: AlertScriptsPath
    #       Full path to location of custom alert scripts.
    #       Default depends on compilation options.
    #       To see the default path run command "zabbix_server --help".
    #
    # Mandatory: no
    # Default:
    # AlertScriptsPath=${datadir}/zabbix/alertscripts
    
    AlertScriptsPath=/usr/lib/zabbix/alertscripts     #解除注释,找到配置项
    

    5.点击图形界面,选择管理->报警媒介.
    新增参数:{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE}分别依次加入,然后更新保存.

    6.点击图形界面,选择配置->动作->创建动作,首先创建一个动作.

    7.紧接着点击操作->配置一下故障报警消息格式.

    标题改为:
    故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

    信息改为:
    告警主机:{HOSTNAME1}
    告警地址:{HOST.IP}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息: {TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件 ID:{EVENT.ID}

    8.当我们配置完成一个故障报警后,下面就继续配置一个恢复后的提示.

    标题改为:
    恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

    信息改为:
    告警主机:{HOSTNAME1}
    告警地址:{HOST.IP}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息: {TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件 ID:{EVENT.ID}

    最终点击小add添加选项,继续点击大ADD完成动作增加.

    9.配置告警用户,点击管理->用户->Admin->报警媒介,修改以下内容.

    10.强制关闭虚拟机,测试是否有邮件报警即可.

  • 相关阅读:
    Redis持久化
    Java多线程面试题
    Spring学习总结(1)-注入方式
    SpringCloud常用注解
    Linux安装Redis
    Linux系统安装MySQL
    [转]Java CPU 100% 排查技巧
    ImportError: attempted relative import with no known parent package
    python出现Non-ASCII character 'xe6' in file statistics.py on line 19, but no encoding declared错误
    10个不为人知的 Python 冷知识
  • 原文地址:https://www.cnblogs.com/LyShark/p/10884600.html
Copyright © 2011-2022 走看看