• 【zabbix告警配置】zabbix服务配置邮件告警


    一、安装邮件服务

      在zabbix_server服务端安装邮件和邮件发送服务,这里可以参考我另一篇邮件服务部署文章:https://www.cnblogs.com/HeiDi-BoKe/p/11883323.html

      邮件服务,zabbix服务已经安装,此处就不做介绍了。

    二、编写邮件发送脚本

      进入zabbix脚本目录下

    # 指定告警脚本路径
    [root@VM_0_10_centos alertscripts]# vi /usr/local/etc/zabbix_server.conf
    # 告警脚本路径
    AlertScriptsPath=/usr/local/share/zabbix/alertscripts
    
    [root@VM_0_10_centos .certs]# cd /usr/local/share/zabbix/alertscripts/
    [root@VM_0_10_centos alertscripts]# pwd
    /usr/local/share/zabbix/alertscripts

      编写告警邮件脚本

    # 先安装需要的包
    [root@VM_0_10_centos alertscripts]# yum -y install dos2unix
    [root@VM_0_10_centos alertscripts]# vi mail.sh
    #!/bin/bash
    #zabbix邮件告警脚本
    #!/bin/bash
    #send mail
    messages=`echo $3 | tr ' ' ' '`
    subject=`echo $2 | tr ' ' ' '`
    echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1
    # 给脚本添加权限
    [root@VM_0_10_centos alertscripts]# chmod 755 mail.sh 
    [root@VM_0_10_centos alertscripts]# chown zabbix:zabbix mail.sh 
    
    # 创建脚本临时文件
    [root@VM_0_10_centos alertscripts]# touch /tmp/mailx.log
    [root@VM_0_10_centos alertscripts]# chown zabbix.zabbix /tmp/mailx.log

    三、Zabbix WEB界面添加邮件告警操作

    3.1.添加邮件发送脚本

    点击管理–>报警媒介类型–>创建媒体类型

    脚本参数:

    {ALERT.SENDTO}
    {ALERT.SUBJECT}
    {ALERT.MESSAGE}

    PS:按图示填写完成后点击添加,就会在报警媒介类型中看到刚才创建的名为AlterEmail类型

    3.2 添加邮件告警介质

    此处以admin用户为例,管理–>用户–>点击Admin 

    点击报警媒介,然后添加邮件接收人 

    3.3 创建动作

    点击配置=》动作=》创建动作

    名称知其意即可,除了操作,其它默认,或者根据自己需求添加 

    PS:此处先不要点击添加,需要将操作配置好之后再点击。不然就会出现提示“无法添加操作”

    添加新的操作:

     恢复的操作同样设置:

     添加完成后动作页面列表就会展示出来 

    此时没有添加相应的触发器,如果系统中任何一台机器出现告警信息,就会通过邮件发送器发送到对应的邮箱中。

    四、邮件发送消息

     4.1 故障模块

    故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
    
    告警主机:{HOSTNAME1}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息: {TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件ID:{EVENT.ID}

    4.2 恢复模块

    恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
    
    告警主机:{HOSTNAME1}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息: {TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件ID:{EVENT.ID}

    五、测试邮件告警

      这里将防火墙开启,报错Zabbix agent on VM_0_10_centos is unreachable for 5 minutes。下面是解决的截图

    问题:动作那里有提示已经发送邮件,但是并未收到qq邮件

    解决:

    1)关闭其它的邮件工具

    # systemctl stop sendmail
    # systemctl stop postfix

    2)确认是否安装mailx,我这里是安装了的

    # yum install mailx -y

    3)查看授权是否开启,把那个获取到授权码,这里我也是已经开启,并获取到了授权码

    可以参考我另一篇博客:https://www.cnblogs.com/HeiDi-BoKe/p/11883323.html

    4)配置/etc/mail.rc,这里我已经配置好,同样参考我上面博客

    5)直接通过脚本发送邮件测试没有问题,通过zabbix发送则报错

    # 直接通过脚本发送邮件
    [root@VM_0_10_centos ~]# cd /usr/local/share/zabbix/alertscripts/
    [root@VM_0_10_centos alertscripts]# pwd
    /usr/local/share/zabbix/alertscripts
    [root@VM_0_10_centos alertscripts]# ./mail.sh qq@qq.com "mail" "zabbix server3"
    
    # 通过zabbix控制面板,记录文件中报错
    [root@VM_0_10_centos alertscripts]# cat /tmp/mailx.log 
    Error initializing NSS: Unknown error -8015.
    . . . message not sent.

    原因:我们这个证书文件是给zabbix用户使用的,如果是在/root/.certs目录下,zabbix用户无法访问

    发送邮件时会出现:Error initializing NSS: Unknown error -8015.

    打开zabbix用户登录shell的登录权限/sbin/nologin=>/bin/bash(修改/etc/passwd文件)

    切换到zabbix用户并确认访问权限

    [root@VM_0_10_centos alertscripts]# su zabbix
    ls: cannot open directory /root/: Permission denied  表示无法访问

    查看/root目录权限

    # 是root目录的权限,文件所有者是root,文件的组也是root
    # 第一组权限:文件所有者有读的权限
    # 第二组权限:文件所有者的组用户有执行和读的权限
    # 第三组权限:不与文件所有者同组的用户有执行的权限,但是没有读的权限。
    # 当然对于root来说是拥有所有权限的,基本权限控制对root无效。
    [root@VM_0_10_centos alertscripts]# ll -d /root
    dr-xr-x---. 6 root root 4096 Jan 30 00:05 /root

    权限测试

    # 有执行权限没有写权限是创建不了文件的,使用zabbix用户登录在该目录下无法创建文件的
    [zabbix@VM_0_10_centos alertscripts]# ll -d /usr/local/etc/
    drwxr-xr-x. 6 root root 4096 Dec  5 09:19 /usr/local/etc/

    增加权限测试

    # 给了权限之后可以创建文件
    [root@VM_0_10_centos alertscripts]# chmod 777 /usr/local/etc/
    [root@VM_0_10_centos alertscripts]# mkdir -p /usr/local/etc/qqmail    
    [root@VM_0_10_centos alertscripts]# ll -d /usr/local/etc/qqmail
    drwxrwxrwx 2 root root 4096 Jan 30 00:43 /usr/local/etc/qqmail
    
    # 将证书目录移动到zabbix用户可以访问到的地方
    [root@VM_0_10_centos alertscripts]# mv /root/.certs/   /usr/local/etc/qqmail

    修改/etc/mail.rc文件证书目录

    # 对方收到邮件时显示的发件人
    set from=qq@qq.com
    # 第三方发邮件的smtp服务器地址
    set smtp=smtps://smtp.qq.com:465
    # 第三方发邮件的用户名
    set smtp-auth-user=qq@qq.com
    # 授权码
    set smtp-auth-password=授权码
    set ssl-verify=ignore
    # 证书所在目录
    set nss-config-dir=/usr/local/etc/qqmail/.certs/
    # SMTP的认证方式
    set smtp-auth=login

    修改passwd文件将zabbix用户的登录权限关闭

    [root@VM_0_10_centos alertscripts]# less /etc/passwd | grep zabbix
    zabbix:x:1000:1000::/home/zabbix:/sbin/nologin

    问题解决。邮件成功发送

  • 相关阅读:
    HDU 4435
    、输入某人出生日期(以字符串方式输入,如198741)使用DateTime和TimeSpan类,(1)计算其人的年龄;(2)计算从现在到其60周岁期间,总共多少天。
    NetBeans IDE 7.0 Release Candidate 2 Now Available
    NetBeans 时事通讯(刊号 # 142 Apr 14, 2011)
    B3log Solo & B3log Symphony/Rhythm
    B3log Solo & B3log Symphony/Rhythm
    GAE SDK 1.4.3 发布了!
    NetBeans IDE 7.0 Release Candidate 2 Now Available
    Guice 3.0 正式版发布
    NetBeans 时事通讯(刊号 # 141 Mar 30, 2011)
  • 原文地址:https://www.cnblogs.com/HeiDi-BoKe/p/11906908.html
Copyright © 2020-2023  润新知