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
访问网页
http://goaccess.xx.com/
wKiom1VK-lTjIw3QAACuvyMOfEc868.jpg
点击网页文件
汉化之后的页面效果如下:
wKioL1VK--uCJqyaAAHDhwfvtbU010.jpg
本文出自 “陨落星空” 博客,请务必保留此出处http://xiao987334176.blog.51cto.com/2202382/1643811
GoAccess自动分割Nginx日志的更多相关文章
- 分割nginx日志
#!/bin/bash #此脚本用于自动分割Nginx的日志,包括access.log和error.log #每天00:00执行此脚本 将前一天的access.log重命名为access-xxxx-x ...
- 【Nginx】如何按日期分割Nginx日志?看这一篇就够了!!
写在前面 Nginx是没有以日期格式作为文件名来存储的,也就是说,Nginx不像Tomcat,每天自动生成一个日志文件,所有的日志都是以一个名字来存储,时间久了日志文件会变得很大.这样非常不利于分析. ...
- shell按日期自动切割nginx日志脚本
shell按日期自动切割nginx日志脚本 参考:自学it网 http://www.zixue.it/. #nginx日志切割脚本 #author:ce #!/bin/bash #设置日志文件存放目录 ...
- 自动分割nginx服务的日志文件
nginx服务每天都会产生大量的日志信息,时间一长导致日志文件容量很大,会影响系统性能.通过以下shell代码,配合crontab定时执行可实现nginx日志定时分割的功能. #!/bin/bash ...
- linux中使用corntab和shell脚本自动备份nginx日志,按天备份
编写shell脚本,实现nginx日志每天自动备份到指定文件夹! 需要的命令mv , corntab -e(定时任务),shell脚本 这里先说一下corntab: https://www.cnblo ...
- Nginx日志管理(四)
Nginx日志对于统计.系统服务排错很有用.Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志).通过访问日志我们可以得到用户的IP地址.浏览器的信息,请求的处 ...
- logrotate 进行nginx日志分割
http://www.williamsang.com/archives/1254.html 日志分割常用方法: 自己写脚本分割 使用linux自带的logrotate 前者灵活,可以应对各种需求,自定 ...
- Nginx 日志分析及性能排查
Nginx 日志分析及性能排查 2017-03-04 Linux爱好者 (点击上方公众号,可快速关注) 作者:-外星人- my.oschina.net/362228416/blog/844713 如有 ...
- Nginx 日志自动分割
Nginx 的日志都是写在一个文件当中的,不会自动地进行切割,如果访问量很大的话,将导致日志文件容量非常大,不便于管理和造成Nginx 日志写入效率低下等问题.所以,往往需要要对access_log. ...
随机推荐
- 后缀数组dc3算法模版(待补)
模版: ; #define F(x) ((x)/3+((x)%3==1?0:tb)) #define G(x) ((x)<tb?(x)*3+1:((x)-tb)*3+2) int wa[maxn ...
- SQL中的drop,truncate和delete的区别
(1) DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作.TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把 ...
- POJ 1127 Jack Straws (线段相交)
题意:给定一堆线段,然后有询问,问这两个线段是不是相交,并且如果间接相交也可以. 析:可以用并查集和线段相交来做,也可以用Floyd来做,相交就是一个模板题. 代码如下: #pragma commen ...
- Halcon 和 C# 联合编程 - 如何使用开源项目 ViewROI
声明 HWndCtrl _viewCtrl; ROIController _roiCtrl; 初始化 _viewCtrl = new HWndCtrl(hWindowControl); _roiCtr ...
- Go语言调度器之盗取goroutine(17)
本文是<Go语言调度器源代码情景分析>系列的第17篇,也是第三章<Goroutine调度策略>的第2小节. 上一小节我们分析了从全局运行队列与工作线程的本地运行队列获取goro ...
- CentOS设置代理, yum, wget
/etc # vi yum.conf [main] cachedir=/var/cache/yum/basearch/releasever keepcache=0 debuglevel=2 logfi ...
- hdu1166(线段树单点更新&区间求和模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 题意:中文题诶- 思路:线段树单点更新,区间求和模板 代码: #include <iost ...
- [Xcode 实际操作]六、媒体与动画-(6)使用UIBlurEffect给图片添加模糊效果
目录:[Swift]Xcode实际操作 本文将演示如何给图像添加模糊效果. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class V ...
- css中vw和vh的知识点
引用文档:http://caibaojian.com/vw-vh.html: http://www.zhangxinxu.com/wordpress/2012/09/new-viewport-rela ...
- Python学习笔记(异常处理)
用户输入了一个不合规定的值,或者需要打开的文件不存在.这些情况被称作“异常”,一个好的程序需要能处理可能发生的异常,避免程序因此而中断. 例如我们去打开一个文件: f = file('non-exis ...