Zabbix3.4邮件报警配置详解
一、邮件报警有两种情况:
1,Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是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,此步骤略过;
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模板中:(先添加主机,然后关联到模板)
下面的Template Uptime Warm 暂时不要管,先添加Template Zabbix Server 和Template OS Linux 即可。
5,新建一个模板Template Uptime Warm:
自定义模板名称和所属组就,接着把关联的ip:10.93.58.66也添加到这个模板组里面。
最后的效果是这样:
6,创建监控项:
7,创建触发器:为了方便测试告警需要把表达式改为{Templates Uptime Warm:checkuptime.last()}>0.1
8,创建图形:(Template Uptime Warm :主机运行时长告警)
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
7,报警媒介关联的动作:配置-----动作
新建动作名称:Email-Send:
其次是操作:主要添加如下参数:
最后故障排除后的恢复操作:
七、测试模拟故障:
1,找一台IP:10.93.58.66,停止zabbix-agent:
[root@LinuxAgent ~]# /etc/init.d/zabbix-agent stop Shutting down Zabbix agent: [ OK ]
2,查看web 界面看看有无故障:
3,查看邮箱看看有没有邮件收到;在看看/usr/lib/zabbix/alertscripts/mailtmp.txt
[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