创新路
我们一直在努力

[Learn.Practice.Discovery]Vol.5 Linux下面日志的“正确打开方式”-goaccess

序(ji)言(tang)部分

1111.gif

北风卷地白草折,胡天八月即飞雪。 
忽如一夜春风来,千树万树梨花开。 <---
散入珠帘湿罗幕,狐裘不暖锦衾薄。 
将军角弓不得控,都护铁衣冷难着。 
瀚海阑干百丈冰,愁云惨淡万里凝。 
中军置酒饮归客,胡琴琵琶与羌笛。 
纷纷暮雪下辕门,风掣红旗冻不翻。
            ——  岑参《白雪歌送武判官归京》

  古人去形容一件“惊喜”的事情,总是用词恰到好处。总是给了人很多感悟和灵感。转眼间又到了5月,还没有感受到春天的气味,却总是在不断收凉被子、洗凉被、盖凉被…依次循环。春、夏、秋、冬四季的变化给人们映入眼帘带来了不同的一个感官体验~当夏日来临,鸟蝉高鸣,烈日当头透过树荫射到你的脸上~何不止步向前。深呼一口气,伸个懒腰~YA~HAHA~世界上如此的"美好","我"却如此"堕落"…

进入正题

  最近,在处理一个问题的时候偶然接触到了goaccess。感觉还不错。不敢独享~把我了解的分享给大家。

首先,简单介绍下这个是个“什么鬼”!作者为了更官(tou)方(lan)化的介绍下这个是什么东西。就进行了一个截图。

1111111.png

上面说的很清楚了,我不打字啰嗦了。什么?不懂英文…找“度娘”和“谷哥”去。你这样对得起你小学“体育”老师吗?(没错,小学英语是体育老师教的)

如何安装?

首先需要安装依赖包:
$ yum install ncurses-devel # 必选

$ wget  # 这个依赖视情况安装(可选) 
$ tar -zxvf GeoIP.tar.gz
$ cd GeoIP-1.4.8/
$ ./configure
$ make && make install

开始安装goaccess
$ wget http://tar.goaccess.io/goaccess-1.2.tar.gz
$ tar -xzvf goaccess-1.2.tar.gz
$ cd goaccess-1.2/
$ ./configure --enable-utf8 --enable-geoip=legacy
$ make
# make install


安装完毕后查看下默认家目录下面是否有了这个文件~/.goaccessrc.并确认下内容

image.png

下面为模板供参考:

time-format %T

date-format %d/%b/%Y

log_format %h - %^ [%d:%t %^] "%r" %s %b "%R" "%u" "%^" %^ %^ %^ %T

格式里面代表的意义参考:

https://goaccess.io/man#custom-log

除上面那个路径以外,还可以再安装的默认路径下修改时间格式参数:

/usr/local/etc/goaccess.conf 

image.png


确认下你的nginx.conf下面的日志格式是不是使用的默认,还是有所调整。


image.png

以上确认无误后,重启Nginx(如果没有配置nginx启动脚本的使用 nginx -s stop && nginx)

/etc/init.d/nginx stop

/etc/init.d/nginx start

goaccess常用指令介绍

goaccess -V

image.png

-f 指定日志文件路径

-p 指定配置格式文件路径

-o -o –output-format=csv|json|html 输出为csv或者json、html形式

-a 在host模块是不是能点击IP出现这个IP的user-agentlist.(例如浏览器版本等信息)

-c 是否显示log和format配置对话窗口。

-d 在HTML输出或者json输出中开启IP 解析

 -e –exclude-ip=<IP> 排除一个或多个 IPv4/6. Allows IP

                                    ranges e.g. 192.168.0.1-192.168.0.10

-m 启用鼠标双击支持

进入控制台

通过下面的命令进入了控制台

image.png

因为,我们读取的是nginx日志。所以,使用下面的格式风格。(格式风格根据自己情况而定,比如IIS使用的是W3C)

image.png

个人觉得主控台已经能看到很多信息了

image.png


控制台的一些基本操作: (如果前面使用了-m 参数还可以使用鼠标双击)

Enter 进入当前模块,打开折叠部分

F1是打开帮助文档

F5是刷新当前窗口

q是退出当前窗口,直到退出程序

o是进入选择条目

0-9 是选择模块

tab和shift+tab是在前后模块之前切换

j和k是在模块内部条目切换

s是模块内部条目排序方式

生成文件

goaccess -f <指定日志文件读取路径> -p <指定格式文件路径>  -o /输出文件路径/xxx.html -a

会产生一个xxx.html(放到你网站目录下面,既可以访问)

PS:这里也可以生成csv或者json,根据自己实际情况所需而定。这里为了演示web,生成了html

image.png

这个时候访问的结果,只是一次性生成的结果。如何让这个数据持续【实时】反馈呢?

用到下面2个参数:

–real-time-html  实时输出               – Enable real-time HTML output.(必选)

–port=<port>   指定使用的端口(可选)

–ws-url=<url>  绑定一个域名               – URL to which the WebSocket server responds.(可选)

image.png

输入完命令后会在这里hold住,ctrl+z    bg  即可。当然,如果你关闭了shell窗口也会中止。可以尝试加上nohup(不过,我自己测试nohup并未成功)

image.png

提示,找不到我指定-f 参数后面的log路径。很奇怪,如果有小伙伴成功了记得给我分享下。

image.png

  通过,这个信息就可以实时观察你网站的访问情况的一些统计信息。对需要实时进行监控的重要网站,提供了一个比较直观的数据日志画图的效果。不过却不能帮助寻找历史日志事件,只能起到辅助分析作用。

小结

  所有再学习的路上都会有惊喜发生,不要把每一个问题。真的的当成一种问题!把它当成一种挑战,一种成长学习的机会!

尝试去给你提出合理、不合理要求人给予感激。毕竟没有他们的“折磨”就不会有你的涅槃。生命不息,学习不止。加油!

参考资料:

https://goaccess.io/

http://dev.maxmind.com/geoip/

http://blog.csdn.net/yown/article/details/56027112

http://www.linuxidc.com/Linux/2016-07/133623.htm

http://www.cnblogs.com/yjf512/p/3640346.html

http://www.tianfeiyu.com/?p=585

未经允许不得转载:天府数据港官方信息博客 » [Learn.Practice.Discovery]Vol.5 Linux下面日志的“正确打开方式”-goaccess

客官点个赞呗! (1)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机