Linux日志分析工具之AWStats

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
日志服务 SLS,月写入数据量 50GB 1个月
云解析 DNS,旗舰版 1个月
简介: AWStats是一款功能强大且功能强大的免费工具,可以图形方式生成高级Web,流媒体,ftp或邮件服务器统计信息。此日志分析器用作CGI或命令行, 并在几个图形网页中显示您的日志包含的所有可能信息。

什么是AWStats

AWStats是一款功能强大且功能强大的免费工具,可以图形方式生成高级Web,流媒体,ftp或邮件服务器统计信息。此日志分析器用作CGI或命令行, 并在几个图形网页中显示您的日志包含的所有可能信息。

它使用部分信息文件来经常快速地处理大型日志文件。它可以分析来自所有主要服务器工具的日志文件,如Apache日志文件(NCSA组合/ XLF / ELF日志格式或通用/ CLF日志格式),WebStar,IIS(W3C日志格式)以及许多其他Web,代理,wap,流服务器,邮件服务器和一些ftp服务器。


详情介绍


AWStats是在Sourceforge上发展很快的一个基于Perl的WEB日志分析工具。相对于另外一个非常优秀的开放源代码的日志分析工具Webalizer,AWStats的优势在于:

界面友好:可以根据浏览器直接调用相应语言界面(有简体中文版)

基于Perl:并且很好的解决了跨平台问题,系统本身可以运行在GNU/Linux上或Windows上(安装了ActivePerl后);分析的日志直接支持Apache格式 (combined)和IIS格式(需要修改)。Webalizer虽然也有Windows平台版,但目前已经缺乏 维护;AWStats完全可以实现用一套系统完成对自身站点不同WEB服务器:GNU/Linux/Apache和Windows/IIS服务器的统一统计。

效率比较高:AWStats输出统计项目比Webalizer丰富了很多,速度仍可以达到Webalizer的1/3左右,对于一个日访问量 百万级的站点,这个速度都是足够的;

配置/定制方便:系统提供了足够灵活但缺省也很合理的配置规则,需要修改的缺省配置不超过3,4项就可以开始运行,而且修改和扩展的插件还是 比较多的;

AWStats的设计者是面向精确的"Human visits"设计的,因此很多搜索引擎的机器人访问都被过滤掉了,因此有可能比其他日志统计工具统计的数字要低,来自公司内部的访问也可以通过IP过滤 设置过滤掉。

提供了很多扩展的参数统计功能:使用ExtraXXXX系列配置生成针对具体应用的参数分析会对产品分析非常有用。


AWStats 是一个免费的强大而有个性的工具,带来先进的网络,流量,FTP或邮件服务器统计图. 本日志分析器作为CGI或从命令行在数个图形网页中显示你日志中包含的所有可能信息. 它利用一部分档案资料就能经常很快地处理大量日志档案, 它能分析日志文件来自从各大服务器工具 ,如 Apache日志档案 s (NCSA combined/XLF/ELF log format or common/CLF log format), WebStar, IIS (W3C的日志格式)及许多其他网站,Proxy(代理服务器)、Wap、流量服务器、邮件服务器和一些 FTP服务器 .


83dbfd4c7e1491fabd0a9efdc3994c7.png



📝实验配置与实验


拓扑图:

6aa3e868ba6f6bfed0e5ab56db4109a.png


推荐步骤:

在Centos01上安装apache配置网站,修改apache网站根目录/www/设置网站主页

在Centos02上安装DNS使用域名 www.duanjiaxu.com访问日志

在Centos01上安装AWStats监控apache访问

在Centos01配置访问AWstats监控页面使用基本验证防止未经授权用户查看监控后台,在Centos01上配置安装cronolog日志分析工具安装每天生成日志


一、在Centos01上安装apache配置网站,修改apache网站根目录www设置网站主页


1、在Centos01上安装apache


1)从系统光盘切换到云计算光盘

a9f2f70b6b97df9e8d85c9e6c933d97.png


2)挂载云计算光盘

[root@centos03 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载

3)解压httpd程序到/usr/src

[root@centos03 ~]# tar zxf /mnt/httpd-2.2.17.tar.gz -C /usr/src/
[root@centos03 ~]# cd /usr/src/httpd-2.2.17/

4)编译安装

[root@centos01 httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
[root@centos01 httpd-2.2.17]# make && make install

5)查看是否安装成功

[root@centos01 httpd-2.2.17]# ls /usr/local/
bin  etc  games  httpd  include  lib  lib64  libexec  sbin  share  src

6)生成服务控制文件

