zabbix监控nginx日志的配置详解

能够监控到日志中客户端链接响应时间和响应返回码,监控超过十秒的50.100.1000的个数,监控响应时间的平均数,监控响应返回码的个数,分别是302.404.502
nginx日志格式:

|   log_format upstream2 '$remote_addr $remote_user [$time_local] "$request" $http_host'
        '$body_bytes_sent "$http_referer" "$http_user_agent" $ssl_protocol $ssl_cipher'
        '$request_time [$status] [$upstream_status] [$upstream_response_time] "$upstream_addr"';

是指从Nginx向后端(php-cgi)建立连接开始到接受完数据然后关闭连接为止的时间。

发现脚本:

[root@RACK_Proxy_black_list /etc/zabbix/scripts]# cat nginx-log_analysis.py
#!/usr/bin/env python
# -------------------------------------------------------------------------------

# -------------------------------------------------------------------------------
# Notice
# nginx auto Discovery access.log
# log Auto Discovery
###############################################################################
import os
import json
t=os.popen("""ls /data/wwwlogs |grep 'log$' """)
logs = []
for log in  t.readlines():
        r = os.path.basename(log.strip())
        logs += [{'{#LOGNAME}':r}]
print json.dumps({'data':logs},sort_keys=True,indent=4,separators=(',',':'))
UserParameter写法:

#nginx log
UserParameter=nginx_log,/etc/zabbix/scripts/nginx-log_analysis.py
UserParameter=nginxDY10.1000[*],/usr/bin/tail -1000 /data/wwwlogs/$1 |awk '{a=NF-1}{print $a}' |awk -F'[' '{print $$2}'|awk -F']' '{print $$1}'| awk '{if($$0 > 10) total+=1}END{print total}'
UserParameter=nginxDY10.100[*],/usr/bin/tail -100 /data/wwwlogs/$1 |awk '{a=NF-1}{print $a}' |awk -F'[' '{print $$2}'|awk -F']' '{print $$1}'| awk '{if($$0 > 10) total+=1}END{print total}'
UserParameter=nginxDY10.50[*],/usr/bin/tail -50 /data/wwwlogs/$1 |awk '{a=NF-1}{print $a}' |awk -F'[' '{print $$2}'|awk -F']' '{print $$1}'| awk '{if($$0 > 10) total+=1}END{print total}'
UserParameter=nginxPJ.1000[*],/usr/bin/tail -1000 /data/wwwlogs/$1 |awk '{a=NF-1}{print $a}' |awk -F'[' '{print $$2}'|awk -F']' '{print $$1}'| awk '{sum+=$$0}END{b=sum/1000;print b}'
UserParameter=nginxPJ.100[*],/usr/bin/tail -100 /data/wwwlogs/$1 |awk '{a=NF-1}{print $a}' |awk -F'[' '{print $$2}'|awk -F']' '{print $$1}'| awk '{sum+=$$0}END{b=sum/1000;print b}'
UserParameter=nginxPJ.50[*],/usr/bin/tail -50 /data/wwwlogs/$1 |awk '{a=NF-1}{print $a}' |awk -F'[' '{print $$2}'|awk -F']' '{print $$1}'| awk '{sum+=$$0}END{b=sum/1000;print b}'
UserParameter=nginx100.404[*],/usr/bin/tail -100 /data/wwwlogs/$1 |awk '{a=NF-2}{print $a}'|grep 404|wc -l
UserParameter=nginx50.404[*],/usr/bin/tail -50 /data/wwwlogs/$1 |awk '{a=NF-2}{print $a}'|grep 404|wc -l
UserParameter=nginx100.502[*],/usr/bin/tail -100 /data/wwwlogs/$1 |awk '{a=NF-2}{print $a}'|grep 502|wc -l
UserParameter=nginx100.301[*],/usr/bin/tail -100 /data/wwwlogs/$1 |awk '{a=NF-2}{print $a}'|grep 301|wc -l
UserParameter=nginx50.502[*],/usr/bin/tail -50 /data/wwwlogs/$1 |awk '{a=NF-2}{print $a}'|grep 502|wc -l
UserParameter=nginx50.301[*],/usr/bin/tail -50 /data/wwwlogs/$1 |awk '{a=NF-2}{print $a}'|grep 301|wc -l
UserParameter=nginxmax[*],/usr/bin/tail -50 /data/wwwlogs/$1 |awk '{a=NF-1}{print $a}' |awk -F'[' '{print $$2}'|awk -F']' '{print $$1}'|awk 'BEGIN {max = 0} {if ($$1>max) max=$$1 fi} END {print "Max=",max}'|awk '{print $$2}'
UserParameter=nginxmin[*],/usr/bin/tail -50 /data/wwwlogs/$1 |awk '{a=NF-1}{print $a}' |awk -F'[' '{print $$2}'|awk -F']' '{print $$1}'|awk 'BEGIN {min = 1999999} {if ($$1<min) min=$$1 fi} END {print min}'

