Nginx、tomcat访问日志准实时分析统计--goaccess

需求:及时得到线上用户访问日志分析统计结果,以便给开发、测试、运维、运营人员提供决策!

找了各种工具,最终还是觉得goaccess不仅图文并茂,而且速度快,每秒8W 的日志记录解析速度,websocket10秒刷新统计数据,站在巨人肩膀上你也会看得更远…先上图:
这里写图片描述

具体方案如下步骤:
一、linux上安装goaccess(版本 1.1.1,一般安装在nginx所在机器上的/opt目录)
a.先安装依赖包

yum install ncurses-devel
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
tar -zxvf GeoIP.tar.gz
cd GeoIP-1.4.8/
./configure
make && make install

b.安装goaccess
wget http://tar.goaccess.io/goaccess-1.1.1.tar.gz
tar -xzvf goaccess-1.1.1.tar.gz
cd goaccess-1.1.1/
./configure –enable-geoip –enable-utf8
make
make install

二、校对nginx的配置的日志格式(nginx.conf中log_format 使用以下自定义格式)

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '

                    '$status $body_bytes_sent "$http_referer" '

                    '"$http_user_agent" "$http_x_forwarded_for" '

                    '$connection $upstream_addr '

                    '$upstream_response_time $request_time';

修改后重启
nginx -s stop
nginx

三、生成配置文件goaccess_log_conf_nginx.conf
vi /opt/goaccess/goaccess_log_conf_nginx.conf

time-format %T

date-format %d/%b/%Y

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

四、生成统计页面

手工生成当日统计页面:

goaccess -f /opt/nginx/logs/access.log -p /opt/goaccess/goaccess_log_conf_nginx.conf -o /opt/www/day-report.html

生成实时统计页面:

nohup goaccess -f /opt/nginx/logs/access.log -p /opt/goaccess/goaccess_log_conf_nginx.conf -o /opt/www/real-time-yong-report.html --real-time-html --ws-url=report.xxx.com &
检查是否存在进程:  ps -ef|grep goaccess

五、开通对外访问地址
a.安装新的tomcat(假设在/opt/report-tomcat目录) 端口:7891 修改conf/server.xml中的端口,并增加访问目录:

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="false">

        <Context path="/" docBase="/opt/www" />
</Host>

然后增加权限与角色( conf/tomcat-users.xml) :

<role rolename="report"/>
<user username="report" password="reportxxx" roles="report"/>

最后在webapps/ROOT/WEB-INFO/web.xml的web-app中增加:

<security-constraint>
 <web-resource-collection>
     <web-resource-name>
       Restricted Area
     </web-resource-name>
     <url-pattern>/*</url-pattern>
 </web-resource-collection>

 <auth-constraint>
   <role-name>report</role-name>
 </auth-constraint>
</security-constraint>


<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Authenticate yourself</realm-name>
</login-config>



b.确认统计端口:7890、7891对外开放

c.访问页面是否ok
   手工生成当日统计页面:http://report.xxx.com:7891/day-report.html
   实时统计页面:   http://report.xxx.com:7891/real-time-yong-report.html

附:
参考链接:
各种日志格式转换工具:https://github.com/stockrt/nginx2goaccess
goaccess官网:https://goaccess.io

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值