Zabbix能够经过多种方式将告警信息发送到指定人,经常使用的报警方式有邮件、微信、钉钉等。本次博文主要介绍这三种报警方式。html
本篇博文采用网易邮箱的方式实现报警!操做以下:python
zabbix server需进行如下配置:linux
[root@zabbix ~]# yum -y install perl-Net-SSLeay perl-IO-Socket-SSL //安装所需依赖 [root@zabbix ~]# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz //下载sendEmail软件包 [root@zabbix ~]# tar zxf sendEmail-v1.56.tar.gz -C /usr/src [root@zabbix ~]# cd /usr/src/sendEmail-v1.56/ [root@zabbix sendEmail-v1.56]# cp -a sendEmail /usr/local/bin/ [root@zabbix sendEmail-v1.56]# chmod +x /usr/local/bin/sendEmail [root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts [root@zabbix alertscripts]# vim sendEmail.sh //编写测试脚本 #!/bin/bash to=$1 subject=$2 body=$3 /usr/local/bin/sendEmail -o tls=no -f zhen18732036806@163.com -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu zhen18732036806@163.com -xp abcd1234 -m "$body"
邮件内容各项解释:
-f from@163.com :发件人邮箱
-t to@163.com :收件人邮箱
-s smtp.163.com :发件人邮箱的 smtp 服务器
-u "我是邮件主题" :邮件的标题
-o message-content-type=html:邮件内容的格式为html 格式
-o message-charset=utf8:邮件内容编码
-xu from@163.com:发件人邮箱的用户名
-xp abcd1234:发件人邮箱受权码(就是我刚刚生成的那个受权码)
-m "我是邮件内容" :邮件的具体内容web
[root@zabbix alertscripts]# chmod +x sendEmail.sh [root@zabbix alertscripts]# chown zabbix.zabbix sendEmail.sh //赋予脚本权限 [root@zabbix alertscripts]# sh sendEmail.sh zhen18732036806@163.com test 123 Jan 30 16:40:04 zabbix sendEmail[2584]: Email was sent successfully! //出现此消息代表发送成功
收到的邮件以下:json
选择”管理→报警媒介→建立报警媒介“以下:
图中填写的三个参数:vim
{ALERT.SENDTO} //收件人地址 {ALERT.SUBJECT} //主题 {ALERT.MESSAGE} //详细内容
选择“管理→用户→Admin→报警媒介”以下:
建立完成后,进行如下操做:api
添加的代码以下:bash
故障消息<br/> 主机:{HOSTNAME}<br/> IP:{IPADDRESS}<br/> 监控项:{ITEM.NAME}<br/> 触发器:{TRIGGER.NAME}<br/> 键值:{ITEM.KEY}:{ITEM.VALUE}<br/> 时间:{DATE} {TIME}<br/>
[root@agent ~]# systemctl stop zabbix-agent //agent端将agent进程关闭
收到的邮件以下:服务器
[root@agent ~]# systemctl start zabbix-agent //agent端将agent进程启动
收到的邮件以下:
实现邮件报警成功!微信
要想实现企业微信报警,需本身注册一个企业微信,因为其过程过于简单,这里就略过了!
注册完成以后,进行如下操做:
能够向企业微信添加用户,这里就不添加了,以一个用户为例,查看用户的详细信息:
建立应用,如图:
到此为止,企业微信的注册和配置的内容已经介绍完毕了!
要想将告警信息发送到微信,就须要使用一个发送脚本,操做以下:
[root@zabbix ~]# wget https://www.ixdba.net/zabbix/weixin_linux_amd64 [root@zabbix ~]# mv weixin_linux_amd64 /usr/local/zabbix/share/zabbix/alertscripts/weixin //脚本所在路径很是重要 [root@zabbix ~]# chmod 755 /usr/local/zabbix/share/zabbix/alertscripts/weixin [root@zabbix ~]# chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/weixin [root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf //确认如下内容 AlertScriptsPath=usr/local/zabbix/share/zabbix/alertscripts [root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/ [root@zabbix alertscripts]# ./weixin --corpid=ww35e57441212e7560 --corpsecret=t10UEVBtSuW-00CJMYFnz5xxBhTvf6XCz2vcUY3xS8M --msg="test" --user=LvZhenJiang --agentid=1000007 {"errcode":0,"errmsg":"ok","invaliduser":""} //测试微信脚本,出现此信息表示测试成功!
各配置项含义:
--corpid=:企业号里面的企业ID;
--corpsecret=:自建应用中的Secret的ID;
--msg=:发送消息的内容;
--use=:指定用户的名称,查看用户详情时能够查看到;
--agentid=:自建应用中的Agentid;
企业微信收到的消息以下:
如图:
两个变量内容以下(图中的变量有误):
--user={ALERT.SENDTO} --msg={ALERT.MESSAGE}
如图:
如图:
图中添加的代码以下:
默认标题: 服务器:{HOST.NAME}发生:{TRIGGER.NAME}故障 消息内容: 告警主机:{HOST.NAME} 告警地址:{HOST.IP} 监控项目:{ITEM.NAME} 监控取值:{ITEM.LASTVALUE} 告警等级:{TRIGGER.SEVERITY} 当前状态:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警时间:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID}
这样故障时发生的警告信息已经配置完成!接下来配置恢复操做发送的信息,以下:
图中的代码以下:
默认标题: 服务器:{HOST.NAME}:{TRIGGER.NAME}故障已恢复 消息内容: 告警主机:{HOST.NAME} 告警地址:{HOST.IP} 监控项目:{ITEM.NAME} 监控取值:{ITEM.LASTVALUE} 告警等级:{TRIGGER.SEVERITY} 当前状态:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警时间:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID}
至此已经配置完成!细心的朋友可能发现并无建立触发器,由于刚才测试进行邮件测试的时候就已经建立了触发器,它们公用同一个触发器!
[root@agent ~]# systemctl stop zabbix-agent //agent端将agent进程关闭
能够在如下界面查看消息是否发送成功!
企业微信收到的消息以下:
[root@agent ~]# systemctl start zabbix-agent //agent端将agent进程启动
企业微信收到的信息以下:
实现微信报警成功!
钉钉相似于微信,可是偏向于办公方向,能够经过钉钉的群机器人功能,实现将告警信息经过机器人发送到钉钉群中。
群机器人时钉钉群的高级扩展功能。群机器人能够将第三方服务的信息聚合到群聊中,实现自动化的信息同步。
zabbix配置钉钉报警,相比微信,要简单不少,几分钟内便可完成配置,下面详细介绍!
关于钉钉的注册很是简单,这里就不过多的介绍了,注册完成登陆到钉钉后,先发起一个群聊,加入接受钉钉告警信息的人员,以下:
注意:定义关键字时,必须根据实际状况来,也就是消息中包含的内容。建议使用定义关键字的方式!
机器人配置到此结束!
由于脚本中用到了requests,其是python的http客户端库,没有安装的按照如下方式进行安装:
[root@zabbix ~]# yum -y install epel-release python-pip [root@zabbix ~]# pip install --upgrade pip [root@zabbix ~]# pip install requests
[root@zabbix ~]# vim dingding.py //自定编写脚本 #!/usr/bin/python # -*- coding: utf-8 -*- import requests import json import sys import os headers = {'Content-Type': 'application/json;charset=utf-8'} api_url = "https://oapi.dingtalk.com/robot/send?access_token=df27d0f8ed866576f0d213ededcf8bdc6a0a3d24bf1c904fcd58b14b606ec7c6" #更改成本身机器人的网址,也就是刚才复制的内容 def msg(text): json_text= { "msgtype": "text", "text": { "content": text }, } print requests.post(api_url,json.dumps(json_text),headers=headers).content if __name__ == '__main__': text = sys.argv[1] msg(text) 也可经过如下路径获取 [root@zabbix ~]# wget https://www.ixdba.net/zabbix/dingding.zip [root@zabbix ~]# unzip dingding.zip [root@zabbix ~]# mv dingding.py /usr/local/zabbix/share/zabbix/alertscripts/ //保证脚本所在的路径 [root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/ [root@zabbix alertscripts]# chmod 755 dingding.py [root@zabbix alertscripts]# chown zabbix.zabbix dingding.py /usr/local/zabbix/share/zabbix/alertscripts/weixin [root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf //确认如下内容 AlertScriptsPath=usr/local/zabbix/share/zabbix/alertscripts [root@zabbix alertscripts]# ./dingding.py 监控报警 https://oapi.dingtalk.com/robot/send?access_token=df27d0f8ed866576f0d213ededcf8bdc6a0a3d24bf1c904fcd58b14b606ec7c6 {"errcode":0,"errmsg":"ok"}
钉钉收到的信息以下:
钉钉报警脚本配置完成!
‘
如图:
因为照片中的代码与微信测试中的代码一致,这里就不复制出来了,有须要自行复制!
’
[root@agent ~]# systemctl stop zabbix-agent //agent端将agent进程关闭
钉钉收到的信息以下:
[root@agent ~]# systemctl start zabbix-agent //agent端将agent进程开启
钉钉收到的信息以下:
实现钉钉报警完成!
————————本次博文到此为止,感谢阅读——————————