Awstats: How to install the GeoIP plugin to show country information
Awstats 安装后默认是不支持国家或地区的,来源全部显示为“未知”, 通过GeoIP插件,在AWStats报表中,可以显示IP地址来自那个国家和地区。
1.下载Geo::IP和GeoIP C API的源代码
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
其中 GeoIP 是国家数据,GeoLiteCity 是城市数据,GeoIPASNum 是组织数据
2.先安装 GeoIP C API
gunzip GeoIPASNum.dat.gz #解压缩组织数据
gunzip GeoLiteCity.dat.gz #解压缩城市数据
gunzip GeoIP.dat.gz #解压缩国家数据
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.8.tar.gz
tar zxvf GeoIP-1.4.8.tar.gz
cd GeoIP-1.4.8
./configure
make && make install
然后再安装 GeoIP Perl 模块
wget http://www.maxmind.com/download/geoip/api/perl/Geo-IP-1.40.tar.gz
tar zxvf Geo-IP-1.40.tar.gz
cd Geo-IP-1.40
perl Makefile.PL LIBS='-L/usr/local/lib'
make
make test
make install
mkdir /data/awstats/geoip #Geoip 库目录
cp *.dat /data/awstats/geoip # 拷贝Geoip到Geoip 目录
3.修改AWStats的站点配置文件,添加以下设置:
LoadPlugin="geoip GEOIP_STANDARD /data/awstats/geoip/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /data/awstats/geoip/GeoLiteCity.dat"
LoadPlugin="geoip_asn_maxmind GEOIP_STANDARD /data/awstats/geoip/GeoIPASNum.dat"
最后更新统计数据:
/usr/local/awstats/tools/awstats_updateall.pl now
由于GeoIP.dat每个月初会更新一次,虽然站上是5/1更新,可是实际解压缩后看到的日期是5/3,故我们可以让系统每个月固定一天去抓这个数据,解压缩后,覆盖掉原有的/data/awstats/geoip/GeoIP.dat这个数据即可。
vim /root/sbin/update_geoip.sh
# Name: updateGeoIP_dat.sh
#!/bin/bash
# Name: updateGeoIP_dat.sh
# Author: Andowson Chang (andowson [at] gmail [dot] com)
# Version: 1.1
# Last Modified: 2012-05-03
wget http://www.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gunzip GeoIP.dat.gz
mv GeoIP.dat /data/awstats/geoip/
chmod +x /root/sbin/update_geoip.sh
把这个写到crontab 任务去 每月的3号凌晨00点抓取数据
00 00 3 * * /root/sbin/update_geoip.sh >/dev/null
参考资料:http://antezeta.com/awstats/geoip.html
http://www.andowson.com/posts/list/28.page