zabbix监控之二---zabbix导入模板,配置监控项、触发器及报警媒介

来源:互联网 发布:淘宝钻石展位多少钱 编辑:程序博客网 时间:2024/06/06 07:47

一、模板

模板是监控项、触发器的集合。

1、创建一个模板

添加模板,就像添加主机一样

2、创建监控项

主要的选项为类型、键值和数据刷新间隔,类型选择zabbix客户端或者其他,键值即监控项的表达式,刷新间隔一般默认即可。快速的方式为克隆。

3、创建触发器

主要的选项为严重性和表达式,严重性在报警时可选择是否报警(在配置-用户-报警媒介中选择,见下面的说明),表达式则是触发时的表达式。快速的方式为克隆。

二、配置报警媒介-微信报警

1、申请微信企业号

申请服务号,并添加子应用,添加通讯录成员

2、在server端服务器上操作

mkdir -p /home/zabbix/alertscripts

rz weixin.sh

*******************脚本内容如下*******************************

#!/bin/bash
CropID='xxxxxxxxx'                      ###这里输入微信企业号应用的CropID
Secret='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'              ###这里输入微信企业号的Secret
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(curl -s -G $GURL | awk -F\" '{print $10}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body() {
local int AppID="xxxxxxxxx"           ###这里输入agentdid
local UserID=$1
local PartyID=""
local TagID=""
local Msg=$(echo "$@" | cut -d" " -f3-)
printf '{\n'
printf '\t"touser": "'"@all"\"",\n"
printf '\t"toparty": "'"$PartyID"\"",\n"
printf '\t"totag": "'"$TagID"\"",\n"
printf '\t"msgtype": "text",\n'
printf '\t"agentid": "'" $AppID "\"",\n"
printf '\t"text": {\n'
printf '\t\t"content": "'"$Msg"\""\n"
printf '\t},\n'
printf '\t"safe":"0"\n'
printf '}\n'
}
curl --data-ascii "$(body $1 $2 $3)" $PURL
printf '\n'
********************************************************************************************************

vim /usr/local/zabbix/etc/zabbix_server.conf,找到AlertScripts=,修改为脚本所在路径的地址,例如“AlertScriptsPath=/home/zabbix/alertscripts ”,然后重启zabbix-server

测试脚本可用性,使用./weixin.sh 1 1 test,若输出为{"errcode":0,"errmsg":"ok","invaliduser":""},且微信可以接受到消息,则说明微信企业号及脚本配置成功;

PS:重启zabbix-server的方式

启动:/usr/local/zabbix/sbin/zabbix-server

停止:/etc/init.d/zabbix_server stop

3、在web上配置

(1)管理-报警媒介类型-创建媒体类型

添加weixin报警,并添加三个参数:{ALERT.SENDTO} {ALERT.SUBJECT}{ALERT.MESSAGE},其实对于微信来讲,只有最后一个参数是有用的

(2)配置-动作-创建动作

2-1动作

动作名称:weixin

条件:维护状态 非在 维护

2-2操作

默认接受人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

默认信息:告警主机:{HOSTNAME1}
告警IP:{IPADDRESS}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
时间ID:{EVENT.ID}

操作:选择“发送消息”给用户及用户群组,媒体类型为“微信”;

2-3恢复操作

默认接收人:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

默认信息:告警主机:{HOSTNAME1}
告警IP:{IPADDRESS}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
时间ID:{EVENT.ID}

操作:选择“发送消息”给用户及用户群组,媒体类型为“微信”;

(3)管理-用户-报警媒介

在添加完一个用户之后,若使用的为weixin报警媒介,则不需要在此添加“报警媒介”也能接收到报警信息(相反,邮件报警则必须添加,否则接收不到,原理见下面第2点),因为用户只要关注了微信即能接受到微信发送的消息,因此这里无需再配置。有两点说明如下:

微信报警的原理为:触发器触发报警---动作中触发报警媒介(weixin)----通过“配置-报警媒介”中找到weixin.sh脚本----执行weixin.sh脚本----向微信企业号通讯录中存在的人发送消息;由此可见,不需要在“管理---用户---报警媒介”中添加“报警媒介”了;

但是,若不添加报警媒介,此时去"检测中---触发器"中,点击“触发器---问题”可查看到会显示“动作”为“失败”,报错为“No media defined for user "Zabbix Administrator (Admin)"”,配置之后会消失。

三、配置zabbix-server自检

对zabbix自检的配置其实是在zabbix-server模板中加一个监控项、触发器

添加zbbix客户端类型的监控项,键值为data.status,在zabbix-server端所在的服务器上,vim  /etc/zabbix/zabbix_agentd.conf,配置如下

UnsafeUserParameters=1
UserParameter=date.status,date +%H%M
然后再配置触发器,触发器表达式为{Zabbix server:date.status.prev()}=0930,即每天9点30分触发报警;

然后在配置-动作中新增动作,条件为“维护状态 非在 维护;触发器 = zabbix-server监控模板: check itself”,配置操作的默认信息为“金惠通金融云zabbix自检测,正常!”。

PS:需要把另外一个常规触发动作,增加一个条件为“触发器 <> zabbix-server监控模板: check itself”,即排除这里的自检测报警。

四、其他问题

1、报警两次的问题

每次报警和恢复报警均发送两次消息,经过调试后确认问题,即在“动作”的条件中设置的两个条件应为“和”,默认为“与/或”则会造成两次报警。


原创粉丝点击