root@centos01 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd   //生成服务控制文件
[root@centos01 ~]# chmod +x /etc/init.d/httpd     //添加执行权限
[root@centos01 ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/   //优化命令


2、配置网站


1)设置apache服务开机自启


[root@centos01 ~]# vim /etc/init.d/httpd    //进入apache服务控制文件
---
2 #chkconfig:35 80 21   //运行级 3,5 启动,启动优先权为80,停止优先权为21。
3 #description:Apache Server    //描述
---
[root@centos01 ~]# chkconfig --add httpd    //添加httpd服务
[root@centos01 ~]# chkconfig --level 35 httpd on    //设置开机自启
[root@centos01 ~]# httpd -t   //检查配置文件修改是否有误
httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe25:91b5 for ServerName
Syntax OK

2)配置保持连接

[root@centos01 ~]# cp /usr/local/httpd/conf/httpd.conf /usr/local/httpd/conf/httpd.conf.bak   //备份主配置文件,防止修改错误原文件丢失
[root@centos01 ~]# vim /usr/local/httpd/conf/httpd.conf   //进入主配置文件
---
398 Include conf/extra/httpd-default.conf   //开启保持连接功能
---
[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-default.conf     //修改保持连接
Timeout 3   //超时时间
KeepAlive On    //保持连接默认开启
MaxKeepAliveRequests 1000   //最大连接并发量

567e51e543a2cb24dfeb37bc8249a17.png


3)重新启动apache服务

[root@centos01 ~]# systemctl restart httpd


3、修改apache网站根目录/www/设置网站主页


1)新建网站根目录

[root@centos01 ~]# mkdir /www     
[root@centos01 ~]# echo "www.duanjiaxu.com" > /www/index.html
---
105 DocumentRoot "/www"     //修改网站根目录
133 <Directory "/www">    //授权网站根目录 
134     Options Indexes FollowSymLinks
135     AllowOverride None
136     Order allow,deny
137     Allow from all
138 </Directory>
---
[root@centos01 ~]# httpd -t   //检查主配置文件修改是否有误
httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe25:91b5 for ServerName
Syntax OK
[root@centos01 ~]# systemctl restart httpd    重新启动服务

247d6e045555acef3ebc73291f9b5e0.pngc9b567f59d7280ca171060e27e31f47.png


2)配置IP的地址和DNS

[root@centos01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32   //进入网卡配置文件
---
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.10   //IP地址
NETMASK=255.255.255.0   //子网掩码
DNS1=192.168.100.20   //DNS 
---
[root@centos01 ~]# systemctl restart network      //重新启动网卡服务  
[root@centos01 ~]# cat /etc/resolv.conf     //查看DNS是否配置功能
# Generated by NetworkManager
nameserver 192.168.100.20

7b93fde6f91230d231efbb64d452bef.png


3)使用win10虚拟机验证

ee2d5b72ac51f37564388c1ff12217a.png


二、在Centos02上安装DNS使用域名www.duanjiaxu.com访问日志


1、在Centos02上安装DNS服务


1)配置IP地址和DNS


[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
---
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.20   //IP地址
NETMASK=255.255.255.0   //子网掩码
DNS1=192.168.100.20   //DNS
---
[root@centos02 ~]# systemctl restart network      //重新启动网卡服务
[root@centos02 ~]# cat /etc/resolv.conf       //查看DNS是否配置成功
# Generated by NetworkManager
nameserver 192.168.100.20

98136cc81c39d7a6a5ca587fda53d34.png


2、安装DNS服务


1)挂载系统光盘

[root@centos02 ~]# mount /dev/cdrom /mnt/   //挂载系统光盘
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos02 ~]# ls /mnt/     //查看系统光盘是否挂载成功
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL

2)安装DNS程序包

[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm 
警告:/mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:bind-32:9.9.4-50.el7             ################################# [100%]
[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm 
警告:/mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:bind-chroot-32:9.9.4-50.el7      ################################# [100%]


3、修改DNS配置文件


1)修改DNS主配置文件

[root@centos02 ~]# echo "" > /etc/named.conf     //清空主配置文件
[root@centos02 ~]# vim /etc/named.conf      //进入到主配置文件
---
options {
        listen-on port 53 { any; };
};
zone "duanjiaxu.com" IN {
        type master;
        file "var/named/duanjiaxu.com.zone";
};
[root@centos02 ~]# named-checkconf /etc/named.conf      //检查主配置文件是否修改正确

8448b32d513e3a92fbbbc64ebbd6c3d.png


2)修改DNS区域配置文件

