首页 > GoAccess安装及分析nginx实时日志

GoAccess安装及分析nginx实时日志

 

GoAccess是一个基于终端的快速日志分析器。其核心思想是实时快速分析和查看Web服务器统计信息,而无需使用您的浏览器(如果您希望通过SSH快速分析访问日志,或者只是喜欢在终端中工作),终端输出是默认输出,但它能够生成完整的,独立的实时 HTML报告(非常适合分析,监控和数据可视化),以及a JSON和CSV报告。

  • 所有面板和指标都定时在终端输出上每200毫秒更新一次,在HTML输出上每秒更新一次。

  • GoAccess允许任何自定义日志格式字符串。预定义选项包括Apache,Nginx,Amazon S3,Elastic Load Balancing,CloudFront等

  • 跟踪提供请求所需的时间。如果您想跟踪减慢网站速度的网页,则非常有用。

  • 数据持久性强,GoAccess能够通过磁盘上的B + Tree数据库逐步处理日志。

  • GoAccess是用C语言编写的,要运行它,你只需要将ncurses作为依赖项,它甚至还具有自己的RFC6455兼容Web Socket服务器。

  • 您可以针对访问日志文件运行它,选择日志格式并让GoAccess解析访问日志并显示统计信息。

  • 按小时或日期确定最慢运行请求的匹配数,访问者数,带宽数和指标数。

  • 多个虚拟主机,一个面板,显示哪个虚拟主机正在消耗大部分Web服务器资源。

  • 定制GoAccess以适合您自己的色彩品味。通过终端,或者只是更新HTML输出上的样式表。

 

GoAccess安装部署:

方案一:Yum安装部署

yum install glib2 glib2-devel GeoIP-devel ncurses-devel zlib zlib-develyum install gcc -y

yum -y install GeoIP-update

yum install goaccess

#修改/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"';

#修改文件/etc/goaccess.conf改成goaccess格式标准对应为

time-format %T

date-format %d/%b/%Y

log-format %h - %^ [%d:%t %^] requesthost:"%v"; "%r" requesttime:"%T"; %s %b "%R" - %^"%u"

#测试生成页面

goaccess -f /var/log/nginx/access.log -c -a>/usr/share/nginx/html/go.html

方案二:源码安装部署

#yum安装依赖包

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

yum install gcc -y

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

yum -y install GeoIP-update



#下载goaccess源码包,并解压编译安装

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

tar xzvf goaccess-1.2.tar.gz

cd goaccess-1.2/./configure --enable-geoip --enable-utf8make && make install



#修改/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"';

#修改文件/usr/local/etc/goaccess.conf改成goaccess格式标准对应为

time-format %T

date-format %d/%b/%Y

log-format %h - %^ [%d:%t %^] requesthost:"%v"; "%r" requesttime:"%T"; %s %b "%R" - %^"%u"



#测试生成页面

goaccess -f /var/log/nginx/access.log -c -a>/usr/share/nginx/html/go.html



#后台实时生成数据到goaccess页面

/usr/local/bin/goaccess /var/log/nginx/access.log -o /usr/share/nginx/html/go.html --real-time-html &

 

安装常见问题:

问题1:安装时提示:Missing development files for the GeoIP library

解决方法: 下载GeoIP library包,执行 yum -y install GeoIP-update

问题2:

Fatal error has occurred

Error occurred at: src/parser.c - parse_log - 2764

No time format was found on your conf file.

问题解析: 配置文件goaccess.conf中time format格式不正确,只需把所需要对应日志格式前的#去掉即可,最后格式如下:

time-format %T

date-format %d/%b/%Y

log-format %h %^[%d:%t %^] "%r" %s %b

 

Goaccess支持实时查看access日志,Linux执行:goaccess -f access.log -o go.html --real-time-html -p goaccess.conf,按enter执行

解释如下:access.log处要改成access.log的绝对路径 go.html表示生成的Html文件,这里也要用绝对路径代替,goaccess.conf表示配置文件,也要写绝对路径,否则会提示找不到这个文件

实时日志命令执行后提示如下:

这样就可以查看go.html文件了。

可以在windows本地打开浏览器访问实时的go.html文件,如果你的服务器访问地址是www.xxx.com,则只需访问www.xx.com/go.html即可

 

如想查看goaccess访问对应的端口,执行netstat -antp | grep goaccess,结果如下:

 

 

 如果端口被占用,无法启动,可以执行如下命令关闭端口:

su - root     #切换到root用户

lsof -i :端口号     #得到PID号

kill -9 PID





转载于:https://www.cnblogs.com/wx170119/p/11226268.html

更多相关:

  • ELK:(ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三个开源工具组成),Elasticsearch用于存储日志信息,Logstash用于收集日志,Kibana用于图形化展示。上一节我们介绍了如何使用docker-compose搭建ELK日志分析系统。传送门:传说中的ELK日志分析系统,手把手教你...

  • 欢迎关注头条号:老顾聊技术精品原创技术分享,知识的组装工目录前言常用日志组件什么是日志门面和日志实现常见的日志框架日志使用@slf4j注解日志的配置logback-spring配置总结前言日志是我们系统必备的功能之一,可以帮助我们开发人员定位系统的异常、错误以及运行流程的重要的工具。今天老顾就来介绍一下Spring boot的默认的l...

  • glog简介 glog是著名的google开源C++日志库glog(https://github.com/google/glog)的golang版本,glog是一个轻量级的日志库,上手简单不需要配置文件并且稳定高效,可以自定义控制的内容比较少。  glog主要有以下几个特点:  1. glog有四种日志等级INFO < WARING...

  • 应用场景 该配置文件用于ATS用作反向代理模式,访问日志被server域名分隔。比如,我想将sohu和ifeng的域名的日志分别记在两个不同的日志文件中,其它的日志统一记在默认的日志文件中。 配置 为了将不同源站的HTTP transaction记录在不同的日志文件中,你必须在log_hosts.config中列举出每...

  • 缘起 近来因为公司项目需要,阅读了一部分ATS logging system的源码实现,越发觉得logs_xml.config文件的配置非常重要,而我目前只是实践了一点它的皮毛。为此,根据自己的理解,翻译了官网的这篇文档,以作备忘。 logs_xml.config文件定义了自定义日志文件格式,过滤器和处理选项。文件格式采用x...

  • 环境:ubuntu,python2/3 命令: pip3 install ipy  # 通过pip3给python3.x安装ipypip3 install --upgrade pip  # 升级pippip install ipy  # 通过pip给python2.x安装ipy 如果显示程序“pip/pip3”尚未安装 sudo...

  • 脚本:sh.sh 1 #!/bin/zsh 2 #安装rpmfusion源 3 dnf config-manager --add-repo=http://repo.fdzh.org/FZUG/FZUG.repo 4 #安装一下有用的一些软件包 5 yum -y install yum-fastestmirror 6...

  • 安装pip: apt-get install python-setuptools easy_install pip pip install   xxxx 转载于:https://www.cnblogs.com/arhatlohan/p/4737828.html...

  • 1. nginx  rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm  yun install nignx 2.php yum install php yum install php-f...