利用ngxtop工具对nginx日志实时分析

参考:通过ngxtop实时监控webserver的访问情况

一、部署

  1. 准备:python2.7.3+、SQLite(否则会报错)
  2. 编译安装SQLite
    1. cd /usr/local/src && wget    #下载安装包,最新安装包请参考
    2. tar xf sqlite-autoconf-3230100.tar.gz && cd sqlite-autoconf-3230100  #解压安装包
    3. ./configure --prefix=/usr/local/sqlite && make && make install  #自定义路径编译安装
  3. 重新编译安装python
    1. cd /usr/local/src &&wget   #下载安装包,最新包请参考
    2. tar xf Python-2.7.14.tgz && cd Python-2.7.14  #解压安装
    3. 配置setup.py中sqlite路径
      
      qlite_inc_paths = [ '/usr/include',
      		    '/usr/include/sqlite',
      		    '/usr/include/sqlite3',
      			'/usr/local/include',
      			'/usr/local/include/sqlite',
      			'/usr/local/include/sqlite3',
      			'/usr/local/sqlite/include',
      		    ]
    4. ./configure --prefix=/usr/local/python2.7 && make && make install #自定义路径编译安装
  4. 安装ngxtop
    1. pip install ngxtop
    2. 源码编译安装
      wget https://github.com/lebinh/ngxtop/archive/1c200d51fbae7824a30159714669146d6b214210.zip
      unzip ngxtop-1c200d51fbae7824a30159714669146d6b214210.zip
      cd ngxtop-1c200d51fbae7824a30159714669146d6b214210
      python setup.py install

二、使用

  1. 帮助help
    1. # ngxtop --help
      
      ngxtop - ad-hoc query for nginx access log.
      
      Usage:
      
      ngxtop [options]
      
      ngxtop [options] (print|top|avg|sum) <var> ...
      
      ngxtop info
      
      ngxtop [options] query <query> ...
      
      Options:
      
      -l <file>, --access-log <file>  需要分析的访问日志
      
      -f <format>, --log-format <format>  log_format指令指定的日志格式 [默认: combined]
      
      --no-follow  ngxtop default behavior is to ignore current lines in log
      
      and only watch for new lines as they are written to the access log.
      
      Use this flag to tell ngxtop to process the current content of the access log instead.
      
      -t <seconds>, --interval <seconds>  report interval when running in follow mode [default: 2.0]
      
      -g <var>, --group-by <var>  根据变量分组 [默认: request_path]
      
      -w <var>, --having <expr>  having clause [default: 1]
      
      -o <var>, --order-by <var>  排序 [默认: count]
      
      -n <number>, --limit <number>  显示的条数 [default: 10]
      
      -a <exp> ..., --a <exp> ...  add exp (must be aggregation exp: sum, avg, min, max, etc.) into output
      
      -v, --verbose  更多的输出
      
      -d, --debug  print every line and parsed record
      
      -h, --help  当前帮助信息.
      
      --version  输出版本信息.
      
      高级选项:
      
      -c <file>, --config <file>  运行ngxtop解析nginx配置文件
      
      -i <filter-expression>, --filter <filter-expression>  filter in, records satisfied given expression are processed.
      
      -p <filter-expression>, --pre-filter <filter-expression> in-filter expression to check in pre-parsing phase
  2. 示例:
    1. ngxtop -c ./conf/nginx.conf  -l ./logs/access.log top remote_addr request
    2. 
      

参考:https://www.linuxprobe.com/real-analyse-nginx-ngxtop.html

原文地址:http://blog.51cto.com/nanfeibobo/2096944

时间: 2024-08-04 00:12:45

利用ngxtop工具对nginx日志实时分析的相关文章

利用ngxtop实时监控nginx的访问情况

关于对nginx web server的实时访问的实时监控问题,我很久之前就想实现的,现在虽有nginx自带的status扩展,但那是全局的,无法细分到vhost,并且提供的metric也很少,加之目前是通过cacti每5分钟取nginx status,实时性也不是很好,记得前一阵为maptail兴奋一点,以为能够解决我的问题,可是他只是漂亮的在地图上显示实时用户的ip地理位置信息,没有其他功能了,不过他的思想很重要---"tail -f log",如今的ngxtop其实也是这种思想,

