草庐IT

Linux日志分析工具之AWStats

微笑的段嘉许 2023-03-28 原文

Linux日志分析工具之AWStats

?博客主页: ​​微笑的段嘉许博客主页​

?欢迎关注?点赞?收藏⭐留言?

?本文由微笑的段嘉许原创!

?51CTO首发时间:?2023年2月2日?

✉️坚持和努力一定能换来诗与远方!

?作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

不要偷走我小火车哦~ ~ ~


什么是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服务器 .


?实验配置与实验

拓扑图:

推荐步骤:

  • 在Centos01上安装apache配置网站,修改apache网站根目录/www/设置网站主页
  • 在Centos02上安装DNS使用域名​​www.duanjiaxu.com​​访问日志
  • 在Centos01上安装AWStats监控apache访问
  • 在Centos01配置访问AWstats监控页面使用基本验证防止未经授权用户查看监控后台,在Centos01上配置安装cronolog日志分析工具安装每天生成日志

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

1、在Centos01上安装apache

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

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 //最大连接并发量

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 重新启动服务

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

3)使用win10虚拟机验证

二、在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

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 //检查主配置文件是否修改正确

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 //设置开机自启

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虚拟机验证

4)查看日志

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

三、在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 ./* //添加执行权限

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的主配置文件​

​访问apache的域名​

​访问AWStats的域名​

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网站查看日志

3、配置AWStats采集日志

1)更新AWStats日志

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>

4、访问AWStats监控后台

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

四、在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

5)重新启动

[root@centos01 ~]# systemctl restart httpd

2、使用win10虚拟机验证


?作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

有关Linux日志分析工具之AWStats的更多相关文章

  1. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  2. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  3. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  4. ruby-on-rails - 有没有一种工具可以在编码时自动保存对文件的增量更改? - 2

    我最喜欢的Google文档功能之一是它会在我工作时不断自动保存我的文档版本。这意味着即使我在进行关键更改之前忘记在某个点进行保存,也很有可能会自动创建一个保存点。至少,我可以将文档恢复到错误更改之前的状态,并从该点继续工作。对于在MacOS(或UNIX)上运行的Ruby编码器,是否有具有等效功能的工具?例如,一个工具会每隔几分钟自动将Gitcheckin我的本地存储库以获取我正在处理的文件。也许我有点偏执,但这点小保险可以让我在日常工作中安心。 最佳答案 虚拟机有些人可能讨厌我对此的回应,但我在编码时经常使用VIM,它具有自动保存功

  5. ruby - Sinatra 中的全局救援和日志记录异常 - 2

    如何在出现异常时指定全局救援,如果您将Sinatra用于API或应用程序,您将如何处理日志记录? 最佳答案 404可以在not_found方法的帮助下处理,例如:not_founddo'Sitedoesnotexist.'end500s可以通过调用带有block的错误方法来处理,例如:errordo"Applicationerror.Plstrylater."end错误的详细信息可以通过request.env中的sinatra.error访问,如下所示:errordo'Anerroroccured:'+request.env['si

  6. ruby-on-rails - 使用 Ruby 标准 Logger 每天只创建一个日志 - 2

    我正在使用ruby​​标准记录器,我想要每天轮换一次,所以在我的代码中我有:Logger.new("#{$ROOT_PATH}/log/errors.log",'daily')它运行完美,但它创建了两个文件errors.log.20130217和errors.log.20130217.1。如何强制它每天只创建一个文件? 最佳答案 您的代码对于长时间运行的应用程序是正确的。发生的事情是您在给定的一天多次运行代码。第一次运行时,Ruby会创建一个日志文件“errors.log”。当日期改变时,Ruby将文件重命名为“errors.log

  7. ruby - Cucumber/Savon 省略或删除日志输出 - 2

    在运行Cucumber测试时,我得到(除了测试结果)大量调试/日志相关的输出形式:D,[2013-03-06T12:21:38.911829#49031]DEBUG--:SOAPrequest:D,[2013-03-06T12:21:38.911919#49031]DEBUG--:Pragma:no-cache,SOAPAction:"",Content-Type:text/xml;charset=UTF-8,Content-Length:1592W,[2013-03-06T12:21:38.912360#49031]WARN--:HTTPIexecutesHTTPPOSTusingt

  8. ruby-on-rails - faraday如何设置日志级别 - 2

    我最近将我的http客户端切换到faraday,一切都按预期工作。我有以下代码来创建连接:@connection=Faraday.new(:url=>base_url)do|faraday|faraday.useCustim::Middlewarefaraday.request:url_encoded#form-encodePOSTparamsfaraday.request:jsonfaraday.response:json,:content_type=>/\bjson$/faraday.response:loggerfaraday.adapterFaraday.default_ada

  9. ruby - 使用 Ruby 开发工具包将文件上传到 Amazon S3 - 2

    我正在尝试上传文件。一个简单的hello.txt。我正在关注文档,但无法将其上传到我的存储桶。#STARTAWSCLIENTs3=Aws::S3::Resource.newbucket=s3.bucket(BUCKET_NAME)begins3.buckets[BUCKET_NAME].objects[KEY].write(:file=>FILE_NAME)puts"Uploadingfile#{FILE_NAME}tobucket#{BUCKET_NAME}."bucket.objects.eachdo|obj|puts"#{obj.key}=>#{obj.etag}"endresc

  10. ruby - 在 StockChart (highchart) 中以编程方式显示柱形图的工具提示 - 2

    我有一个Highstock图表(带有标记和阴影的线条),并且想以编程方式显示一个highstock工具提示,例如,当我选择某个表上的一行(包含图表数据)我想显示相应的highstock工具提示。这可能吗? 最佳答案 股票图表thissolution不起作用:在thisexample你必须更换这个:chart.tooltip.refresh(chart.series[0].data[i]);为此:chart.tooltip.refresh([chart.series[0].points[i]]);解决方案可用here.

随机推荐