Goaccess自动分割nginx日志

GoAccess 是一款开源的网站日志实时分析工具。GoAccess 的工作方式很容易理解,就是读取和解析 Apache/Nginx/Lighttpd 的访问日志文件 access log,然后以更友好的方式把统计信息显示出来。统计的内容包括:访问概况、动态页面请求、静态页面请求(如图片、样式表、脚本等)、访客排名,访客使用的操作系统,访客使用的浏览器,来路域名,404 错误,搜索爬虫,搜索关键词等等。

安装组件
yum -y install glib2 glib2-devel ncurses ncurses-devel GeoIP GeoIP-devel
下载源码包安装
wget http://tar.goaccess.io/goaccess-0.8.5.tar.gz
tar zxvf goaccess-0.8.5.tar.gz -C /usr/src/
cd /usr/src/goaccess-0.8.5/
./configure --prefix=/usr/local/goaccess
make && make install

下载文件
cd /usr/local/goaccess/
wget -O goaccessrc https://raw.githubusercontent.com/allinurl/goaccess/master/config/goaccess.conf --no-check-certificate
编辑文件
vim goaccessrc
去除下面22,33行的注释,增加235行的注释

22 date-format %d/%b/%Y
33 log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
235 #ignore-panel KEYPHRASES

创建网页目录
mkdir html
生成网页报告
/usr/local/goaccess/bin/goaccess -f /usr/local/nginx/logs/access.log -d -a -p /usr/local/goaccess/goaccessrc > /usr/local/goaccess/html/access.html

Nginx发布goaccess网页

cd /usr/local/nginx/conf/vhosts/
vi goaccess.conf

server {
listen 80;
server_name goaccess.xx.com;
autoindex on;
location / {
root /usr/local/goaccess/html;
}
}

重新加载
/usr/local/nginx/sbin/nginx -s reload

访问网页
http://goaccess.xx.com/access.html
wKioL1VK-4iB_ZLQAAJI0SkVSms176.jpg

下面介绍nginx日志切割和自动生成网页报告以及汉化。
vi nginx_cut.sh

#!/bin/bash

#############日志切割###########################
time=`date -d today +%Y%m%d%H%M`
/usr/local/nginx/sbin/nginx -s stop
cd /usr/local/nginx/logs
mv access.log access_$time.log
mv error.log error_$time.log
/usr/local/nginx/sbin/nginx
#删除超过7天的日志文件
find /usr/local/nginx/logs -ctime 3 -type f -name "*.log" -exec rm {} \;

#自动生成网页报告
/usr/local/goaccess/bin/goaccess -f access_$time.log -d -a -p /usr/local/goaccess/goaccessrc > /usr/local/goaccess/html/access_$time.html

#自动汉化网页报告文件
echo access_$time.html > /tmp/time.log
/manage/hanhua.sh

#删除超过7天的报告文件
find /usr/local/goaccess/html -ctime 7 -type f -name "*.html" -exec rm {} \;

编辑汉化脚本,英文翻译参考百度翻译,可能不太准确。
vi /manage/hanhua.sh

#/bin/bash

file=`cat /tmp/time.log`