时间: 2024-08-02 08:03:13

zabbix监控nginx日志的配置详解的相关文章

Linux服务器下nginx的安全配置详解_nginx

Nginx是一个轻量级,高性能的Web服务器/反向代理和电子邮件 代理(IMAP/POP3),它可以运行在UNIX,GNU/Linux,BSD变种,MAC OS X,Solaris和Microsoft Windows上.根据Netcraft的调查数据显示,互联网上6%的域名都使用了Nginx Web服务器.Nginx是解决C10K问题的服务器之一,与传统服务器不一样,Nginx不依赖于线程处理请求,相反,它使用了一个更具扩展性的事件驱 动(异步)架构.Nginx在很多高流量网站上得到了应用,如W

Nginx配置文件(nginx.conf)配置详解(总结)_nginx

现在经常碰到有新用户问一些很基本的问题,最近整理了一下,Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目.根据硬件调整,通常等于CPU数量或者2倍于CPU. error_log logs/error.log; error_log logs/error.log notice; error_log logs/error.log info; 错误日志:

CentOS6.3下nginx性能优化配置详解(1/2)

一.NGINX优化配置 1.主配置文件优化: # vi /usr/local/nginx/conf/nginx.conf ----------------------------------------- user nginx nginx; worker_processes 8; worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000; error_log  /usr/local/ngi

Nginx SSI指令配置详解_nginx

什么是SSI Server Side Include,通常称为服务器端嵌入,是一种类似于ASP的基于服务器的网页制作技术.大多数(尤其是基于Unix平台)的WEB服务器如Netscape Enterprise Server等均支持SSI命令. 为什么要用SSI 用个例子来说明,一个静态化的页面中,需要嵌入一小块实时变化的内容,.例如首页,大部分的页面内容需要缓存但是用户登录后的个人信息是动态信息,不能缓存.那么如何解决这个"页面部分缓存"问题,利用SSI就可以解决,在首页的静态页面中嵌

linux系统apache日志文件配置详解

Linux系统下apache日志文件设置(每天单独生成一个日志文件) 引言: Apache默认安装下,日志记录只有一个文件,时间久了之后,这个文件会变的很大,管理员要想查看分析日志,光打开日志就要花费很长时间,甚至还会影响服务器运行. 下面教大家设置apache,让服务器每天单独生成一个日志文件,这样管理.分析日志会方便很多. vi /etc/httpd/conf/httpd.conf #编辑文件 #ErrorLog logs/error_log #注释此行,添加下面这行  ErrorLog "

Apache与Nginx登录认证配置详解(可认证目录)

一.Apache认证 认证的类型:Basic Digest摘要 认证方法:A.容器认证:<Directory> --</Directory> B.隐藏文件认证创建.htaccess文件 方法一.容器认证 A.进入配置文件vi /etc/httpd/conf/httpd.conf B.配置:大约在531行附近配置如下:  代码如下 复制代码 <Directory "/var/www/html/mrtg"> AllowOverride None##不允许

nginx技术(2)nginx的配置详解

nginx的配置 1,启动nginx [root@centos6 nginx-1.2.9]# /usr/sbin/nginx -c /etc/nginx/nginx.conf 启动nginx [root@centos6 nginx-1.2.9]# ps -ef|grep nginx 查看进程 root 5479 1 0 04:15 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 548

log4j日志配置详解

文章出处为 http://george5814.github.io/2016/10/09/log4j-config.html 一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置. 1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.W

php-fpm配置详解

 这篇文章主要介绍了php-fpm配置详解,需要的朋友可以参考下 php5.3自带php-fpm   代码如下: /usr/local/php/etc/php-fpm.conf     pid = run/php-fpm.pid pid设置,默认在安装目录中的var/run/php-fpm.pid,建议开启   error_log = log/php-fpm.log 错误日志,默认在安装目录中的var/log/php-fpm.log   log_level = notice 错误级别. 可用级别