- 如何进行nginx日志分析?
- Awstats 是一款基于 Perl 的 WEB 日志分析工具,而 JAWStats 是一款基于 PHP 的统计套件,旨在为 Awstats 提供更为精美图形界面。
- 一、安装和配置 Awstats
- Awstats 安装非常简单,但必须先确认你服务器上 Perl 的环境已经就绪。
- 1. 下载与安装
- wget http://prdownloads.sourceforge.net/awstats/awstats-7.0.tar.gz
- tar -zxf awstats-7.0.tar.gz
- mv awstats-7.0 /usr/local/awstats
- chown -R root:root /usr/local/awstats
- 2. 生成配置文件
- cd /usr/local/awstats/tools
- ./awstats_configure.pl
- 1) 输入 none 然后回车
- 2) 输入 y 确认创建配置文件
- 3) 输入配置文件名称,一般输入域名。
- 4) 配置文件使用默认路径 /etc/awstats
- 5) 按回车继续
- 6) 按回车完成配置文件的创建
- 3. 修改配置文件
- Awstats 支持基于日期变化的动态日志文件,具体可以看注释。
- vim /etc/awstats/awstats.test.org.conf
- LogFile="/usr/local/nginx/logs/test.org/access.log"(51行左右)
- 如果你希望每天能定时生成昨天的报表,可以:
- LogFile="/usr/local/nginx/logs/test.org/access_%YYYY-24%MM-24%DD-24.log"
- 4. 生成 Awstats 统计数据
- #创建存放数据的目录
- mkdir -p /var/lib/awstats
- #方法一:为指定的网站生成数据。
- /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=test
- #方法二:为所有网站生成数据
- /usr/local/awstats/tools/awstats_updateall.pl now
- 5. 输出统计结果静态页面 (可选)
- 若在 Apache 上,那就可以直接打开网页查看统计了,当然 Nginx 也可以省略此步,因为 JAWStats 还尚未出场呢。。。
- mkdir -p /var/www/awstats/test.org # 创建存放结果的目录
- /usr/local/awstats/tools/awstats_buildstaticpages.pl -update -config=test.org -lang=cn -dir=/usr/local/apache/data -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl
- /usr/local/awstats/tools/awstats_buildstaticpages.pl Awstats 静态页面生成工具
- -update -config=test.org 更新配置项
- -lang=cn 语言为中文
- -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl Awstats 日志更新程序路径。
- 6. 配置 Awstats 自动运行
- crontab -e
- 0 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
- 二、安装和配置 JAWStats
- JAWStats 是基于 Awstats 统计数据的,但其界面更为强悍,有了JAWStats 你甚至可以抛弃第三方统计了。
- 2.1. 下载与安装
- wget http://static.jawstats.com/src/jawstats-0.7beta.tar.gz
- mkdir /var/www/stats/
- tar -zxf jawstats-0.7beta.tar.gz -C /var/www/stats/
- cd /var/www/stats/
- cp config.dist.php config.php
- 2.2. 修改配置文件
- 官方配置说明见:http://www.jawstats.com/documentation
- jawstats 是支持多站点的,每个 $aConfig 对应一个站点,并可以自由切换
- <?php
- // core config parameters
- $sDefaultLanguage = "zh-cn"; // 设置默认语言
- $sConfigDefaultView = "thismonth.all";
- $bConfigChangeSites = false; //是否可以更换站点
- $bConfigUpdateSites = false; //是否可以更新统计数据
- $sUpdateSiteFilename = "xml_update.php";
- // individual site configuration
- $aConfig["fb"] = array( // site1 网站域名(注意不能乱填)
- "statspath" => "/var/lib/awstats/", //awstats 统计数据目录
- "updatepath" => "/usr/local/awstats/wwwroot/cgi-bin/awstats.pl/", //用于更新统计数据
- "siteurl" => "http://test.org", //点击首页标题后会前往这个地址
- "sitename" => "test.org", //首页标题
- "theme" => "default",
- "fadespeed" => 250,
- "password" => "my-1st-password", //更新统计数据需要输入这个密码
- "includes" => "",
- "language" => "zh-cn"
- );
- ?>
- 2.3. 安装中文语言包
- 首先下载 jawstats 多国语言包,解压缩后上传替换 lang 目录。
- http://www.jawstats.com/src/languagepack.zip
- 需要注意的是,你要修改 translations.php 文件的编码为UTF-8,不然全乱码了。
- 另外修改汉化文件,也是translations.php,不能只修改zh-cn.js文件。
- 2.4. 设置JAWStats访问密码
- Nginx 支持为目录添加密码认证,若不想所有人都能访问到你的统计结果,那继续下面步骤吧。。。
- 1) 使用apache 的 htpasswd 来创建密码文件
- 语法:htpasswd -b -c /home/test/.htpasswds 用户名 密码
- location ~ /stats {
- root /var/www;
- location ~ \.php$ {
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
- include fastcgi_params;
- }
- auth_basic "JAWStats";
- auth_basic_user_file /home/test/.htpasswds;
- }
- 最后大功告成,输入 https://youdomain/stats/ 便可以访问了。
- 解决报表中没有国家代码的问题(jawstats里没有区域名称)
- # wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
- # wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
- # wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
- # tar xzf GeoIP.tar.gz
- # cd GeoIP-1.4.8/
- # ./configure && make && make install
- # gunzip GeoLiteCity.dat.gz
- # mv GeoLiteCity.dat /usr/local/awstats/wwwroot/cgi-bin/
- # gunzip GeoIP.dat.gz
- # mv GeoIP.dat /usr/local/awstats/wwwroot/cgi-bin/
- # vi /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf
- LoadPlugin="decodeutfkeys"
- LoadPlugin="geoip_isp_maxmind GEOIP_STANDARD /usr/local/awstats/wwwroot/cgi-bin/GeoIPISP.dat"
- LoadPlugin="geoip GEOIP_STANDARD /usr/local/awstats/wwwroot/cgi-bin/GeoIP.dat"
- LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/awstats/wwwroot/cgi-bin/GeoLiteCity.dat"