开篇点题

为什么要自定义监控项,因为自带的没有,哈哈

步入正题

要想实现自定义监控,首先需要部署安装agent客户端,可以通过源码安装,也可以通过rpm安装,或yum根据个人喜好进行,只要达到预期的结果就可以:

  1. 确认agent客户端安装完成后 ,进入对应的安装目录下
  2. 将其启动,端口号为10050;
  3. 确认无误后,找准nginx的访问日志位置;
  4. 笔者的agent对应目录为/usr/local/zabbix/etc/zabbix_agentd.conf.d;
  5. [[email protected] zabbix_agentd.conf.d]# tail -1 nginx-item.conf
    UserParameter=nginx_status_code[*],sh /usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx_code.sh “$1”
    别急,脚本马上给你看

[[email protected] ~]# cat /usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx_code.sh

#!/bin/bash
FILE=/usr/local/nginx/logs/access.log
A=$1
nginx_200(){
cat $FILE | awk ‘{print $9}’| sort | uniq -c | grep $A | awk ‘{print $1}’
}
nginx_301(){
cat $FILE | awk ‘{print $9}’| sort | uniq -c | grep $A | awk ‘{print $1}’
}
nginx_302(){
cat $FILE | awk ‘{print $9}’| sort | uniq -c | grep $A | awk ‘{print $1}’
}
nginx_303(){
cat $FILE | awk ‘{print $9}’| sort | uniq -c | grep $A | awk ‘{print $1}’
}
nginx_304(){
cat $FILE | awk ‘{print $9}’| sort | uniq -c | grep $A | awk ‘{print $1}’
}
nginx_400(){
cat $FILE | awk ‘{print $9}’| sort | uniq -c | grep $A | awk ‘{print $1}’
}
nginx_403(){
cat $FILE | awk ‘{print $9}’| sort | uniq -c | grep $A | awk ‘{print $1}’
}
nginx_404(){
cat $FILE | awk ‘{print $9}’| sort | uniq -c | grep $A | awk ‘{print $1}’
}
nginx_500(){
cat $FILE | awk ‘{print $9}’| sort | uniq -c | grep $A | awk ‘{print $1}’
}
case $A in
200)
nginx_200;
;;
301)
nginx_301;
;;
302)
nginx_302;
;;
303)
nginx_303;
;;
304)
nginx_304;
;;
400)
nginx_400;
;;
403)
nginx_403;
;;
404)
nginx_404;
;;
500)
nginx_500;
;;
*)
esac

(采用case语句编写,简单实用)

然后就可以在zabbix中进行自定义了,小编呢就不给大家重复了,相信大家应该都会;

接下来我将图片展现给大家,供大家参考
zabbix自定义监控nginx状态码zabbix自定义监控nginx状态码
好了就是这样大体上就可以实现了,不过要确保脚本有执行权限!!!

相关文章: