【注意】最后更新于 March 22, 2019,文中内容可能已过时,请谨慎使用。
使用awstata分析nginx以及vsftp日志。
安装
可以使用相应平台的包管理器安装,也可以直接到官网下载归档文件,解压其中的 wwwroot
放到nginx的根目录,或者在nginx config文件设置alias,可以参考 https://wiki.archlinux.org/index.php/awstats 或者tools/nginx/awstats-nginx.conf
文件。
另外,需要 perl,这个系统一般都带有。
配置
这部分比较复杂,可以使用配套的tools 里面的 awstats_configure.pl
交互式生成配置文件,也可以修改 /etc/awstats/awstats.model.conf
,包管理器安装才有的。
我是用的 pacman
安装的,所以直接复制修改该model文件,将model
改成自己的任务名,比如web
或则ftp
啥的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
LogFile="/var/log/nginx/access.log"
LogType=W # 默认 web模式
LogFormat=1
SiteDomain="web-server" # 改成你想显示的
AllowToUpdateStatsFromBrowser=0 # 是否可以通过网页更新,具体好坏里面有说明
DirIcons="/awstatsicons" # 如果你修改了该路径
UseFramesWhenCGI=0 # 是否开启侧边栏,0 不开
ShowFlagLinks="en cn tw de jp" # 显示语言切换按钮
Logo="awstats_logo1.png" # logo 图片
LogoLink="/" # logo 链接
|
上面是 nginx 日志的,对于 vsftp 只有一点区别,就是需要自己定义 LogFormat
,如下:
1
2
3
4
5
6
7
8
|
LogFile="/var/log/vsftpd.log" # vsftp 需要打开对应的日志开关!!!
LogType=F # ftp 模式
LogFormat="%time3 %other %host %bytesd %url %other %other %method %other %logname %other %code %other %other" # 这个需要和你的 vsftp log 文件列匹配。
# 其他类似
|
需要注意文件权限问题,比如 wwwroot里面的 需要chown http(你的 nginx 运行用户),log文件需要有读权限,否则你需要使用 root 运行下面家要说的生成命令。
生成
需要使用 crontab (cronie) 定时运行更新命令。
1
2
3
4
|
sudo crontab -e # 创建 root 用户的定时任务
# 每个 1 小时运行一次
7 */1 * * * /usr/share/awstats/tools/awstats_updateall.pl now -awstatsprog=/usr/share/webapps/awstats/awstats/awstats.pl > /home/awstatus.log
# 因为配置文件在 etc 里面,所以上面没有指明路径。
|
因为我是用的是nginx alias 方式,所以 -awstatsprog 路径就是安装默认路径。
其他
效果展示:
http://mirrors.hust.edu.cn/visitor/
http://rachpt.iok.la/awstats/awstats.pl?config=nginx
http://rachpt.iok.la/awstats/awstats.pl?config=vsftp