前面咱们介绍了zabbix的基本linux和window及SNMP流量的简单监控,咱们知道做为运维人员,须要7x24小时待命,可是咱们不可能时时刻刻都坐在电脑旁边查看监控上的各个主机状态,因此咱们须要配置一个邮件报警,也是邮件报警。html
centos7.4linux
zabbix添加linux和windows监控主机,且工做状态正常。web
首先你得安装发送邮件的工具mailxvim
yum -y install mailx
一、配置mail,这个配置文件应该放到/etc/下面,安装完成后它会有个默认的mail.rc文件,备份它后新建一个相同名字的文件,把下面的内容写入就行。windows
注意:centos
一、这里新开通的126邮箱,除了须要开通SMTP服务外,还须要开通受权码登陆,这里写的再也不是登陆密码,而是受权码。bash
二、多是由于126邮箱的问题,这里确认申请成功后,在别的电脑上尝试登陆是否正常。服务器
三、发送邮箱smtp服务器地址,新开的邮箱地址是smtp.126.com。运维
若是测试中报535错误,请仔细检查以上三条注意事项。工具
set bsdcompat set from=发送邮箱帐号(这里必须写全了,别忘了@后面) set smtp=smtp.163.com #发送邮箱smtp服务器地址(必须开启smtp服务) set smtp-auth-user=发送邮箱帐号(这里只须要写全拼就行。不须要@后面字符) set smtp-auth-password=发送邮箱帐号的密码 set smtp-auth=login #登陆
二、测试(我这里是去163邮箱申请帐户,开启smtp服务,发送给个人我的邮箱)
echo "test" | mail -s 'test linux' 接收邮件的邮箱地址
二、编写邮件发送脚本sendmail.sh(内容以下下)
#cd /usr/local/zabbix/share/zabbix/alertscripts/ #chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh #chmod 755 /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
cat sendmail.sh
#!/bin/bash messages=`echo $3 | tr '\r\n' '\n'` subject=`echo $2 | tr '\r\n' '\n'` echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1
三、配置zabbix_server.conf文件,让zabbix执行sendmail这个可执行文件
vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
四、再次测试
#su zabbix
#/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh 接收邮件的邮箱地址 "test linux" "test"
注意:
切换到zabbix帐户测试报警邮件很重要,这里若是提示如下错误,除了要给/tmp/sendmail.log这个文件执行权限外,还须要给属主属组的权限。这里经过不了,后面也是白瞎。
[zabbix@localhost root]$ /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh leihaidong@gaosiedu.com "test zabbix No1" "test"
/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh: line 4: /tmp/sendmail.log: Permission denied
一、管理 ---- 报警媒介类型 ----- 建立媒介类型。
二、建立媒体类型
{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
三、管理 ---- 用户 ----- 选择admin用户。(本身建立一个用户也能够),这里你要是选择admin的话,你全部的机器只有有故障就会报警,很烦的,由于有些机器是不用邮件报警的话,就尴尬了,因此我这里不选择admin,我这里是新建一个单独的用户组。
如何实现部分邮件报警呢,首先咱们须要建立一个用户群组。
我这里提早建立了一个管理员的组,把管理员加到这个组。
这里须要咱们把邮件报警的组都加到这个组里面,被加到这个组里的组,才会报警。
下面咱们配置管理员这个用户的邮件报警。
管理员的配置。
我这里是已经建立好的报警媒介。
具体内容以下。
咱们看一下会报警的群组。
四、上面咱们建立了用户和组,也建立了回报警的哪些群组。下面咱们来看看,具体的报警和恢复后的邮件内容配置方法。下面这条是我已经建立好的报警。
咱们来看看他的具体写法。首先是名称,添加条件,只须要在触发器名称后面的空白框键入is unreachable for 5 minutes,而后点击添加就行。
。。。。。。。。。。。。。。。。。。。###########################。。。。。。。。。。。。。。。。。。。。。。。。。。
注意,注意,注意:
这个is .....是什么意思呢?就是说只要报警里面出现这几个字母,就会发邮件报警,这里有个坑,就是我icmp邮件报警,由于默认loss是警告,因此它不会显示在仪表盘里面,因此咱们须要看图形,这样很麻烦,因此咱们须要将icmpping loss这个触发器改为通常严重,这样就会出如今仪表盘里面了,可是,可是,可是,它仍是不短信报警,那怎么办呢?咱们ping监控一个地址的时候,报警出如今仪表盘里面的话,会提示你Ping loss is too high on这句话,这个时候,咱们要将这句话加到动做里面。意思是只要仪表盘里面报这句英文的时候,就会触发邮件(短信)报警。
同理,之后你想让出现哪一个报警项,邮件报警的话,就在这里把那个报警信息加到这里就行。
。。。。。。。。。。。。。。。。。。。###########################。。。。。。。。。。。。。。。。。。。。。。。。。。
下面才是最关键的配置,持续时间咱们改为60秒,也就是说1分钟报警一次,至于让它一直60秒间隔报警的话,这里能够把步骤改为1-0,0表明若是故障不恢复,就一直报下去。
默认接收人 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障! 告警主机IP地址:{HOST.CONN} 告警主机:{HOSTNAME1} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
上面咱们只是配置了出现故障时候报警的主题,信息等消息,下面咱们看当故障恢复后发给咱们的邮件。
默认接收人 恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复! 告警主机IP地址:{HOST.CONN} 告警主机:{HOSTNAME1} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
报警邮件
恢复邮件:
注意:
一、咱们上面说的邮件报警,可是须要短信报警的话,就简单了,咱们申请一个移动139邮箱,而后接收报警邮件地址写成移动139邮箱,这样的话有报警手机也能收到短信。
二、只有状态时通常严重(含),才会在仪表盘里面显示为橘黄色,通常状况下短信报警设置报警级别为通常严重(含)。
三、fping须要支持报警级别须要将icmpping loss状态更改成通常严重。
参考地址:https://www.cnblogs.com/zoulongbin/p/6420239.html
注意:
若是你想用某个邮箱给你的邮箱发邮件的话,上面这么搞太费经,好比本文将的用126给咱们的139和我的邮箱发报警短信,没问题。若是你想用不想用126或者163(smtp服务器的邮件帐户)给你发邮件的话,能够考虑下面的方法。
一、你不用如上面说的替换原来/etc/mail.rc文件,默认就行。
二、你不用像第一步那样建立一个"建立媒介类型",直接修改自带的Email这个媒介就行,剩下的方法同样。
三、须要注意的是你须要给报警这件事儿,建立一个用户组合用户,让它对哪些主机群组有权限,都是在用户群组里面设置。