用goaccess 分析 jboss 的access 日志

GoAccess是一款开源的网站日志实时分析工具。

GoAccess 的工作方式就是读取和解析 Apache/Nginx/Lighttpd/jboss 的访问日志文件 access

log,然后以更友好的方式把统计信息显示出来。统计的内容包括:访问概况、动态页面请求、静态页面请求(如图片、样式表、脚本等)、访客排名,访客使用

的操作系统,访客使用的浏览器,来路域名,404 错误,搜索爬虫,搜索关键词等等。

GoAccess 的性能比较不错,据官方测试,在一台 Intel Xeon CPU @ 2.40ghz CPU, 2GB 内存的机器上处理日志文件的速度是97000行每秒。

下面采用源代码安装的方式:

在 CentOS 上安装编译 GoAccess 时需要的工具和库:

# yum groupinstall 'Development Tools'

# yum install glib2 glib2-devel ncurses-devel

另外在 Ubuntu 12.04 上安装编译 GoAccess 时需要的工具和库:

$ sudo apt-get install build-essential

$ sudo apt-get install libglib2.0-dev libncursesw5-dev

下载 GoAccess 的源代码、编译和安装:

$ wget http://downloads.sourceforge.net/project/goaccess/0.7.1/goaccess-0.7.1.tar.gz

$ tar -xzvf goaccess-0.7.1.tar.gz

$ cd goaccess-0.7.1/

$ ./configure --enable-utf8

$ make

$ sudo make install

运行 GoAccess,选择 NCSA Combined Log Format:

$ goaccess -f /usr/local/nginx/logs/access.log


由于工作需要,服务器用的是JBOSS,所以出现不匹配的问题

JBOSS access 打开方法:

在默认的情况下,JBoss7.1是没有开启access_log的,如果要开启这项功能,就需要修改$JBOSS_HOME\standalone\configuration\standalone.xml这个文件

<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">

<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>

<virtual-server name="default-host" enable-welcome-root="true">

<alias name="localhost"/>

<alias name="example.com"/>

<access-log pattern="%v %a %t %r %s %b %u %m" rotate="true">

<directory path="."/>

</access-log>

</virtual-server>

</subsystem>

添加以上黑体部分就可以打开jboss的acess日志功能。其中 pattern="%v %a %t %r %s %b %u %m"用于日志记录。

参数内容如下:

%a    远端IP

%A 本地IP

%b    发送的字节数,不包含HTTP头,如果为0,使用”-”

%B    发送的字节数,不包含HTTP头

%h    远端主机名(如果resolveHosts=false),远端的IP

%H    请求协议

%l    从identd返回的远端逻辑用户名,总是返回’-’

%m    请求的方法

%p    收到请求的本地端口号

%q    查询字符串

%r    请求的第一行

%s 响应的状态码

%S    用户的sessionID

%t    日志和时间,使用通常的log格式

%u    认证以后的远端用户(如果存在的话,否则为’-’)

%U    请求的URI路径

%v    本地服务器的名称

%D 处理请求的时间,以毫秒为单位

%T    处理请求的时间,以秒为单位


由于goaccess 适用于Apache/Nginx  对于JBOSS的日志支持不是特别好 下面是apche参数与jboss参数比较

%a 远端IP地址                                                                                    %a    远端IP 

%A 本机IP地址                                                                                    %A 本地IP

%B 除HTTP头以外传送的字节数                                                                      %B    发送的字节数,不包含HTTP头

%b 以CLF格式显示的除HTTP头以外传送的字节数,也就是当没有字节传送时显示’-'而不是0。                %b    发送的字节数,不包含HTTP头,如果为0,使用”-”

%{Foobar}C 在请求中传送给服务端的cookieFoobar的内容。

%D 服务器处理本请求所用时间,以微为单位。                                                        %D 处理请求的时间,以毫秒为单位

%{FOOBAR}e 环境变量FOOBAR的值

%f 文件名

%h 远端主机                                                                                    %h    远端主机名(如果resolveHosts=false),远端的IP

%H 请求使用的协议                                                                                %H    请求协议

%{Foobar}i 发送到服务器的请求头Foobar:的内容。

%l 远端登录名(由identd而来,如果支持的话),除非IdentityCheck设为"On",否则将得到一个"-"。        %l    从identd返回的远端逻辑用户名,总是返回’-’

%m 请求的方法                                                                                      %m    请求的方法

%{Foobar}n 来自另一个模块的注解Foobar的内容。

%{Foobar}o 应答头Foobar:的内容。

%p 服务器服务于该请求的标准端口。                                                              %p    收到请求的本地端口号

%P 为本请求提供服务的子进程的PID。

%{format}P 服务于该请求的PID或TID(线程ID),format的取值范围为:

%q 查询字符串(若存在则由一个"?"引导,否则返回空串)                                                  %q    查询字符串

%r 请求的第一行                                                                                     %r    请求的第一行

%s 状态。对于内部重定向的请求,这个状态指的是原始请求的状态,—%>s则指的是最后请求的状态。          %s 响应的状态码

%t 时间,用普通日志时间格式(标准英语格式)                                                        %t    日志和时间,使用通常的log格式

%{format}t 时间,用strftime(3)指定的格式表示的时间。(默认情况下按本地化格式)

%T 处理完请求所花时间,以秒为单位。                                                              %T    处理请求的时间,以秒为单位

%u 远程用户名(根据验证信息而来;如果返回status(%s)为401,可能是假的)                            %u    认证以后的远端用户(如果存在的话,否则为’-’)

%U 请求的URL路径,不包含查询字符串。                                                              %U    请求的URI路径

%v 对该请求提供服务的标准ServerName。                                                            %v    本地服务器的名称

%V 根据UseCanonicalName指令设定的服务器名称。

%X 请求完成时的连接状态:X= 连接在应答完成前中断。

+= 应答传送完后继续保持连接。

-= 应答传送完后关闭连接。

(在1.3以后的版本中,这个指令是%c,但这样就和过去的SSL语法:%{var}c冲突了)

%I 接收的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用mod_logio模块。

%O 发送的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用mod_logio模块

%S    用户的sessionID

goaccess使用方法

1、goaccess -f  access.log

2、goaccess -f access.log -p ~/.goaccess  -a > report.html  用于输出html报表。

其中.goaccess 为配置文件 内容如下:

time-format %T

date-format %d/%b/%Y

log-format %v %h [%d:%t %^] %m %U %H %^ %s %b %^ %D

其中log-format 中%d 为 date-format   %t 为time-format

%^为忽略字段,在goaccess参数中 %r 为 %m %U %H 合集。

所以此处%r 用 %m %U %H 代替。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,591评论 18 139
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,130评论 2 34
  • 下面是一个典型的apache访问日志: 216.35.116.91 - - [19/Aug/2000:14:47:...
    桩i阅读 1,541评论 0 0
  • ​摘自:https://help.aliyun.com/document_detail/29341.html?sp...
    许你一枝花阅读 1,916评论 0 4
  • 新虎日精进324(1.5): 1.生产实习半天 2.读《自在》完结 3.读《勇敢说不》50页 4.读英语30分钟 ...
    新虎NewTiger阅读 252评论 0 0