使用webalizer分析nginx访问日志(解决中文图片乱码)

post by rocdk890 / 2011-12-15 0:00 Thursday linux技术

  今天给一台vps从apache迁移到nginx平台时,发现卸载的时候居然有webalizer,让我想起了以前群里讨论用webalizer来查看nginx的日志,因为当时是英文的,所以决定自己来安装一次并解决中文乱码问题.
  系统:centos 5.6
  需要的软件包:webalizer-2.23-05-src.tgz
1.下载并安装webalizer
wget -c ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.23-05-src.tgz
tar xf webalizer-2.23-05-src.tgz && cd webalizer-2.23-05
cd lang   进入语言目录

找到webalizer_lang.simplified_chinese  将文件格式转化为utf-8,可以借助外部工具,修改后放回即可.这里我使用EditPlus 3进行格式转换,大家可以去网上下载一些软件,将文件格式转换即可,如无需汉化,此步骤可略过.

cd ../
yum  -y install fonts-chinese  安装中文字体
vi graphs.c  打开graphs.c,将下述代码添加到最后一行,如图
点击查看原图

void gdImageString(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color)

{

gdImageStringFT(im, 0 , color, "/usr/share/fonts/chinese/TrueType/ukai.ttf", 9 , 0.0, x, y+9, s);
}

void gdImageStringUp(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color)

{

gdImageStringFT(im, 0 , color, "/usr/share/fonts/chinese/TrueType/ukai.ttf", 9 , -PI/2, x, y-9 , s);

}



代码加好之后,我们来安装webalizer

./configure --prefix=/usr/local/webalizer --enable-geoip --with-geoiplib=/usr/lib --with-geoip=/usr/include --with-language=simplified_chinese
ps:这里编译安装是需要GeoIP库的,不然会出现下面的错误
configure: WARNING: libGeoIP not found.. GeoIP code will be disabled!

直接执行命令
yum -y install GeoIP*

点击查看原图
如果继续编译出现上面的错误,表示缺少libpng-devel,那就输入下面的命令
yum -y install libpng*

点击查看原图
如果继续编译出现上面的错误,表示缺少gd,这里不是要你安装php-gd,是单独的gd包
yum -y install gd*

点击查看原图
看到这里,可以发现libdb没有被找到,虽然可以make,但不定后面会有什么问题,所以要先执行
make clean all
然后再
yum -y install db4-devel
安装之后再进行编译安装,没有报错的话就执行make
make && make install
完成后,我们查看下webazolver的安装路径
whereis webazolver
webazolver: /usr/bin/webazolver
可以看到webazolver是安装在/usr/bin下.

2.配置webalizer
如果/etc下没有webalizer.conf,就自己创建个
cp /usr/local/webalizer/etc/webalizer.conf.sample /etc/webalizer.conf
vi /etc/webalizer.conf
   LogFile        /var/log/nginx/access.log  指定日志文件位置,可以是压缩包
   LogType  clf     设置日志类型
   OutputDir      /var/www/vhosts/log   生成统计数据记录目录
   HostName        rocdk890
   GeoIP           yes       启用geoip功能
   GeoIPDatabase   /usr/share/GeoIP/GeoIP.dat 指向geoipdatabase路径
   Incremental     yes
   IncrementalName /var/www/vhosts/log
Incremental 为yes时,使每天分析结果存在,否则只会为当时分析的,LogType定义为clf,所以要分析的nginx日志的格式与clf符合,要不分析时会报错误.
3.用脚本分析日志
vi webalizer.sh
#!/usr/bin run=/usr/sbin/webalizer $run -F clf -p -n '' -t 'blog.slogra.com' -o /var/www/vhosts/log /var/log/nginx/access.log

保存退出后,来进行测试:
sh webalizer.sh   (因为我在ssh连接上看到的结果是乱码,就不把结果给大家看了)
点击查看原图
执行之后有文件产生,就可以在浏览器中进行访问,当然前提是要让nginx配置好虚拟主机,好了,最后给大家个效果图吧.
点击查看原图

多谢下面几位,才让我有这篇文章:
http://haolulu.blog.51cto.com/3164472/630894
http://jueshitou.blog.51cto.com/385947/569820
http://wanglq.blog.51cto.com/783560/302281

夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-86.html

标签: nginx webalizer 分析 日志 中文 乱码

  1. 2012-10-23 20:01
    @南宁广告公司:慢慢来就看懂了
  1. gravatar 南宁广告公司
    2012-10-23 15:17
    都看不懂得

评论: