美文网首页
zabbix添加自定义监控项触发器

zabbix添加自定义监控项触发器

作者: jinnzy | 来源:发表于2018-04-17 18:34 被阅读0次

需求

抓取有几项指标需要监控下,提供了页面可以获取到带抓取的数值,根据一些页面获取的值判断大于10W报警,一些页面时间和当前时间相差30分钟报警

编写检测数量脚本

#网站curl -s 格式为{"date":"2018-04-18 14:35:44:109","media":"网络"}
#!/bin/bash
url_num=(
网络入口待抓取任务数量-http://xxxxxx
模板任务待抓取任务数量-http://xxxxxx
论坛普通入口待抓取任务数量-http://xxxxxx
论坛搜索入口待抓取数量-http://xxxxxx
)

URL_NUM(){
  i=$1
  arr=(${i//-/ } #分割变量i,以'-'为单位,在前面我添加了'-'用来分割名称和页面,主要是为了将名称和页面的变量都取出来输出使用
  num=`curl -s "${arr[1]}" |awk -F ':|,' '{print $2}'`
  if [ "$num" -ge 100000 ];then
    wl=`echo "${arr[0]}为$num大于100000报警"`
  else
    wl=`echo ${arr[0]}为$num正常`
  fi
}
case "$1" in
wlrk)
    URL_NUM "${url_num[0]}"
    echo $wl
    ;;
mbrw)
    URL_NUM "${url_num[1]}"
    echo $wl
    ;;
ltpt)
    URL_NUM "${url_num[2]}"
    echo $wl
    ;;
ltss)
    URL_NUM "${url_num[3]}"
    echo $wl
esac
#z这里使用的case是为了让zabbix传递变量使用的,就可以一个脚本多次使用,不用费劲的创建多个脚本
#脚本执行结果
[root@zabbix script]# zabbix_get -s 192.168.0.231 -k script.zhuaqu[mbrw]
模板任务待抓取任务数量为472274大于100000报警

编写检测时间的脚本

# curl -s 结果为{"date":"2018-04-18 14:36:52:720","media":"网络"}
#!/bin/bash
url_time=(
网络-http://xxxx
报刊-http://xxx
论坛-http://xxx
客户端-http://xxx
微博-http://xxx
微信-http://xxx
视频-http://xxx
博客-http://xxx
)

URL_TIME(){
i=$1
arr=(${1//-/ })
zq_DATE=`curl -s ${arr[1]}|awk -F '"'  '{print $4}'|sed -r 's/(.*)\:.../\1/'`
#sed -r 's/(.*)\:.../\1/' 将前面的curl -s结果的最后面的 :720 替换为空 方便后面转换为时间戳 进行时间差计算
now_DATE=`date "+%Y-%m-%d %T"`
zq_DATE1=`date -d "$zq_DATE" +%s`
now_DATE=`date -d "$now_DATE" +%s`
time=$(((now_DATE - zq_DATE1)))
if [ "${arr[0]}" = "报刊" ];then
  if [ $time -ge 7200 ];then
  wl=`echo "${arr[0]}更新时间为"$zq_DATE",超过2小时没有更新请检查"`
  else
  wl=`echo "${arr[0]}更新时间为"$zq_DATE"正常"`
  fi
elif [ $time -ge 1800 ];then
  wl=`echo "${arr[0]}更新时间为"$zq_DATE",超过30分钟没有更新请检查"`
else
  wl=`echo "${arr[0]}更新时间为"$zq_DATE"正常"`
fi

}

case "$1" in
wl)
    URL_TIME "${url_time[0]}"
    echo $wl
    ;;
bk)
    URL_TIME "${url_time[1]}"
    echo $wl
    ;;
lt)
    URL_TIME "${url_time[2]}"
    echo $wl
    ;;
khd)
    URL_TIME "${url_time[3]}"
    echo $wl
    ;;
wb)
    URL_TIME "${url_time[4]}"
    echo $wl
    ;;
wx)
    URL_TIME "${url_time[5]}"
    echo $wl
    ;;
sp)
    URL_TIME "${url_time[6]}"
    echo $wl
    ;;
bk)
    URL_TIME "${url_time[7]}"
    echo $wl
    ;;
esac

配置zabbix客户端

这里上传到zabbix客户端,位置在/etc/zabbix/script/zhuaqu_num.sh 和 zhuaqu_date.sh

vim /etc/zabbix/zabbix_agentd.d/zhuaqu.conf
UserParameter=script.zhuaqu[*],/etc/zabbix/script/zhuaqu_num.sh $1
UserParameter=script.zhuaqu_date[*],/etc/zabbix/script/zhuaqu_date.sh $1
#这里的script.zhuaqu[*]的作用是创建监控项时填写的参数,$1就是传入第一个参数

创建zabbix模板

如下图所示


image.png

创建监控项

健值要手动输入,后面的ltpt就是对应前面脚本的case选项
数据类型为文字,因为传回的值为文本格式,如下面所示添加其他的监控项


image.png

创建触发器

选择如果最后的返回结果包含有报警,则N为1进行报警。关于触发器的名称是使用监控项的返回值作为触发器名称,关于触发器的详细信息可以参考这里

image.png
image.png

相关文章

网友评论

      本文标题:zabbix添加自定义监控项触发器

      本文链接:https://www.haomeiwen.com/subject/zlupkftx.html