[root@centos02 ~]# vim /var/named/duanjiaxu.com.zone    //进入区域配置文件
---
$TTL            86400
@               SOA             duanjiaxu.com.  root.duanjiaxu.com. (
                2023020210
                1H
                15M
                1W
                1D
)
@               NS              centos02.duanjiaxu.com.
centos02        A               192.168.100.20
www             A               192.168.100.10
---
[root@centos02 ~]# named-checkzone duanjiaxu.com /var/named/duanjiaxu.com.zone      //检查主配置文件是否修改成功
zone duanjiaxu.com/IN: loaded serial 2023020210
OK
---
[root@centos02 ~]# systemctl start named      //启动DNS服务
[root@centos02 ~]# systemctl enable named   //设置开机自启

27f65302bb5cd67d413db912fcd6e53.png


4、验证


1)查看DNS服务是否已经启动

[root@centos02 ~]# netstat -anptu | grep named
tcp        0      0 192.168.100.20:53       0.0.0.0:*               LISTEN      42964/named         
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      42964/named         
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      42964/named         
tcp6       0      0 ::1:953                 :::*                    LISTEN      42964/named         
udp        0      0 192.168.122.1:53        0.0.0.0:*                           42964/named         
udp        0      0 192.168.100.20:53       0.0.0.0:*                           42964/named         
udp        0      0 127.0.0.1:53            0.0.0.0:*                           42964/named

2)查看是否能够成功解析域名

[root@centos02 ~]# nslookup www.duanjiaxu.com
Server:   192.168.100.20
Address:  192.168.100.20#53
Name: www.duanjiaxu.com
Address: 192.168.100.10

3)使用win10虚拟机验证

6dcc208302bb4a4b67788d7890a3c17.png


4)查看日志

[root@centos01 ~]# tail -f /usr/local/httpd/logs/access_log

6967cec23db9af92545f37d26ba1419.png


三、在Centos01上安装AWStats监控 apache访问


1、部署AWStats


1)解压安装AWStats


[root@centos01 ~]# tar zxf /mnt/awstats-7.3.tar.gz -C /usr/src/   //解压AWStats程序
[root@centos01 ~]# mv /usr/src/awstats-7.3/ /usr/local/awstats    //剪切到/usr/local/awstats

2)配置工具添加执行权限

[root@centos01 ~]# cd  /usr/local/awstats/tools/
[root@centos01 tools]# chmod +x ./*     //添加执行权限

e16cc77cec2de486e7dce4313250b1c.png


3)配置AWStats

[root@centos01 tools]# ./awstats_configure.pl 
---
>/usr/local/httpd/conf/httpd.conf    //加载apache的主配置文件
> www.duanjiaxu.com      //访问apache的域名
> http://localhost/awstats/awstats.pl?config=www.duanjiaxu.com   //访问AWStats的域名

加载apache的主配置文件cd2136cfe35306c491e9ccb4987c345.png


访问apache的域名b22b7eeb4a69a3cf09814138de8b907.png

访问AWStats的域名

e66f033fb8b16a9bb9790d8ab9da84d.png


2、修改AWStats的配置文件


1)修改AWStats配置文件

[root@centos01 tools]# vim /etc/awstats/awstats.www.duanjiaxu.com.conf      //进入配置文件
---
51 LogFile="/usr/local/httpd/logs/access_log"     //指定apache日志的位置
204 DirData="/var/lib/awstats"        //数据存储位置

2)创建AWStats数据存储位置

[root@centos01 tools]# mkdir /var/lib/awstats

3)重新访问apache网站查看日志

5f8c1e84377d5c90433fabe06cac97c.png


3、配置AWStats采集日志


1)更新AWStats日志575e321cbbde2554c55f1c6653a530e.png


2)设置计划任务

[root@centos01 ~]# crontab -e   //更新日志计划任务
*/2     *       *       *       *       /usr/local/awstats/tools/awstats_updateall.pl now

3)配置页面跳转

[root@centos01 ~]# vim /www/awstats.html
----
<html>
<head>
        <meta http-equiv=refresh content="0;url=http://www.duanjiaxu.com/awstats/awstats.pl?config=www.duanjiaxu.com"/>
</head>
<body></body>
</html>

7001e04e8e054f04b329e26e1631500.png


4、访问AWStats监控后台


使用http://www.duanjiaxu.com/awstats.html访问

0c758acdd82820f6a383955e1cc24f6.png


四、在Centos01配置访问AWStats监控页面使用借本验证防止未经授权的用户查看监控后台


1、使用基本验证防止未授权用户查看监控后台


1)切换到系统关盘然后挂载

[root@centos01 ~]# umount /mnt/   卸载云计算光盘
[root@centos01 ~]# mount /dev/cdrom /mnt/   挂载系统光盘
mount: /dev/sr0 写保护,将以只读方式挂载


