Linux之webalizer安装部署

一、webalizer简介

webalizer是一个高效的、免费的web服务器日志分析程序。其分析结果以HTML文件格式保存,从而可以很方便的通过web服务器进行浏览。Internet上的很多站点都使用webalizer进行web服务器日志分析。webalizer是用C写的程序,所以其具有很高的运行效率。在主频为200Mhz的机器上,webalizer每秒钟可以分析10000条记录,所以分析一个40M大小的日志文件只需要15秒。目前webalizer已停止更新,但是最后版本用于nginx日志简单分析还是一款补充的软件,高效,且占用资源很少。

二、webalizer安装

1、下载webalizer软件包

#wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.23-08-src.tgz

2、安装依赖包

#yum -y install gd-devel.i*
#yum -y install jpeg libjpeg-devel libpng-devel zlib-devel fontconfig-devel freetype-devel gd gd-devel libX11-devel libXpm-devel
#yum install -y libdb*

3、安装GeoIP

下载链接
#https://download.csdn.net/download/carefree2005/13959179
解压
#unzip GeoIP-1.4.8.zip
进入目录
#cd GeoIP-1.4.8
编译安装
#make && make install
安装完成后,会在/usr/local/share/GeoIP/下生成一个GeoIP.dat文件
将libGeoIP复制到/usr/lib下,要不然启动服务会报错。
cp -d -p /usr/local/lib/libGeoIP* /usr/lib/

4、解压并安装webalizer软件包

#本示例所有文档下载存储路径为/opt
cd /opt
解压
#tar -zxvf webalizer-2.23-08-src.tgz
编译
#./configure --prefix=/usr/local/webalizer --enable-geoip --with-geoip=/usr/local/include --with-geoiplib=/usr/local/lib
安装
#make && make install
#配置文件模板位置
/usr/local/webalizer/etc/webalizer.conf.sample

5、下载国旗图片

下载
#wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-flags.tgz
解压
#tar webalizer-flags.tgz

三、webalizer配置及使用

1、编写配置文件

创建webalizer配置文件夹目录
默认启动配置文件/etc/webalizer.conf
#mkdir -p /etc/webalizer
#mkdir -p /home/webalizer/test
将flags文件拷贝到/home/webalizer/
#cp -r /opt/flags/ /home/webalizer/
#cd /etc/webalizer
#vim test.conf
将如下配置写入配置test.conf后保存
#要分析的日志文件
LogFile /var/log/nginx/test.access.log
#日志格式
LogType clf
#分析结果存储路径
OutputDir /home/webalizer/test
HistoryName webalizer.hist
#分析结果采用追加的方式
Incremental yes
IncrementalName webalizer.current
ReportTitle fof access log report
#主机名
HostName test1
PageType htm*
PageType cgi
GeoDB yes
GeoDBDatabase /usr/local/share/GeoDB/GeoDB.dat
GeoIP yes
#IP地址归属数据库文件路径
GeoIPDatabase /usr/local/share/GeoIP/GeoIP.dat
CountryGraph yes
CountryFlags yes
#国旗文件存储路径,此位置为分析结果存储相对路径
FlagDir …/flags
HideURL *.gif
HideURL *.GIF
HideURL *.jpg
HideURL *.JPG
HideURL *.png
HideURL *.PNG
HideURL *.ra

2、执行日志分析

[root@test1 conf.d]# /usr/local/webalizer/bin/webalizer -c /etc/webalizer/test.conf
/usr/local/webalizer/bin/webalizer: Symbol `GeoIPDBDescription’ has different size in shared object, consider re-linking
Warning: Invalid keyword ‘server’ (webalizer.conf)
Webalizer V2.23-08 (Linux 3.10.0-957.el7.x86_64 x86_64) English
Using logfile /var/log/nginx/test.access.log (clf)
Error opening file: /usr/local/share/GeoDB/GeoDB.dat
GeoDB lookups disabled
Creating output in /home/webalizer/test
Hostname for reports is ‘test1’
History file not found…
Previous run data not found…
Saving current run data… [12/28/2020 14:52:51]
Generating report for December 2020
Saving history information…
Generating summary report
6493 records in 1 seconds, 6493/sec

3、创建nginx服务

通过nginx创建web服务,方便远程查看分析结果
#cd /etc/nginx/conf.d
#vim webalizer.conf
#将如下配置添加到webalizer.conf后保存
server{
   listen 8888;
   server_name 192.168.0.124 ;
   location / {
   root /home/webalizer/;
   }
}
重载nginx配置文件
#nginx -s reload

4、查看分析报告

test.access.log日志分析结果主页如下
在这里插入图片描述
点击进入可以查看详细分析数据
在这里插入图片描述
有top30地址访问情况、国旗显示访问源IP所属国家排名等。
在这里插入图片描述

5、创建定时任务定期生成日志报告

1、配置定时任务脚本

如下配置添加到webalizertask.sh脚本后保存
#!/bin/bash
#script name: webalizertask.sh
#author: [email protected]
#version: v1
#description: 此脚本用于定时执行test等网站日志分析任务
#参数定义
#命令工具目录
WDIR=/usr/local/webalizer/bin
#配置文件目录
CDIR=/etc/webalizer
#执行任务
$WDIR/webalizer -c $CDIR/test.conf 2> err.log
可以添加多个任务
#$WDIR/webalizer -c $CDIR/test2.conf 2> err.log

2、设置定时任务

编辑crontab定时任务,添加如下任务后保存
0 */ * * * sh /root/webalizer/webalizertask.sh > /tmp/webalizertask.log

四、汉化方法

如下汉化方法为网上提供,亲测汉化后的翻译实在是糟糕,还存在部分乱码,不建议使用。
进入目录
cd webalizer-2.23-08
进入lang目录
找到 webalizer_lang.simplified_chinese 将文件格式转化为utf-8(我用的UltraEdit)
[root@**** lang]# file webalizer_lang.chinese
webalizer_lang.chinese: ASCII C program text
[root@**** lang]# file webalizer_lang.simplified_chinese
webalizer_lang.simplified_chinese: UTF-8 Unicode English text
找一个中文字体,传到服务器上
地址 /usr/share/fonts
(我从win系统中扣得一个中文字体上传到这个目录的)
跳回到webalizer-2.23-08文件目录
cd …
修改这个文件graphs.c
vi graphs.c
在文件最后加入(这里会出现编码或者全角……错误,会编译不过)
void gdImageString(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color)
{
gdImageStringFT(im, 0 , color, “/usr/share/fonts/simfang.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/simfang.ttf”, 9 , -PI/2, x, y-9 , s);
}
需要注意 /usr/share/fonts/simfang.ttf 是你自己上传的中文字体 绝对位置

猜你喜欢

转载自blog.csdn.net/carefree2005/article/details/111562804
今日推荐