一、安装邮件服务

  在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 '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
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

问题解决。邮件成功发送

【zabbix告警配置】zabbix服务配置邮件告警的更多相关文章

  1. zabbix配置自动发现,故障邮件告警

    对网段内的主机进行自动发现,自动加入主机组,自定加入template 创建动作时,类型这里选择discovery 然后将发现的主机加入host group和template: 动作针对的是discov ...

  2. linux下ELK搭建好之后配置sentinl插件,进行邮件告警

    ELK的环境搭建好之后,如何利用收集到的数据进行数据告警呢?在破解ELK之后,它本身提供一个监视器功能,配置偏向编写脚本.有一个更加方便的插件sentiel. 一.下载并安装sentinl插件 htt ...

  3. Zabbix探索:使用msmtp进行邮件告警

    在Nagios时代就已经使用msmtp发送告警了,不过那时候偷懒,使用mutt发送来简化格式. 在Zabbix时代,更多人使用msmtp,所以官方论坛上有个zext_msmtp.sh的脚本,但是不要以 ...

  4. Ubuntu 14.04 配置VNC服务 配置Xfce4桌面

    一.安装配置VNC 1.首先安装VNC apt-get install vnc4server 2.为VNC设置密码 vncpasswd 输入密码,然后再确认一遍,就OK了. 3.启动VNC vncse ...

  5. Prometheus 监控报警系统 AlertManager 之邮件告警

    转载自:https://cloud.tencent.com/developer/article/1486483 文章目录1.Prometheus & AlertManager 介绍2.环境.软 ...

  6. Spring Cloud Alibaba 整合 Nacos 实现服务配置中心

    在之前的文章 <Nacos 本地单机版部署步骤和使用> 中,大家应该了解了 Nacos 是什么?其中 Nacos 提供了动态配置服务功能 一.Nacos 动态配置服务是什么? 官方是这么说 ...

  7. zabbix 邮件告警配置

    使用外部邮箱账号发送报警邮件设置 一.关闭sendmail或者postfix service sendmail stop #关闭 chkconfig sendmail off #禁止开机启动 serv ...

  8. zabbix配置邮件告警

    1.安装邮件服务 yum -y install mailx @qq.com #发邮件测试 2.添加报警媒介 输入接收告警邮件的邮箱 3.配置SMTP服务端 使用本机作为SMTP服务器 4.创建触发器 ...

  9. zabbix监控配置与邮件告警

    添加主机与主机组 进入web页面,在 配置-主机群组,创建主机群组 在 配置-主机,新建主机 在可见的名称中建议填写为类似 主机类型-主机名-IP或域名 的格式,如Web-Hyrule001-192. ...

随机推荐

  1. 12-《Node.js开发指南》-核心模块

    全局对象 Node.js中的全局对象是global 所有全局变量(除了global本身以外)都是global对象的属性 最根本的作用为全局变量的宿主 全局变量 //满足以下条件的是全局变量 a.在最外 ...

  2. CF#603 Div2

    差不多半年没打cf,还是一样的菜:不过也没什么,当时是激情,现在已是兴趣了,开心就好. A Sweet Problem 思维,公式推一下过了 B PIN Codes 队友字符串取余过了,结果今天早上一 ...

  3. html转换成canvas

    使用的工具是:html2canvas html2canvas(this.currentRef) .then(async (canvas) => { let url = canvas.toData ...

  4. 关于AttributeError: 'NoneType' object has no attribute 'send_keys'

    在学web自动化测试时,通过PO模型将特定页面的一些元素及元素操作放在特定页面模块中, 然后提取公共的部分, 如元素等待WebDriverWait, 元素操作send_keys, click, 获取元 ...

  5. 由异常:Repeated column in mapping for entity/should be mapped with insert="false" update="false 引发对jpa关联的思考

    由异常:Repeated column in mapping for entity/should be mapped with insert="false" update=&quo ...

  6. PHP 将远程文件写入到pdf或者word

    /** * 下载 */public function download($ids = null){ //一些条件参数啥的 $data = []; //获取文件 $res = curl_post(url ...

  7. Linux系统:Centos7下搭建ClickHouse列式存储数据库

    本文源码:GitHub·点这里 || GitEE·点这里 一.ClickHouse简介 1.基础简介 Yandex开源的数据分析的数据库,名字叫做ClickHouse,适合流式或批次入库的时序数据.C ...

  8. spark log4j 日志配置

    现在我们介绍spark (streaming) job独立配置的log4j的方法,通过查看官方文档,要为应用主程序(即driver端)或执行程序使(即executor端)自定义log4j配置,需要两步 ...

  9. 根据excle说明文档建表

    在Excel里整理好的表模型数据,可直接导入PowerDesigner.此功能通过PowerDesigner的脚本功能来实现,使用起来也简单.具体操作方法:     打开PowerDesigner,新 ...

  10. SVN 回滚提交的代码

    有的时候,代码提交错了,我们可以通过SVN回滚到指定的版本,然后在提交回滚后的代码,即为撤销提交. 回滚代码 重新提交刚才回滚后的代码