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