Zabbix3.4邮件报警配置详解


一、邮件报警有两种情况:

1Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号,只能发送,不能接收外部邮件。

2,使用一个可以在互联网上正常收发邮件的邮箱账号(例如:@163.com),通过在Zabbix服务端中设置,使其能够发送报警邮件到指定邮箱。

3,在这里我们采用是第二种方式来完成邮件告警任务。经过我的测试发现QQ不能发送邮件会被屏蔽,改用163需要配置客户端授权密码’邮件可以发; 但是问题是邮件有5分钟 左右的延时,后来我测试sina邮件可以正常使用。


二、准备的环境说明:

Hostname

IPADDRE

OS-Releases

Applacation

Zabbix_Server

10.93.58.41

Centos7.5

Zabbix_server

LinuxAgent

10.93.58.66

Centos7.3

Zabbix_agent

LinuxTest

10.93.58.70

Centos6.10

Zabbix_agent


三、实验目的:

1,  Server运行时长超过3个月(180天)触发告警;表达式为:{Templates Uptime Warm:checkuptime.last()}>180

2,  Server运行时磁盘I/O使用率达到阈值告警。

3,  逻辑卷或者是分区使用率达到阈值告警。


四、逻辑关系:

开始之前先你需要整理一下邮件告警的逻辑关系,以便你更好的理解邮件告警的原理;

1,创建主机主机。

2,创建一个用户组如:Linuxgroup将创建主机加入到linuxgroup

3,创建一个模板,将需要监控的主机加入到模板里面去

4,创建模板后,然后选中主机---选中模板-----创建监控项---创建触发器---创建图形

5,配置管理-----报警媒介-----创建一个报警介质----脚本-------参数设置-----

6,管理----用户----选中一个用户(Admin----添加报警媒介----选中类型-----收件人----

7,最后配置动作------操作----关联的用户或者是用户组。

8,这样才可以使你的监控系统生效。


五、正式开始安装:

1,  调整语言为简体中文;你如果认为你的英语OK,此步骤略过;

Zabbix3.4邮件报警配置详解_第1张图片

2,然后你会发现字体显示不全,你还需要调整一下字体:

[root@mediawiki ~]# yum -y install wqy-microhei-fonts
[root@mediawiki ~]#cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

3,在客户端 安装agent端并修改被监控端的zabbix_agent.conf配置文件:

[root@LinuxAgent ~]#rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/6/x86_64/zabbix-release-3.4-1.el6.noarch.rpm
[root@LinuxAgent ~]#yum -y install zabbix-agent
[root@LinuxAgent ~]#grep -v '^$' /etc/zabbix/zabbix_agentd.conf.bak |grep -v '^#'>/etc/zabbix/zabbix_agentd.conf
[root@LinuxAgent ~]#cat /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.93.58.41
ServerActive=10.93.58.41:10050
Hostname=10.93.58.66
UnsafeUserParameters=1
UserParameter=checkuptime,cat /proc/uptime| awk -F. '{run_days=$1 / 86400;print(run_days)}'
Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@LinuxAgent ~]#/etc/init.d/zabbix-agent start
[root@LinuxAgent ~]#netstat -lntup |grep zabbix_agent

