zoukankan      html  css  js  c++  java
  • zabbix4.2配置邮件+脚本报警:以QQ邮箱为例

    一、邮箱配置:开启smtp服务和授权

      开启smtp选项后,系统会生成一个授权,你需要记住这个授权码,后面需要写入配置文件。

    二、配置管理mailx:

      (1)安装mailx:[root@zabbix-server-center ~]# yum install -y mailx

        (2)请求数字证书(这里以qq邮箱为例):

    [root@zabbix-server-center ~]# mkdir -p /home/zabbix/.certs
    [root@zabbix-server-center ~]# echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /home/zabbix/.certs/qq.crt
    depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
    verify return:1
    depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = GeoTrust RSA CA 2018
    verify return:1
    depth=0 C = CN, ST = Guangdong, L = Shenzhen, O = Tencent Technology (Shenzhen) Company Limited, OU = R&D, CN = pop.qq.com
    verify return:1
    DONE
    

      

    [root@zabbix-server-center zabbix]# certutil -A -n "GeoTrust SSL CA" -t "C,," -d /home/zabbix/.certs -i /home/zabbix/.certs/qq.crt
    [root@zabbix-server-center zabbix]# certutil -A -n "GeoTrust Global CA" -t "C,," -d /home/zabbix/.certs -i /home/zabbix/.certs/qq.crt
    [root@zabbix-server-center zabbix]# cd /home/zabbix/.certs/
    

      

    [root@zabbix-server-center .certs]# certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
    Notice: Trust flag u is set automatically if the private key is present.
    [root@zabbix-server-center .certs]# certutil -L -d /home/zabbix/.certs
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    GeoTrust SSL CA                                              P,P,P
    [root@zabbix-server-center .certs]# chown -R zabbix.zabbix /home/zabbix/
    

      (3)修改/etc/mail.rc文件:[root@zabbix-server-center ~]# vim /etc/mail.rc

    set from=592296813@qq.com  ###用来发送邮件的邮箱账号,这里例子是qq邮箱
    set smtp=smtps://smtp.qq.com:465   ###邮件服务器
    set smtp-auth-user=592296813@qq.com   ###发送邮件的账号
    set smtp-auth-password=XXXXXXXXX   ###这里是qq邮箱系统提供的“授权码”
    set smtp-auth=login      ###默认login即可
    set ssl-verify=ignore       ###ssl认证方式,这里选择忽略
    set nss-config-dir=/home/zabbix/.certs   ###申请的证书所在目录
    

      (4)发送邮件进行测试:

    [root@zabbix-server-center ~]# echo "这里是邮件正文" | mail -s "这里是邮件主题" XXXXXXX@163.com 
    

     ************************************************************************************************************************************************************************

    【可跳过第三步】

    三、编写邮件发送脚本:

      (1)创建shell脚本文件:

    [root@zabbix-server-center zabbix]#vim /usr/lib/zabbix/alertscripts/mailx.sh
    

      (2)修改zabbix_server.conf配置文件中alertscripts路径(也就是存放邮件脚本的路径):

      (3)重启zabbix服务:

    [root@zabbix-server-center /]# systemctl restart zabbix-server.service
    

      (4)设置邮件脚本文件:

    #!/bin/bash
    to=$1
    subject=$2
    body=$3
    FILE=/tmp/mail.tmp
    echo "$body" > $FILE
    dos2unix -k $FILE    # 解决正文变成附件.bin问题,如果没有dos2unix就使用yum安装dos2unix
    mail -s "$subject" "$to" < $FILE

      注意在进行脚本测试# echo "123 zabbix" |mail -s "test mail" xxx@163.com时,记得删除/tmp/mail.tmp文件,否则在后面的报警信息正文会一直显示测试命令时候的信息。

      (5)设置权限:

    [root@zabbix-server-center alertscripts]#chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
    [root@zabbix-server-center alertscripts]#chown zabbix:zabbix /usr/lib/zabbix/alertscripts/mailx.sh

      (6)进入zabbix的web控制台,设置报警类型:

      (7)其余配置和直接设置邮件报警一致。

    ************************************************************************************************************************************************************************

    四、进入zabbix的web控制台:

     

     

     

     操作配置:

    默认标题:
    故障:{TRIGGER.STATUS},服务器:{HOSTNAME1},发生:{TRIGGER.NAME}
    
    消息内容:
    告警主机:{HOST.NAME}
    告警IP:{HOST.IP}
    告警时间:{EVENT.DATE}-{EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE}
    事件ID:{EVENT.ID}

     

     

     

     五、测试邮件报警:

       出现以下信息,表明邮件发送是通的,可以正常发送报警邮件。

    进入接受邮箱,发现已经成功接收到测试邮件:

     模拟测试关闭httpd服务,不久将会收到邮件报警,如下:

    好文:https://blog.whsir.com/post-4385.html

               https://blog.csdn.net/qq_42988210/article/details/92050440

  • 相关阅读:
    django路由——关于路由最后斜杠的问题
    django-admin 汉化
    动态绑定属性、方法 以及 __slots__
    type()、获取对象信息
    String,StringBuffer,StringBuilder三种的性能差异
    线程创建的三种方式的比较(继承Thread,Runnable接口,Callable接口)
    单例设计模式
    用Dockerfile来build原理和过程
    etcd和redis
    win10部署docker和mongo
  • 原文地址:https://www.cnblogs.com/python-wen/p/11405428.html
Copyright © 2011-2022 走看看