python利用inotify实现把nginx日志实时写入数据库

利用了pyinotify库,我用的是这里的这个,https://github.com/seb-m/pyinotify 其实网上yum上也有pyinotify库可以安装. 写入数据库是pymysql这里做一下记录, 先务pyinotify实现一个tail -f 的功能: #!/opt/python3/bin/python3 # import pyinotify import time import os import sys class ProcessTransientFile(pyinotify

利用Python实现读取Nginx日志,并将需要信息写入到数据库。

#!/usr/bin/env python # coding: utf-8 # Auther:liangkai # Date:2018/6/26 11:26 # License: (C) Copyright 2013-2017, Node Supply Chain Manager Corporation Limited. # Describe: import pymysql import re import datetime # DB variables dbhost = "192.168.18

Nginx 日志分析及性能排查

最近一直在做性能排查,思路就是根据分析Nginx日志,得到响应耗时的url.以及请求时间,再得到这段时间的请求量,并发量,分析是并发的原因,还是本身就比较慢,如果是应用本身的原因,只需要找到对应的代码,然后进行优化就好了 找到的几个原因,基本就是后端sql运行的比较多,单次访问看不出来,但是人比较多的时候就比较慢了,人少的时候20-200毫秒,人多的时候,200-6000毫秒,优化之后基本保持在几十毫秒,优化策略就是减少不必要的sql,加上缓存,基本解决了卡顿的问题,顺便把这次用的一系列命令记录

网站日志实时分析工具GoAccess使用

网站日志实时分析工具GoAccess使用 系统环境CentOS release 5.5 (Final) GoAccess是一款开源的网站日志实时分析工具. GoAccess 的工作方式就是读取和解析 Apache/Nginx/Lighttpd 的访问日志文件 access log,然后以更友好的方式把统计信息显示出来.统计的内容包括:访问概况.动态页面请求.静态页面请求(如图片.样式表.脚本等).访客排名,访客使用的操作系统,访客使用的浏览器,来路域名,404 错误,搜索爬虫,搜索关键词等等.

nginx日志分析工具goaccess

GoAccess 是一款开源的网站日志实时分析工具.GoAccess 的工作方式很容易理解,就是读取和解析 Apache/Nginx/Lighttpd 的访问日志文件 access log,然后以更友好的方式把统计信息显示出来.统计的内容包括:访问概况.动态页面请求.静态页面请求(如图片.样式表.脚本等).访客排名,访客使用的操作系统,访客使用的浏览器,来路域名,404 错误,搜索爬虫,搜索关键词等等. 安装组件 yum -y install glib2 glib2-devel ncurses

利用 ELK系统分析Nginx日志并对数据进行可视化展示

一.写在前面 结合之前写的一篇文章:Centos7 之安装Logstash ELK stack 日志管理系统,上篇文章主要讲了监控软件的作用以及部署方法.而这篇文章介绍的是单独监控nginx 日志分析再进行可视化图形展示,并在用户前端使用nginx 来代理kibana的请求响应,访问权限方面暂时使用HTTP 基本认证加密用户登录.(关于elk权限控制,我所了解的还有一种方式-Shield),等以后有时间了去搞下.下面开始正文吧... 注意:环境默认和上一篇大致一样,默认安装好了E.L.K.3个软

ngxtop nginx 日志实时峰分析

安装ngxtop wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz tar zxvf setuptools-0.6c11.tar.gz cd setuptools-0.6c11 python setup.py build python setup.py install wget https://pypi.python.org/packages/source/p/pip/pip-7.1

烂泥:利用awstats分析nginx日志

昨天把nginx的日志进行了切割,关于如何切割nginx日志,可以查看<烂泥:切割nginx日志>这篇文章. 今天打算分析下nginx日志,要分析nginx日志,我们可以通过shell脚本和第三方软件awstats进行分析,在此我们选择的是通过第三方软件awstats进行分析. 要使用awstats分析nginx日志,我们要安装awstats,而在安装awstats之前,我们需要先来介绍下awstats是什么? 一.awstats是什么 awstats是一个免费非常简洁而且强大有个性的基于Pe