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

DistroNCursesGLib >= 2.0.0GeoIP (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/

posted @ 2015-09-03 23:23  踏雪无痕SS  阅读(891)  评论(0编辑  收藏  举报