我是靠谱客的博主 高兴小甜瓜,最近开发中收集的这篇文章主要介绍zabbix监控nginx日志的状态码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

zabbix在工作时根据agent的工作特点分为主动模式和被动模式,实际上一般开启兼容模式。在items多了后,有一些速度慢的items如果不采用主动模式,会把server端拖死,而zabbix_sender其实是一种变相的主动模式,配合计划任务,主动将k/v上传到zabbix,现将nginx日志zabbix_sender实现状态码的监控抛砖引玉做下介绍。

一、agent端编写脚本和计划任务

需求是监控nginx日志的200、400、401、403、404、499、502、503、504状态码,按分钟进行数量统计上报。编写脚本入下:

#!/bin/bash
#writer:gaolixu
log_dir=/data1/ms/comos/logs/access.log #log目录
log_tmp_dir=/tmp/last_min_log #过滤出最后1分钟的日志做临时存放
senderfile=/tmp/sender_file #用zabbix_sender发送的k/v文件
Hostname=`hostname` #获取主机名,与server端主机名会有验证
last_min=`date -d “1 minute ago” ‘+%Y:%H:%M’` #nginx里的时间,1分钟之前
tail -60000 ${log_dir} | grep “${last_min}” > ${log_tmp_dir} #qps在500到800之间,增加性能,tail结尾60000条取出最后一分钟日志。
cat ${log_tmp_dir} |awk -F’"’ ‘{print $3}’ |awk ‘{print $1}’ |sort |uniq -c > /tmp/stat #将状态码去重统计
$senderfile #清零zabbix_sender的发送文件
c_200=`awk ‘$2==200{print $1}’ /tmp/stat`;[ -z $c_200 ] && c_200=0 #取出数量,如果没有此状态码,数量初始化为0
c_400=`awk ‘$2==400{print $1}’ /tmp/stat`;[ -z $c_400 ] && c_400=0
c_401=`awk ‘$2==401{print $1}’ /tmp/stat`;[ -z $c_401 ] && c_401=0
c_403=`awk ‘$2==403{print $1}’ /tmp/stat`;[ -z $c_403 ] && c_403=0
c_404=`awk ‘$2==404{print $1}’ /tmp/stat`;[ -z $c_404 ] && c_404=0
c_499=`awk ‘$2==499{print $1}’ /tmp/stat`;[ -z $c_499 ] && c_499=0
c_502=`awk ‘$2==502{print $1}’ /tmp/stat`;[ -z $c_502 ] && c_502=0
c_503=`awk ‘$2==503{print $1}’ /tmp/stat`;[ -z $c_503 ] && c_503=0
c_504=`awk ‘$2==504{print $1}’ /tmp/stat`;[ -z $c_504 ] && c_504=0
echo “$Hostname nginx_stat200 $c_200” >> $senderfile #将k/v写入zabbix_sender的发送文件,注意写法,主机名、key、value
echo “$Hostname nginx_stat400 $c_400” >> $senderfile
echo “$Hostname nginx_stat401 $c_401” >> $senderfile
echo “$Hostname nginx_stat403 $c_403” >> $senderfile
echo “$Hostname nginx_stat404 $c_404” >> $senderfile
echo “$Hostname nginx_stat499 $c_499” >> $senderfile
echo “$Hostname nginx_stat502 $c_502” >> $senderfile
echo “$Hostname nginx_stat503 $c_503” >> $senderfile
echo “$Hostname nginx_stat504 $c_504” >> $senderfile
/usr/local/zabbix/bin/zabbix_sender -c /usr/local/zabbix/etc/zabbix_agentd.conf -i $senderfile #最终的向server发送

添加到计划任务:
*/1 * * * * /usr/local/zabbix/script/nginxlog.sh 2>&1

二、配置server端和grafana进行绘图

配置项如下,将type设置为Zabbix trapper

在这里插入图片描述

设置完毕后执行下脚本,结果如下:
在这里插入图片描述

最后将展示放在grafana里,效果如下:

wKioL1jAy16Tu8TvAAB7sNyly-w932.png
转https://blog.51cto.com/benpaozhe/1904654

最后

以上就是高兴小甜瓜为你收集整理的zabbix监控nginx日志的状态码的全部内容,希望文章能够帮你解决zabbix监控nginx日志的状态码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部