用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这个文件

添加以上黑体部分就可以打开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 代替。

你可能感兴趣的:(用goaccess 分析 jboss 的access 日志)