Nginx日志分析利器之GoAccess

1、介绍GoAccess 是一个用来统计 Apache Web 服务器的访问日志的工具,可即时生成统计报表,速度非常快

查看的统计信息有:
统计概况,流量消耗等
访客排名
动态Web请求
静态web请求,如图片、样式表、脚本等。
来路域名
404 错误
操作系统
浏览器和搜索引擎
主机、DNS和IP地址
HTTP 响应代码
引荐网站
键盘布局
自定义显示
支持超大日志
2、安装
yum -y install glib2 glib2-devel ncurses ncurses-devel geoIP geoIP-devel
wget http://tar.goaccess.io/goaccess-0.9.3.tar.gz
tar -xzvf goaccess-0.9.3.tar.gz
cd goaccess-0.9.3/
./configure --enable-geoip --enable-utf8
make
make install

configure

 Multiple options can be used to configure GoAccess. For a complete up- to-date list of configure options, run ./configure --help

--enable-debug
    Compile with debugging symbols and turn off compiler optimizations.
--enable-utf8
    Compile with wide character support. Ncursesw is required.
--enable-geoip
    Compile with GeoLocation support. MaxMind‘s GeoIP is required.
--enable-tcb=<memhash|btree>
    Compile with Tokyo Cabinet storage support. memhash will utilize Tokyo Cabinet‘s on-memory hash database. btree will utilize Tokyo Cabinet‘s on-disk B+ Tree database.

--disable-zlib
    Disable zlib compression on B+ Tree database.
--disable-bzip
    Disable bzip2 compression on B+ Tree database.

GoAccess Dependencies

Distro NCurses GLib >= 2.0.0 GeoIP (optional) Tokyo Cabinet (optional)
Ubuntu/Debian libncursesw5-dev libglib2.0-dev libgeoip-dev libtokyocabinet-dev
Fedora/RHEL/CentOS ncurses-devel glib2-devel geoip-devel tokyocabinet-devel
Arch Linux ncurses glib2 geoip compile from source
Gentoo sys-libs/ncurses dev-libs/glib:2 dev-libs/geoip dev-db/tokyocabinet

 3、用法

-f – 日志文件名
-b – 开启流量统计,如果希望加快分析速度不建议使用该参数
-s – 开启HTTP响应代码统计
-a – 开启用户代理统计
-e – 开启指定IP地址统计,默认禁用

例如

1、查看当天有多少个IP访问:
awk ‘{print $1}’ log_file|sort|uniq|wc -l
2、查看某一个页面被访问的次数:
grep “/index.php” log_file | wc -l
3、查看每一个IP访问了多少个页面:
awk ‘{++S[$1]} END {for (a in S) print a,S[a]}’ log_file
4、将每个IP访问的页面数进行从小到大排序:
awk ‘{++S[$1]} END {for (a in S) print S[a],a}’ log_file | sort -n
5、查看某一个IP访问了哪些页面:
grep ^111.111.111.111 log_file| awk ‘{print $1,$7}’
6、去掉搜索引擎统计当天的页面:
awk ‘{print $12,$1}’ log_file | grep ^\”Mozilla | awk ‘{print $2}’ |sort | uniq | wc -l
7、查看2009年6月21日14时这一个小时内有多少IP访问:
awk ‘{print $4,$1}’ log_file | grep 21/Jun/2009:14 | awk ‘{print $2}’| sort | uniq |

goaccess

# goaccess -f /var/log/httpd/access_log

排除统计某来源IP
# goaccess -e 123.123.123.123 -f /var/log/httpd/access_log

检视Host详细资料的时候显示来自该Host的User-Agents资讯
# goaccess -a -f /var/log/httpd/access_log

产生HTML报表(静态报表)
# goaccess -a -f /var/log/httpd/access_log > result.html

只统计来自某IP的记录
# grep ^123.123.123.123 /var/log/httpd/access_log | goaccess

键盘操作

