ITPub博客

首页 > 应用开发 > Java > GoAccess 开源日志轻工具部署与分析

GoAccess 开源日志轻工具部署与分析

原创 Java 作者:jaymarco 时间:2020-09-28 21:38:19 0 删除 编辑

1 前言

今天给大家介绍一款开源轻量化的日志分析神器,名叫 GoAccess。它是一款基本终端的快速日志分析工具,核心功能是能够实时快速分析和查看 Web 服务器统计信息,最主要是针对中间件 ACCESS 访问日志来分析系统的行为。而无需使用您的浏览器,但它能够生成完整的,独立的实时 HTML 报告(非常适合分析,监控和数据可视化)以及 a JSON 和 CSV 报告。这款工具能对大日志量文件进行分析,降低工程师分析日志的难度,提升问题定位效率。


2 GoAccess 介绍

GoAccess 是一个开源的实时网络日志分析器和交互式查看器,可以在Linux/Unix 系统中的终端或通过浏览器运行。它为需要动态可视化服务器报告的系统管理员提供快速且有价值的 HTTP 统计信息。


3 GoAccess 功能

 快速, 实时, 毫秒/秒级更新, C 语言编写

 仅依赖 ncurses 模块

 几乎支持所有 Web 日志 格式 (Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, 等等)

 简单设置即可支持自定义格式日志

 漂亮的终端以及 bootstrap 风格控制面板 (易于将 GoAccess 调整为您自己的颜色搭配和风格)

 支持 Valgrind 测试


4 GoAccess 指标

GoAccess 解析指定的 Web 日志文件并将统计结果输出到 X 终端。功能如下:

5 GoAccess工具安装

5.1 软件安装

1、     部署依赖包

GoAccess 软件安装需要依赖一些软件包,需要提前将下面的软件包安装好。

yum install   glib2 glib2-devel GeoIP-devel    ncurses-devel zlib zlib-devel

yum install gcc   –y

yum -y install   GeoIP-update

2、     源码安装GoAccess

这里使用源码安装 GoAccess 软件,软件官方下载地址 https://goaccess.io/download ,这里以 1.3 版本为例来安装。

wget   https://tar.goaccess.io/goaccess-1.3.tar.gz

tar xzvf   goaccess-1.3.tar.gz

cd goaccess-1.3/

./configure --enable-utf8 --enable-geoip=legacy

make

make install

3、     GoAccess 配置变更

修改配置 /usr/local/etc/goaccess/goaccess.conf 文件

并将以下配置项的注释符去掉

date-format   %d/%b/%Y

time-format   %H:%M:%S

html-report-title

date-spec hr

 

面板使用如下几个面板,将将以下几个面板的注释符去掉

ignore-panel   REQUESTS_STATIC

ignore-panel   NOT_FOUND

ignore-panel OS

ignore-panel   VIRTUAL_HOSTS

ignore-panel   KEYPHRASES

ignore-panel   GEO_LOCATION

 

在配置文件中新增日志模式标准

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

 

以上GoAccess算是安装完成……………………………………………..

5.2 应用日志标准化配置

为了使用 GOACCESS 工具监控应用的性能情况,对使用的应用 nginx tomcat 中间件服务的日志输出进行标准化设置。

# 修改 /etc/nginx/nginx.conf 文件的日志存储格式

log_format  main    '$remote_addr - $remote_user [$time_local]   requesthost:"$http_host"; "$request"   requesttime:"$request_time"; '

        '$status $body_bytes_sent   "$http_referer" - $request_body'                     

        '"$http_user_agent"   "$http_x_forwarded_for"';

然后重启 nginx 服务

最终日志输出格式标准内容如下                                     

5.3    GoAccess 实时更新报告

安装与配置准备工作都已经完成后,接下来需要对报告进行实时呈现分析,采用定时脚本方式将对被监控服务日志进行实时更新分析并生成 html 报告。

/usr/local/bin/goaccess   /opt/nginx/logs/access.log -o /usr/local/nginx/html/monitor.html -p   /usr/local/etc/goaccess/goaccess.conf --real-time-html --daemonize

 

Nginx 日志文件按天自动生成

#!/bin/bash

log_files_path="/usr/local/nginx/logs/"

log_files_dir=${log_files_path}

log_files_name=(access   )

nginx_sbin="/usr/local/nginx/sbin/nginx"

save_days=30

log_files_num=${#log_files_name[@]}

for((i=0;i<$log_files_num;i++));do

mv   ${log_files_path}${log_files_name[i]}.log   ${log_files_dir}${log_files_name[i]}.log_$(date -d "yesterday"   +"%Y-%m-%d")

done

find $log_files_path   -mtime +$save_days -name "*.log" -exec rm -rf {} \; 

$nginx_sbin -s   reload

ps -ef|grep  goaccess |grep -v grep |awk '{print   $2}'|xargs kill -9

/usr/local/bin/goaccess   /usr/local/nginx/logs/access.log -o /opt/nginx/html/devopsrpt.html -p /usr/local/etc/goaccess/goaccess.conf   --real-time-html –daemonize

 

00 00 * * * /opt/logmonitor   /cut_nginx_logs.sh

 

为了能让浏览器能实时的访问日志分析结果,需要配置一个 nginx 来访问这个静态 html 页面。

#nginx 源码安装

useradd -s   /sbin/nologin -M nginx

Wget http://nginx.org/download/nginx-1.13.6.tar.gz

./configure   --prefix=/opt/nginx --user=nginx --group=nginx  --without-http_gzip_module

make &&   make install

修改配置文件

/opt/nginx/conf/nginx.conf 新增配置如下

        location /

        {

              root  /opt/nginx/html/;

              expires 30d;

         }

 

5.4       GoAccess 报告分析

1 、以下是采用GoAccess分析工具对nginx中间件应用日志分析结果如下:

                                             

2 、日志分析结果报告概览信息

 

3 、每日独立访问客

每日的访问量与每日访客数

 

4、URL 请求文件

显示了访问量最大的 URL ,这对于合理调整网站结构很有帮助。同时能分析到哪些 URL 文件平均响应时间最长,性能最差。

 

5 、访客主机名和 IP 地址

显示访问的 IP ,有时候如果某个 IP 异常飚高是需要注意的

 

6 、浏览器

通过浏览器报告可以分析哪些用户使用的浏览器频率最高,体验最好的浏览器。

 

7 HTTP 状态码

HTTP 的状态码 200 302 404 500 进行聚合统计, 404 页面不友好,如果 500 太多说明服务器性能很慢,需要优化改进。

有需要的朋友可以关注我的公众号,文章每日一更


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28833846/viewspace-2724921/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
负责数据库、中间件、大数据等基础软件建设、优化和业务保障工作。具有10年的电信与银行企业一线/二线运维管理经验。目前专注研究云计算、中间件和数据库等领域技术研究。持有Oracle OCP、weblogic OCP、Docker容器、PGCE和阿里云ACP等认证

注册时间:2020-06-22

  • 博文量
    34
  • 访问量
    13557