干货分享,灵感创作,不定期更新,敬请期待。

nginx 网站日志分析

Linux运维 xhq 4065℃ 0评论

网站日志是系统的重要组成部分,可以分析网站是否有异常的访问,带有攻击可能性的访问等等

日志的分析
日志分析推荐一款360的星图分析工具(http://wangzhan.360.cn/xingtu/),默认的分析结果
包含常规访问,可疑访问,漏洞攻击等等,
如一下是常规分析的部分数据

页面访问分析(TOP200)
页面访问次数、流量消耗

ID 访问次数 访问占比% 流量 流量占比% URL◀
1 33,889 65.769% 64.72 M 46.445% /
2 3,324 6.451% 5 M 3.591% /wp-login.php
3 447 0.868% 4.63 M 3.325% /wp-content/themes/yusi1.0/fonts/fontawesome-webfont.woff?v=4.1.0
4 305 0.592% 2.18 M 1.563% /239.html
5 292 0.567% 2.16 M 1.547% /256.html
6 238 0.462% 2.6 M 1.865% /224.html
7 194 0.377% 1.5 M 1.076% /250.html
8 110 0.213% 942.87 K 0.661% /233.html
9 103 0.200% 691.27 K 0.484% /270.html
10 86 0.167% 50.29 K 0.035% /xmlrpc.php1

一看就知道有人想暴力破解我博客的后台(所以偶尔我会禁止登录链接),所以日志分析对于安全性也有一定帮助

日志切割
其实我博客访问量不大,如果对于一天能产生几百M日志的网站来说最好还是做日志切割,
我以前的做法是一定时间登录vps手动,但是大流量网站的话自动化就很有必要了

切割日志

cp ~.log ~_20160618.log && echo "" > ~.log

注意:如果用mv之类的命令然后重新创建~.log文件需要重新加载或重启nginx,
所以用

echo "" > ~.log

吧,这样清空了日志不重启还可以继续日志的记录,
以下为shell参考代码(注意文件夹必须存在)

#!/bin/bash
logs_path="/home/wwwlogs/"
file_name="wp.iyouths.org.log"
cp ${logs_path}${file_name} ${logs_path}/cut/access_$(date -d "yesterday" +"%Y%m%d").log
echo "" > ${logs_path}${file_name}

然后结合crontab的定时任务功能就可以

如何减少日志量的产生

当然不会通过限制用户访问来达成,可以通过
1.减少css,js,img等静态资源的访问(合并css,js)
2.比如在thinkphp中,可以通过修改__PUBLIC__常量(另外一个域名),
文件位置:\ThinkPHP\Library\Behavior\ContentReplaceBehavior.class.php

比如把

'__PUBLIC__' => __ROOT__.'/Public',// 站点公共目录

改为

'__PUBLIC__' => __ROOTS__.'/Public',// 站点公共目录

然后在开发环境中定义__ROOTS__ 为根目录,而部署环境中定义为static.abc.com,
然后静态资源都部署到static.abc.com站点
(如何分别定义?通常我采用的是git,忽略那么个配置文件,弄个config.php.example
cp config.php.example config.php
)

转载请注明:爱游思 » nginx 网站日志分析

喜欢 (2)

您必须 登录 才能发表评论!

(2)个小伙伴在吐槽
  1. 艾玛,4:30了
    xhq2016-06-19 04:31
  2. 感觉很不错的样子!