前面使用过简单的脚本屏蔽过一些访问过多的ip。
其实还有很多工具,可以来分析这些日志。比如GoAccess.
GoAccess 是一款用于Apache或者Nginx的命令行日志分析器和交互式查看器。
官方网站:https://goaccess.io/,目前最新版本是0.9.8.
支持生成json,html,csv等文件格式。
一,安装GoAccess
- 安装依赖
默认只需要安装ncurses依赖包即可。其它为可选。
可以在goaccess的官网上找到依赖包 http://goaccess.io/ ,以下是各系统所需的依赖包。
Distro | NCurses | GeoIP (optional) | Tokyo Cabinet (optional) |
---|---|---|---|
Ubuntu/Debian | libncursesw5-dev | libgeoip-dev | libtokyocabinet-dev |
Fedora/RHEL/CentOS | ncurses-devel | geoip-devel | tokyocabinet-devel |
- 安装选项
执行以下可看到安装选项。
./configure --help
- 安装步骤
CentOS 7.0安装步骤
$ yum install geoip-devel
$ yum install ncurses-devel
$ wget http://tar.goaccess.io/goaccess-0.9.8.tar.gz
$ tar -xzvf goaccess-0.9.8.tar.gz
$ cd goaccess-0.9.8/
$ ./configure --enable-geoip --enable-utf8
$ make
# make install
或者使用
[root@sahinn ~]# yum install -y goaccess
或者
[root@sahinn ~]# apt-get install -y goaccess
二,运行 GoAccess
使用GoAccess时,需要对它指定你的nginx访问日志.
[root@sahinn ~]# goaccess -f /var/log/nginx/access.log
当你第一次启动GoAccess,你将会看到如下的屏幕中选择日期和日志格式。你可以按空格键进行选择,并按F10确认。
然后会看到以下画面,
下面解释各项的意义。
选择合适的日志格式,这个可能各服务器不一样。
- Common Log Format (CLF)
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
主机 用户身份 作者 [日期] "请求方法 请求路径 请求协议" 状态码 字节数
- NCSA Commbined Log Format
172.16.44.43 - - [09/May/2016:11:10:39 +0800] "GET / HTTP/1.1" 200 35907 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36" "-"
主机 用户身份 作者 [日期] "请求方法 请求路径 请求协议" 状态码 字节数 referrer 客户端代理 cookie
- W3C : IIS 4.0和5.0的日志格式
控制台操作快捷键:
F1是打开帮助文档
F5是刷新当前窗口
q是退出当前窗口,直到退出程序
o是进入选择条目
0-9 是选择模块
tab和shift+tab是在前后模块之前切换
j和k是在模块内部条目切换
s是模块内部条目排序方式
三,详解日志文件
- 1,每天唯一访客(来自同样IP、同一日期和同一浏览器的请求被认为是是唯一访问)
> 1 - Unique visitors per day - Including spiders Total: 1/1
Hits Vis. % Bandwidth Data
---- ---- ------- ----------- ----
4380 205 100.00% 55.78 MiB 09/May/2016 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
大概指的就是pv4380,uv205.uv可能不准,因为这是统计的每天的。
- 2,请求的文件(网页URL)
2 - Requested Files (URLs) Total: 366/496
Hits Vis. % Bandwidth Mtd Proto Data
---- ---- ------ ----------- ---- -------- ----
1079 141 24.63% 21.47 MiB GET HTTP/1.1 /
548 9 12.51% 0.0 B HEAD HTTP/1.1 /
187 1 4.27% 106.64 KiB POST HTTP/1.1 /zabbix/index.php
- 3,请求的静态文件
3 - Static Requests Total: 19/19
Hits Vis. % Bandwidth Mtd Proto Data
---- ---- ----- ----------- --- -------- ----
11 3 0.25% 16.60 KiB GET HTTP/1.1 /favicon.ico
8 8 0.18% 536.0 B GET HTTP/1.0 /robots.txt
5 2 0.11% 831.0 B GET HTTP/1.1 /robots.txt
- 4,HTTP 404 未找到的响应代码
大多数都是肉鸡攻击的请求造成的404.
4 - Not Found URLs (404s) Total: 167/167
Hits Vis. % Bandwidth Mtd Proto Data
---- ---- ----- ----------- --- -------- ----
4 0 0.09% 108.0 B GET HTTP/1.1 /phpsysinfo/index.php?disp=dynamic
4 0 0.09% 108.0 B GET HTTP/1.1 /uc_server/uctools.php
4 0 0.09% 108.0 B GET HTTP/1.1 /adminer.php
3 0 0.07% 37.14 KiB GET HTTP/1.1 /'"/><script>8976</script>/?.tmp=t
2 0 0.05% 54.0 B GET HTTP/1.1 /cacti/index.php
2 0 0.05% 24.76 KiB GET HTTP/1.1 /2016/01/'"/><script>8976</script>
- 5,主机地址(客户端ip地址)
5 - Visitor Hostnames and IPs Total: 200/200
Hits Vis. % Bandwidth Data
---- ---- ------ ----------- ----
204 3 4.66% 2.39 MiB 111.206.241.75 ||||||||||||
204 3 4.66% 2.39 MiB 106.38.187.225 ||||||||||||
136 2 3.11% 0.0 B 125.88.222.250 ||||||||
136 2 3.11% 0.0 B 101.226.162.90 ||||||||
136 1 3.11% 2.39 MiB 140.207.197.63 ||||||||
- 6,操作系统
6 - Operating Systems Total: 16/16
Hits Vis. % Bandwidth Data
---- ---- ------ ----------- ----
4081 154 93.17% 50.69 MiB Windows |||||||||||||||||||||||||||||||||||||||||||||||||
139 7 3.17% 2.13 MiB Macintosh ||||
106 35 2.42% 1.07 MiB Unknown |||
30 4 0.68% 1.40 MiB iOS |
21 3 0.48% 462.40 KiB Unix-like |
2 1 0.05% 8.45 KiB Linux |
1 1 0.02% 26.60 KiB Android |
- 7,浏览器
7 - Browsers Total: 42/42
Hits Vis. % Bandwidth Data
---- ---- ------ ----------- ----
4003 130 91.39% 49.29 MiB MSIE |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
172 13 3.93% 2.40 MiB Chrome |||||
72 26 1.64% 1.35 MiB Crawlers ||
52 11 1.19% 43.23 KiB Unknown |
50 6 1.14% 1.79 MiB Safari |
28 17 0.64% 823.17 KiB Firefox |
3 2 0.07% 105.33 KiB Others |
- 时间分布范围
8 - Time Distribution Total: 12/12
Hits Vis. % Bandwidth Data
---- ---- ------ ----------- ----
123 28 2.81% 2.80 MiB 03 ||||||||||||
941 36 21.48% 14.55 MiB 04 ||||||||||||||||||||||||||||||||||||||||||
1297 38 29.61% 5.35 MiB 05 |||||||||||||||||||||||||||||||||
183 35 4.18% 2.84 MiB 06 ||||||||||||||||||
198 37 4.52% 3.05 MiB 07 |||||||||||||||||||
201 34 4.59% 3.21 MiB 08 ||||||||||||||||||||
216 44 4.93% 2.81 MiB 09 |||||||||||||||||||||
- 来源网站
11 - Referring Sites Total: 66/66
Hits Vis. % Bandwidth Data
---- ---- ------ ----------- ----
1302 104 29.73% 22.82 MiB www.zuobin.net
401 1 9.16% 248.01 KiB img.zuobin.net
391 1 8.93% 1.01 MiB zuobin.net
42 41 0.96% 459.26 KiB www.baidu.com
3 0 0.07% 1.68 KiB best-proxies.ru
3 3 0.07% 25.24 KiB zhidao.baidu.com
- 13,访问分布地址
13 - Geo Location Total: 13/13
Hits Vis. % Bandwidth Data
---- ---- ------ ----------- ----
4268 180 97.44% 53.64 MiB AS Asia
47 8 1.07% 886.32 KiB -- Location Unknown
39 8 0.89% 989.33 KiB NA North America
25 8 0.57% 305.11 KiB EU Europe
1 1 0.02% 8.48 KiB OC Oceania
- 14,状态码
14 - HTTP Status Codes Total: 10/10
Hits Vis. % Bandwidth Data
---- ---- ------ ----------- ----
2986 202 68.17% 53.76 MiB 2xx Success
490 30 11.19% 2.32 KiB 3xx Redirection
477 0 10.89% 1.78 MiB 4xx Client Error
427 6 9.75% 236.91 KiB 5xx Server Error
如果想要在每天的凌晨分析下日志文件,加入到crond中,每天分析后生成html文件,再下载到本地看,或者直接传到内网某nginx服务器下直接打开查看。
或者每天从生产环境备份日志到某Server,分析后进行查看也可以。
[root@sahinn ~]# goaccess --time-format="%H:%M:%S" --date-format="%d/%b/%Y" --log-format="%h %^[%d:%t %^] "%r" %s %b "%R" "%u"" -f /var/log/nginx/access.log > /var/www/`date +%F`.html
然后,用web浏览器来将这份报告打开即可。
GoAccess是一个非常有价值的工具,可以看到网站正在遭受什么样的攻击,可以分析网站数据等。
原文链接:强大的日志分析工具GoAccess,转载请注明来源!