4,新建主机,并将主机添加到zabbix_server 和Template OS Linux模板中:(先添加主机,然后关联到模板

Zabbix3.4邮件报警配置详解_第2张图片

下面的Template Uptime Warm 暂时不要管,先添加Template Zabbix Server 和Template OS Linux 即可。

Zabbix3.4邮件报警配置详解_第3张图片

5,新建一个模板Template Uptime Warm:

Zabbix3.4邮件报警配置详解_第4张图片

自定义模板名称和所属组就,接着把关联的ip:10.93.58.66也添加到这个模板组里面。

Zabbix3.4邮件报警配置详解_第5张图片

最后的效果是这样:

template3.jpg

6,创建监控项:

Zabbix3.4邮件报警配置详解_第6张图片

7,创建触发器:为了方便测试告警需要把表达式改为{Templates Uptime Warm:checkuptime.last()}>0.1


Zabbix3.4邮件报警配置详解_第7张图片

8,创建图形:(Template Uptime Warm 主机运行时长告警)

Zabbix3.4邮件报警配置详解_第8张图片

web端设置先到这里需要到server端设置邮件功能:


六、邮件推送:

1,为了不影响邮件收发功能需要停止POSTfix:

[root@zabbix-server ~]# systemctl stop postfix
[root@zabbix-server ~]# systemctl disable postfix

2,安装邮件发送工具mailx:

[root@zabbix-server ~]# yum -y install mailx
[root@zabbix-server ~]# mail -V

3,配置外部邮箱:

[root@zabbix-server ~]#cp /etc/mail.rc /etc/mail.rc.bak 
[root@zabbix-server ~]#grep -v "^$" /etc/mail.rc.bak |grep -v "^#" >/etc/mail.rc
[root@zabbix-server ~]# vim /etc/mail.rc   #在最末端添加
set [email protected]
set smtp=smtp.sina.com
set [email protected]
set smtp-auth-password=xxx
set smtp-auth=login

4,测试你的配置是否正确发一封测试邮件试试:

[root@zabbix-server ~]# echo "zabbix test mail 123" | mail -s "zabbix" [email protected]

5,编写邮件发送脚本:

[root@zabbix-server alertscripts]# cat mail.sh 
#!/bin/bash
FILE=/usr/lib/zabbix/alertscripts/mailtmp.txt
echo "$3" >$FILE
dos2unix -k $FILE
cat $FILE|/bin/mail -s "$2" $1
[root@zabbix-server alertscripts]#touch mailtmp.txt

别忘记了给加上权限:

[root@zabbix-server ~]#chmod 777 /usr/lib/zabbix/alertscripts/mailtmp.txt
[root@zabbix-server ~]#chmod 777 /usr/lib/zabbix/alertscripts/mail.sh
[root@zabbix-server ~]# chown -R zabbix:zabbix /usr/lib/zabbix/alertscripts/
[root@zabbix-server ~]# yum -y install dos2unix

6,在回到web端去添加邮件报警参数:管理-----报警媒介类型--新建报警名称----EmailAlert

Zabbix3.4邮件报警配置详解_第9张图片

7,报警媒介关联的动作:配置-----动作

Zabbix3.4邮件报警配置详解_第10张图片

新建动作名称:Email-Send:

Zabbix3.4邮件报警配置详解_第11张图片

其次是操作:主要添加如下参数:

Zabbix3.4邮件报警配置详解_第12张图片

Zabbix3.4邮件报警配置详解_第13张图片

最后故障排除后的恢复操作:

Zabbix3.4邮件报警配置详解_第14张图片




七、测试模拟故障:

1,找一台IP:10.93.58.66,停止zabbix-agent:

[root@LinuxAgent ~]# /etc/init.d/zabbix-agent stop
Shutting down Zabbix agent:                                [  OK  ]

2,查看web 界面看看有无故障:

Zabbix3.4邮件报警配置详解_第15张图片

3,查看邮箱看看有没有邮件收到;在看看/usr/lib/zabbix/alertscripts/mailtmp.txt

QQ截图20180919111047.jpg

[root@zabbix-server alertscripts]# cat mailtmp.txt
Problem has been resolved at 10:59:12 on 2018.09.19
Problem name: Zabbix agent on 10.93.58.66 is unreachable for 5 minutes
Host: 10.93.58.66
Severity: Average

Original problem ID: 144

4,你也可以这样模拟一下,测试磁盘使用率和分区(逻辑卷)空间不足报警:

[root@LinuxAgent ~]# df -TH 
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/sda3      ext4    20G  3.1G   16G  17% /
tmpfs          tmpfs  518M     0  518M   0% /dev/shm
/dev/sda1      ext4   199M   60M  129M  32% /boot
/dev/sda2      ext4    20G   47M   19G   1% /data

然后使用命令来测试一下:dd if=/dev/zero of=test bs=6M count=1950

[root@LinuxAgent ~]# dd if=/dev/zero of=test bs=6M count=1950

好了,你自己慢慢测试吧!自己算好空间,不要搞爆了。

最后,还有一台10.93.58.70那台机器我是先加到主机然后关联到3个模板中,Agent配置一下就可以自动告警了,只要第一台做好了,以后的就是添加关联模板就好了。

参考文档:https://www.zabbix.com/documentation/3.4/zh/manual/installation/install_from_packages