2)安装验证工具

[root@centos01 ~]# rpm -ivh /mnt/Packages/httpd-tools-2.4.6-67.el7.centos.x86_64.rpm 
警告:/mnt/Packages/httpd-tools-2.4.6-67.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:httpd-tools-2.4.6-67.el7.centos  ################################# [100%]
您在 /var/spool/mail/root 中有新邮件
3)生成验证数据库
[root@centos01 ~]# htpasswd -c /usr/local/httpd/password duanjiaxu
New password:     
Re-type new password: 
Adding password for user duanjiaxu
---
root@centos01 ~]# cat /usr/local/httpd/password       //查看是否创建成功
duanjiaxu:ukG3goXhhatEE

3)生成验证数据库

[root@centos01 ~]# htpasswd -c /usr/local/httpd/password duanjiaxu
New password:     
Re-type new password: 
Adding password for user duanjiaxu
----
root@centos01 ~]# cat /usr/local/httpd/password     //查看是否创建成功
duanjiaxu:ukG3goXhhatEE

4)修改apache主配置文件加载身份认证

[root@centos01 ~]# vim /usr/local/httpd/conf/httpd.conf
<Directory "/usr/local/awstats/wwwroot">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthName "access"
    AuthType Basic
    AuthUserFile /usr/local/httpd/password
    Require valid-user

7f6e1c3c28412465deecdfa0762f7d8.png

5)重新启动

[root@centos01 ~]# systemctl restart httpd


2、使用win10虚拟机验证

90a160bec9b73853640870cda4aac04.pngab263c2fd212bf321ef0521176f2292.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
自然语言处理 数据库 iOS开发
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
107 12
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
|
23天前
|
运维 安全 Linux
试试Linux设备命令行运维工具——Wowkey
WowKey 是一款专为 Linux 设备设计的命令行运维工具,提供自动化、批量化、标准化的运维解决方案。它简单易用、高效集成且无依赖,仅需 WIS 指令剧本文件、APT 账号密码文件和 wowkey 命令即可操作。通过分离鉴权与执行过程,WowKey 让运维人员专注于决策,摆脱繁琐的交互与执行工作,大幅提升运维效率与质量。无论是健康检查、数据采集还是配置更新,WowKey 都能助您轻松应对大规模设备运维挑战。立即从官方资源了解更多信息:https://atsight.top/training。
|
23天前
|
数据采集 运维 安全
Linux设备命令行运维工具WowKey问答
WowKey 是一款用于 Linux 设备运维的工具,可通过命令行手动或自动执行指令剧本,实现批量、标准化操作,如健康检查、数据采集、配置更新等。它简单易用,只需编写 WIS 指令剧本和 APT 帐号密码表文件,学习成本极低。支持不同流派的 Linux 系统,如 RHEL、Debian、SUSE 等,只要使用通用 Shell 命令即可通吃Linux设备。
|
1月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
2月前
|
监控 安全 Ubuntu
Linux下如何安装配置Fail2ban防护工具
通过以上步骤,可以在Linux系统中成功安装和配置Fail2ban,从而有效保护服务器免受暴力破解等攻击。Fail2ban通过实时监控日志文件,自动更新防火墙规则,为系统安全提供了一层重要的保护。
324 36
|
2月前
|
Linux API
Linux下载工具wget与curl
`wget` 是一个用于从网络下载文件的命令行工具,支持HTTP、HTTPS和FTP协议。它能自动处理下载中断,并支持递归下载网站内容。基本用法:`wget URL`,可指定文件名(`-O`)、保存目录(`-P`),还支持断点续传(`-c`)、限速(`--limit-rate`)和递归下载(`-r`)。相比之下,`curl` 更侧重于发送各种HTTP请求(如GET、POST),并支持文件上传、自定义请求头和cookie等功能。
86 10
|
2月前
|
存储 Ubuntu 前端开发
Linux软件包管理工具概览
在Linux系统中,dpkg、apt、rpm、yum和dnf是几种常见的包管理工具,它们分别属于不同的Linux发行版或家族,并有着各自的诞生顺序和特点。下面将按照这些工具的诞生顺序,并结合Debian、Red Hat、CentOS、Ubuntu和Kali等系统,进行详细的介绍。
60 4
|
5月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
1700 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
4月前
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
128 9
|
2月前
|
存储 SQL 关系型数据库
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log、原理、写入过程;binlog与redolog区别、update语句的执行流程、两阶段提交、主从复制、三种日志的使用场景;查询日志、慢查询日志、错误日志等其他几类日志
189 35
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
下一篇
oss创建bucket