使用Awstats做网站的访问统计已经有些日子了,渐入佳境。不过看到统计报告中的方可来源都是IP地址,实在有些茫然——人脑是很难直接将IP地址换算成国家、地区的。而且即便能够快速的完成人脑中的联想,也于统计无用。所以还是应开启IP转地区的插件,才能更方便进行统计。
为了启用这个功能,主要需要进行如下三个操作:
1、下载IP地址库;2、安装Perl相关功能模块;3、在Awstats配置中启用相关插件。
下面分别说一下每一个步骤具体的注意事项。
一、下载IP地址库
国家地区IP地址库,有一家成熟知名的功能负责维护、提供。这便是maxmind.com,到他们的官网就能够找到IP库下载页面。这里值得注意4点:
1、他们提供的IP地址库,是有免费版和付费版区分的,对于一般的小型网站或个人用户,可以下载免费版进行使用;
2、下载免费版IP地址库,需要是maxmind网站的注册用户才能进行下载。所以需要先进行用户注册、然后登录进入自己的账号。注册过程并不复杂,也没有苛刻的门槛,基本1分钟即可完成注册、下载;
3、免费IP库分为两个版本,分别是GeoIP版、GeoIP2版,也就是第一代和第二代,我是使用的GeoIP2,所以后面的Perl模块安装、插件启动,都是针对GeoIP2这一版本而言。如果您下载的是GeoIP版,则后面所有步骤,也要进行相关调整;
4、GeoIP2地址库是分为两个数据库的,分别是Country库和City库,两个数据库都下载回来即可。当然如果后面开启插件部分之需要对国家进行统计分析,那这里只下载Country库即可。
小结:第一步是注册并登录maxmind网站,下载免费版GeoIP2数据库文件到本地,并上传至web server服务器待用。
二、安装Perl相关功能模块
因为Awstats是基于Perl语言的项目,与之相关的IP地区统计功能也是基于Perl开发的,这就要完成相关Perl功能模块的安装,这里有如下几点值得注意:
1、首先就是为了安装Perl的功能模块,先要关注自己的服务器性能。我起初使用的是Amazon的虚拟主机,用的t2.micro配置,结果这个性能配置下是无法完成Perl模块的安装的(经常会因为CPU100%占用导致服务器僵死),当将服务器配置升级至t2.small之后,才能顺利完成后续安装;
2、确保服务器至少是Amazon Linux 2023 t2.small以上的性能。首先利用包管理器安装perl-CPAN。这样就可以利用cpan包管理器完成perl中的module的安装了;
3、安装完cpan之后,第一次运行时会有一些交互问答完成初始化、更新,按步骤操作即可。这里唯一的问题就是当服务器配置是t2.micro时,这个步骤是无法完成的;
4、完成cpan的首次运行并初始化之后,在cpan shell中,安装awstats统计时需要的模块。例如我启用的是GeoIP2-Country和GeoIP2-City两个插件,则需要在Perl中安装GeoIP2::Database::Reader模块,直接在cpan shell中使用install命令即可以完成安装,所需依赖也会一并安装完成;
5、对于2.4中值得注意:安装过程并非无人值守的,其中有一些问答过程,按照默认给出的选项回答即可;
6、对于2.4中另一个值得注意:我在Amazon Linux 2023系统中进行GeoIP2::Database::Reader安装是无法将所有依赖全部安装好的,GeoIP2::Database::Reader需要依赖于LWP::Protocol::https,而LWP::Protocol::https又依赖于IO::Socket::SSL,但是IO::Socket::SSL模块已经不在cpan的维护列表中了,所以仅通过cpan是无法完成一键安装的;
7、针对2.6的问题,则需要先退出cpan shell,回到bash shell,使用yum将IO::Socket::SSL模块安装好。在yum管理器中,IO::Socket::SSL的软件名称是perl-IO-Socket-SSL。
小结:综合上面的所有,最终命令行中执行的过程如下:
# 安装cpan
sudo yum install perl-CPAN
# 安装perl-IO-Socket-SSL
sudo yum install perl-IO-Socket-SSL
# 利用cpan安装GeoIP2::Database::Reader
sudo perl -MCPAN -e 'install GeoIP2::Database::Reader'
三、在Awstats配置中启用相关插件
完成上面IP数据库下载,相关软件、模块的安装,接下来只要修改awstats的配置文件,在配置文件中找到GeoIP2的插件启动行去掉注释,就可以按照预期完成IP地址的国家分析统计功能了。这一部分也有几点需要备忘:
1、awstats插件中的GeoIP分析是分成好多不同的方式的,既然上面提到下载的是GeoIP2库,所以启动配置时所要启动的,也就是这个数据库对应的插件。他们的名字分别是geoip2_country和geoip2_city;
2、启动插件的方式很简单,去掉行前注释符号。但是额外的还要修改一下后面数据库文件的地址,例如我将下载回来的GeoLite2-Country.mmdb和GeoLite2-City.mmdb两个文件存放在/usr/local/geo/,那么这里配置也要用绝对地址给予指明;
小结:完成上面的配置文件调整之后,运行awstats分析,即可按照统计报告中,已经可以将访客IP自动解析成来源国家。