zabbix3.4配置邮件告警
使用zabbix配置邮件告警,当系统资源到达触发器设定阈值,邮件报警
触发器
添加监控项
测试用模板是zabbix自带的Template OS Linux
模板,模板中原先就有监控CPU的监控项,这边测试就用CPU idle time
(获取服务器空闲CPU百分比),如果当前安装的zabbix没有该监控项,就新建一个:
1 | 名称: CPU $2 time |
保存即可
添加触发器
添加完监控项之后,就要为该监控项添加触发器,当达到设定的阈值时,报警。
配置-模板-找到Template OS Linux,点击触发器,创建新触发器。测试想要监控服务器的空闲CPU,当空闲CPU小于50%,时就会告警(为了效果明显,设大点。。)触发器信息如下:
1 | 名称:CPU usr% gt 50% |
其他默认即可
添加图形
为了方便观察,添加一个cpu空闲率的图形:
配置-模板-选择Template OS Linux-图形,创建图形;
1 | 名称:CPU空闲百分比 |
保存,完成。
可以试验下:
1 | echo "scale=5000; 4*a(1)" | bc -l -q |
计算圆周率后5000位,手工在服务器top可以看到cpu使用率到80%以上(小破虚拟机,纯试验用,1C),在监测中-仪表板-问题
可以看见该问题告警。
邮件配置
sendmail
邮件发送需要安装几个小工具(可能本地装系统就已经装完了)
1 | yum -y install sendmail |
mailx
安装邮件发送工具
1 | yum -y install mailx |
配置zabbix服务外部邮箱
编辑文件/etc/mail.rc
(没有就新建),添加以下内容(以163邮箱为例):
1 | set from=xxx@163.com #邮箱账号 |
配置完成,测试一下:
1 | echo "zabbix test..." |mail -s "zabbixssss" xxx@163.com |
进入邮箱,可以看见收到一封测试邮件~
文件发送脚本
zabbix提供了几种方式来发送告警信息,这边选择用脚本,在zabbix_server.conf
文件中有定义脚本保存路径,例如我的测试服务器上的/etc/zabbix_server.conf
中大约在第490行有定义(你也可以注释掉,自己加):AlertScriptsPath=/usr/lib/zabbix/alertscripts
进入/usr/lib/zabbix/alertscripts
文件夹,创建邮件发送脚本sendmail.sh
,内容如下:
1 | #!/bin/bash |
需要注意的是/tmp/sendmail.log
这个日志文件,需要有写和执行的权限,如果不放心,直接chmod 777 /tmp/sendmail.log即可。
可以用脚本测试一下邮件发送:sh sendmail.sh xxxx@163.com "zabbix cesscdssss" "这是内容。。。"
告警设置
报警媒介类型
进入zabbix web,管理-报警媒介类型,点击创建媒体类型,内容如下:
1 | 名称: sendmail |
点击新增。
用户添加媒介
管理-用户,可以使用原来的管理员账号,也可以创建一个用户:
1 | 别名:user |
报警媒介,点击添加:
1 | 类型:sendmail |
点击添加,保存用户。
创建动作
配置-动作,创建动作:
动作:
1 | 名称:自己起,monitor cpu |
操作:
1 | 默认操作步骤持续时间:1h |
恢复操作(系统恢复之后的邮件提示):
1 | 默认标题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复! |
这样就完工了!!!
测试
在服务器,执行:
1 | echo "scale=10000; 4*a(1)" | bc -l -q |
配置的邮箱就会收到邮件告警:
1 | 故障PROBLEM,服务器:Zabbix server发生: CPU user% gt 50故障! |
在报表-动作日志
,可以看见报警日志;
服务器恢复之后,会收到恢复的邮件:
1 | 恢复OK, 服务器:Zabbix server: CPU user% gt 50已恢复! |