cd /usr/local/goaccess/html
sed -i ‘s/Overall/整体/g‘ $file
sed -i ‘s/Unique visitors/独立访客/g‘ $file
sed -i ‘s/Requested files/请求的文件/g‘ $file
sed -i ‘s/Requested static files/请求的静态文件/g‘ $file
sed -i ‘s/Not found URLs/没有找到网址/g‘ $file
sed -i ‘s/Hosts/主机/g‘ $file
sed -i ‘s/Operating Systems/操作系统/g‘ $file
sed -i ‘s/Browsers/浏览器/g‘ $file
sed -i ‘s/Referrers URLs/反向链接的url/g‘ $file
sed -i ‘s/Referring sites/参考网站/g‘ $file
sed -i ‘s/Keyphrases/关键词/g‘ $file
sed -i ‘s/Status codes/状态码/g‘ $file
sed -i ‘s/Generated by/生成的/g‘ $file
sed -i ‘s/Dashboard/仪表板/g‘ $file
sed -i ‘s/Analyzed Requests/分析请求/g‘ $file
sed -i ‘s/Total Requests/总请求/g‘ $file
sed -i ‘s/Failed Requests/请求失败/g‘ $file
sed -i ‘s/Generation Time/生成时间/g‘ $file
sed -i ‘s/Unique Visitors/独立访客/g‘ $file
sed -i ‘s/Unique Files/独特的文件/g‘ $file
sed -i ‘s/Excl. IP Hits/除外的IP点击/g‘ $file
sed -i ‘s/Referrers/反向链接/g‘ $file
sed -i ‘s/Unique 404/独特的404/g‘ $file
sed -i ‘s/Static Files/静态文件/g‘ $file
sed -i ‘s/Log Size/日志大小/g‘ $file
sed -i ‘s/Bandwidth/带宽/g‘ $file
sed -i ‘s/per day/每一天/g‘ $file
sed -i ‘s/Including spiders/包括蜘蛛/g‘ $file
sed -i ‘s/Hits having the same IP/具有相同的IP点击/g‘ $file
sed -i ‘s/date and agent are a unique visit/日期和代理是一种独特的访问/g‘ $file
sed -i ‘s/Top Requested Files sorted by hits/请求的文件按点击顶部/g‘ $file
sed -i ‘s/time served/时间送达/g‘ $file
sed -i ‘s/protocol/协议/g‘ $file
sed -i ‘s/method/方法/g‘ $file
sed -i ‘s/Hits/点击/g‘ $file
sed -i ‘s/Protocol/协议/g‘ $file
sed -i ‘s/Method/方法/g‘ $file
sed -i ‘s/Top 404 Not Found URLs sorted by hits/前404没有找到网址按点击率排序/g‘ $file
sed -i ‘s/Top/前/g‘ $file
sed -i ‘s/sorted by hits/按点击率/g‘ $file
sed -i ‘s/bandwidth/带宽/g‘ $file
sed -i ‘s/Hostname/主机名/g‘ $file
sed -i ‘s/sorted by unique visitors/通过独特的访客排序/g‘ $file
sed -i ‘s/Requested/要求/g‘ $file
sed -i ‘s/Status Codes/状态码/g‘ $file
sed -i ‘s/Code/代码/g‘ $file
sed -i ‘s/Visitors/游客/g‘ $file
sed -i ‘s/Name/名称/g‘ $file
sed -i ‘s/Not Found URLs/没有找到网址/g‘ $file
sed -i ‘s/or service not known/或服务不知道/g‘ $file
sed -i ‘s/Pages/页面/g‘ $file
sed -i ‘s/Referring Sites/参考网站/g‘ $file

原文地址:https://www.cnblogs.com/NiceTime/p/9193205.html

时间: 2024-10-13 18:01:11

Goaccess自动分割nginx日志的相关文章

每天自动分割Nginx日志文件

资料来源:https://www.centos.bz/2011/03/split-nginx-logfile-eveyday/ Nginx产生的日志都是存在一个文件,随着网站运行时间越长,日志文件的大小也在不断增长,这对我们想分析当天日志非常的不方便,所以需要每天把日志文件分割出来,并以时间命名. 创建日志分割脚本 1.登录SSH,创建cut_logs.sh文件 vi /root/cut_logs.sh 2.粘贴下面代码到cut_logs.sh,并保存 #!/bin/bash # The Ngi

用GoAccess来分析Nginx日志

首先,需要安装lnmp,已经安装完成,为了测试效果我把我自己的网站放进去可以测试一下.如果不知道怎么安装lnmp的可以参考 用shell脚本一键搭建lnmp环境实战  下面测试一下我搭建的效果 服务已经重启,那就测试一下我的网站能不能正常访问,因为是在本地的虚拟机上搭建的,用域名访问所以需要在hosts文件里定义一下,windows的hosts文件路径是:C:\Windows\System32\drivers\etc linux的hosts文件是/etc/hosts 到此网站已经搭建完成,那么我

