awstats+Lighttpd配置

发布时间:2019-12-26编辑:脚本学堂
AWStats是一款流行的服务器日志分析软件,Lighttpd是一款轻量级HTTP服务器软件。

本文介绍在centos系统中,用AWStats做Lighttpd日志分析的方法,包括如下内容:
1 安装AWStats
2 Lighttpd配置
3 配置AWStats
4 处理数据、查看结果
5 定时更新
6 用户认证
7 参考资料

安装AWStats

可以到AWStats官方网站下载安装,也可以从发行版提供的软件仓库安装。
以CentOS EPEL仓库中的AWStats为例,AWStats会被安装到以下文件夹:
/usr/share/awstats/wwwroot/
    程序文件夹
/etc/awstats/
    配置文件
/usr/share/awstats/wwwroot/cgi-bin/
    可执行文件文件夹

AWStats官网的rpm包会将其装在/usr/local/awstats中。

Lighttpd配置

首先启用必要的模块( server.modules ):
mod_access, mod_accesslog
    产生log
mod_cgi
    运行AWStats
mod_auth
    (可选)用户身份认证
mod_alias
    (可选)虚拟文件夹支持

如果想使用虚拟文件夹访问AWStats,可加入代码:

复制代码 代码如下:
alias.url = (
                "/awstatsclasses" => "/usr/share/awstats/wwwroot/classes/",
                "/awstatscss" => "/usr/share/awstats/wwwroot/css/",
                "/awstatsicons" => "/usr/share/awstats/wwwroot/icon/",
                "/awstats/" => "/usr/share/awstats/wwwroot/cgi-bin/",
                "/icon/" => "/usr/share/awstats/wwwroot/icon/"
              )
# provide awstats cgi-bin access
$HTTP["url"] =~ "/awstats/" {
      cgi.assign = ( ".pl" => "/usr/bin/perl" )
}

配置完成后,重启lighttpd

service lighttpd restart

如果一切正常,访问 http://你的域名/awstats/ ,应该就能看到AWStats的错误信息了。

配置AWStats

配置文件一般存在/etc/awstats/,可以从awstats.model.conf复制产生需要的配置文件。

cd /etc/awstats
cp awstats.model.conf awstats.目的域名.conf

编辑配置文件,主要注意LogFile(Lighttpd日志的位置)、SiteDomain(网站域名)、DirData(数据位置,lighttpd要有写权限)。DirData所指向的文件夹可能需要手动建立并设置权限。

复制代码 代码如下:
LogFile="/var/log/lighttpd/access.log"
LogType=W
# 支持虚拟主机(多域名)的关键,LogFormat=1是不行的。
LogFormat = "%host %virtualname %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"
 
SiteDomain="foobar"
HostAliases="localhost 127.0.0.1 REGEX[foobar$]"
 

# DirData 是存放数据的路径,lighttpd要有写权限。其所指向的文件夹可能需要手动建立并设置权限。

处理数据、查看结果

现在已经可以处理日志文件了:
/usr/share/awstats/wwwroot/cgi-bin/awstats.pl -update -config=域名

再通过 http://域名/awstats/awstats.pl?config=域名 可以看到分析结果。

定时更新

可以通过crond让程序每天执行。创建、编辑文件/etc/cron.daily/01awstats,如:  

复制代码 代码如下:
#!/bin/bash
AWS=/usr/share/awstats/wwwroot/cgi-bin/awstats.pl
 
# append your domain
DOMAINS="linux-wiki.cn www.linux-wiki.cn"
 
# loop through all domains
for d in ${DOMAINS}
do
   ${AWS} -update -config=${d}
done

其中AWStats.pl的路径、域名等可按需更改

用户认证

如果不想公开统计信息,可以设置lighttpd用户认证。此处介绍一种最简单的方式:

复制代码 代码如下:
auth.backend   = "plain"
# filename of the password storage for plain
auth.backend.plain.userfile = "用户名密码文件的完整路径"
 
auth.require = ("/awstats" =>
        (
        "method" => "basic",
        "realm" => "Authentication Awstats Management",
        "require" => "valid-user"
        ),
)

其中用户名密码文件格式很简单,如
user1:password1
user2:password2
不要更改"valid-user"。