F1或h:帮助
F5 :刷新主界面
q:退出程序/当前窗口/折叠当前模块
o或Enter:展开选中的模块或窗口
0-9以及Shift + 0:将选中的模块或窗口激活
k和j:模块内部移动
c:修改配色
^f和^b:模块中上下滚屏
tab shift+tab:前后切换模块
s:模块内部排序选择
/:在所有模块中搜索(支持正则)
n:找到下个匹配
g和G:跳到第一项/最后一项

生成html

goaccess -f /var/log/apache2/access.log -a > report.html

参考地址

http://www.goaccess.io/

时间: 2024-10-29 08:38:15

Nginx日志分析利器之GoAccess的相关文章

nginx日志分析利器GoAccess(转)

面试的时候一定会被面到的问题是:给出web服务器的访问日志,请写一个脚本来统计访问前10的IP有哪些?访问前10的请求有哪些?当你领略过goaccess之后,你就明白,这些问题,除了考验你的脚本背诵记忆能力以外,唯一的作用只有装A或者装C了. 对于nginx日志分析,有很多工具,衡量好坏的标准大概就是三快:安装快,解析快,上手快.满足这三点的goaccess确实是居家必备良药. 话说这个标题其实有点委屈GoAccess了,它是一个日志分析工具,并不只是为nginx使用的.你也可以用它来分析apa

nginx日志分析利器GoAccess

面试的时候一定会被面到的问题是:给出web服务器的访问日志,请写一个脚本来统计访问前10的IP有哪些?访问前10的请求有哪些?当你领略过goaccess之后,你就明白,这些问题,除了考验你的脚本背诵记忆能力以外,唯一的作用只有装A或者装C了. 对于nginx日志分析,有很多工具,衡量好坏的标准大概就是三快:安装快,解析快,上手快.满足这三点的goaccess确实是居家必备良药. 话说这个标题其实有点委屈GoAccess了,它是一个日志分析工具,并不只是为nginx使用的.你也可以用它来分析apa

ELKR分布式搭建nginx日志分析系统

ELKR分布式搭建nginx日志分析系统 一.名词介绍 1.什么是elk ELK 其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写,Elasticsearch,Logstash 和 Kibana.这三款软件都是开源软件,通常是配合使用. 2.Elasticsearch 2.1.Elasticsearch介绍 Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析.它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引

ELK系列二:kibana操作及nginx日志分析图表创建

本文主要介绍kibana4的基本操作,nginx日志分析饼形图.柱形图.客户端地理位置分布图等相关图表创建. 一.kibana基本操作 1.面板介绍 Settings:创建索引 Discover:查询数据,选择左上角的下拉按钮,可以选择相应的索引查找数据 Visualize:统计图表 Dashboard:显示面板,添加相应的图表在面板中 2.创建索引 索引创建时,按照不同的类型建,Time-field要选择@timestamp不选的话在discover面板中不出现时间过滤控件 二.饼形图创建(分

【分享】Nginx日志分析(上)

在很多时候,我们会非常关注网站的访问量,比如网站的日PV是多少.网站某个功能上线之后点击量是多少,像这些东西都是需要从web容器中的访问日志统计出来的,下面我们看一下如何在nginx中统计网站的访问信息 1.设置Nginx访问日志记录格式 在默认情况下,nginx只是记录相关get信息,像post页面是不记录的,所以下面需要修改nginx.conf,让其访问日志记录post等请求信息,在nginx.conf中server段中加入如下信息 log_format  access  '$remote_

nginx日志分析工具goaccess

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

Goaccess---良心nginx日志分析工具

Goaccess是一个非常良心的开源软件,它的良心之处体现在如下方面: 1)安装简单: 2)操作容易: 3)界面酷炫: 安装Goaccess十分的简单,在centos里直接#yum install goaccess,如果yum源里没有goaccess,可以先安装epel.安装epel的方法如下: wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm wget http://rpms.famil

Nginx 日志分析及性能排查

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

ELK安装配置及nginx日志分析

一.ELK简介1.组成ELK是Elasticsearch.Logstash.Kibana三个开源软件的组合.在实时数据检索和分析场合,三者通常是配合使用,而且又都先后归于 Elastic.co 公司名下,故有此简称.Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等.Logstash是一个完全开源的工具,它可以对你的日志进行收集.分析,并将其存储供以后使用.kibana 是一个开源和