用goaccess每天自动分析nginx日志

上次用awstats来自动分析nginx的日志,不过发现它只是累计的不能看一天或某个时间段内情况,于是就加了个goaccess来分析日志, 思路:每天将原来awstats集中过来的日志文件处理一下,生成符合goaccess的新的日志文件,然后用goaccess来生产静态页,nginx将这些静态页展示出来. 一.软件 goaccess: ncurses(goaccess的依赖)  ubuntu:apt-get install libncursesw5-dev 二.安装     wget http:

Nginx 日志分析及性能排查

最近一直在做性能排查,思路就是根据分析Nginx日志,得到响应耗时的url.以及请求时间,再得到这段时间的请求量,并发量,分析是并发的原因,还是本身就比较慢,如果是应用本身的原因,只需要找到对应的代码,然后进行优化就好了 找到的几个原因,基本就是后端sql运行的比较多,单次访问看不出来,但是人比较多的时候就比较慢了,人少的时候20-200毫秒,人多的时候,200-6000毫秒,优化之后基本保持在几十毫秒,优化策略就是减少不必要的sql,加上缓存,基本解决了卡顿的问题,顺便把这次用的一系列命令记录

Goaccess---良心nginx日志分析工具

Goaccess是一个非常良心的开源软件,它的良心之处体现在如下方面: 1)安装简单: 2)操作容易: 3)界面酷炫: 安装Goaccess十分的简单,在centos里直接#yum install goaccess,如果yum源里没有goaccess,可以先安装epel.安装epel的方法如下: wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm wget http://rpms.famil

Nginx日志切割并计划任务自动上传到FTP服务器

枫城浪子原创,转载请标明出处! 微信bh19890922 QQ445718526,490425557 更多技术博文请见个人博客: https://fengchenglangzi.000webhostapp.com http://fengchenglangzi.blog.51cto.com 一.简述 Nginx WEB服务器每天会产生大量的访问日志,而且不会自动地进行切割,如果持续天数访问,将会导致该access.log日志文件容量非常大,不便于SA查看相关的网站异常日志,并且后期进行分割非常不易

大数据技术之_18_大数据离线平台_02_Nginx+Mysql+数据收集+Web 工程 JS/JAVA SDK 讲解+Flume 故障后-如何手动上传 Nginx 日志文件至 HDFS 上

十一.Nginx11.1.介绍11.2.常见其他 Web 服务器11.3.版本11.4.Nginx 安装11.5.目录结构11.6.操作命令十二.Mysql12.1.介绍12.2.关系型数据库(SQL)种类12.3.特征12.4.术语12.4.与非关系型数据库比较(Not Only SQL)12.4.1.种类12.4.2.特征12.4.3.总结十三.数据收集13.1.收集方式13.2.数据的事件类型13.2.1.Launch 事件13.2.2.PageView 事件13.3.Nginx 日志收集

nginx日志切割脚本,自动上传到日志服务器

nginx日志切割脚本,自动上传到日志服务器 1 nginx是yum方式安装,系统会自动生成nginx日志切割计划任务在/etc/logrotate.d/nginx下,把自动生成的计划任务删除,自己编写切割脚本,并传到统一存放日志的服务器上.  www.ahlinux.com 2 安装ncftp包,用于日志传输时使用. 3 简单切割脚本如下: #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin export PATH yesterday=`date +%

Nginx(二) Nginx主机配置、日志分割、日志自动备份

Nginx主机配置.日志分割.日志自动备份 一 主机配置以及按主机分割日志文件 1.在目录/usr/local/nginx/conf下 修改nginx.conf文件的server节点,并添加一个新的server节点 2.因为使用了Nginx默认的全局日志格式(main),这个日志格式默认是注释掉的,需要再nginx.conf中放开. 3.创建www.solr.com以及www.hadoop.com两个主机欢迎页面根节点文件夹以及文件. 切换到Nginx的安装目录下,复制Nginx默认的欢迎页面根