利用AWStatus监控apache实时日志并认证登陆

简介:

  最近一直在研究awstats动态页面,主要想解决生成的日志页面点击二级链接报错问题,期间想下狠心给apache装perl模块,但是悲剧的是mod_perl最新版本不支持apache2.4版本,而本人公司线上服务器就是该版本,苦思冥想研究了几天,终于google到了一篇能够生成二级链接静态页面的awstats脚本的文档。

   研究完毕并线上测试成功,这里刚好在之前的基础上修改后分享给大家,也算是不用在apache装perl模块的一种补救方案,效果还不错。

系统环境:centOS6.3

Apache: httpd-2.4.4

配置:

# wget http://sourceforge.net/projects/awstats/files/AWStats/7.1.1/awstats-7.1.1.tar.gz/download

# tar -zxvf awstats-7.1.1.tar.gz -C /usr/local/

# cd  /usr/local/

# mv awstats-7.1.1 awstats

# cd  awstats/tools/

# perl  awstats_configure.pl

------------------------------

Need to create a new config file ?

Do you want me to build a new AWStats config/profile

file (required if first install) [y/N] ? y



What is the name of your web site or profile analysis ?

Example: www.mysite.com

Example: demo

Your web site, virtual server or profile name:

www.abc.com.cn

----------------------


一路默认回车即可完成awstats配置文件向导,该配置文件保存在/etc/awstats/下

注:该配置向导会在apache主配置文件末尾添加几处awstats配置内容,参照本博文配置的同学建议直接删除,以免引起页面无法访问

# vi  /etc/awstats/awstats.www.abc.com.cn.conf

修改如下几处配置

-------------

LogFile="/usr/local/apache2/logs/access_log"

#apache若建立分段日志见修改如下

LogFile="/usr/local/apache2/logs/www.abc.com.cn-%YYYY_%MM_%DD.access_log"

LogType=W

LogFormat=1

#此处log目录必须具有写入权限

DirData="/usr/local/apache2/htdocs/www.abc.com.cn/awstats/log"

AllowToUpdateStatsFromBrowser=1

#显示简体中文页面

Lang="cn"

------------

相应的apache分段日志配置:

# vi /usr/local/apache2/conf/httpd.conf

去掉注释#

Include conf/extra/httpd-vhosts.conf

# vi /usr/local/apache2/conf/extra//httpd-vhosts.conf

-------------

<VirtualHost *:80>

   DocumentRoot "/usr/local/apache2/htdocs/www.abc.com.cn"

   ServerName www.abc.com.cn

   CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/www.abc.com.cn-%Y_%m_%d.access_log 86400 480" combined

   ErrorLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/www.abc.com.cn-%Y_%m_%d.error_log 86400 480"

</VirtualHost>

-------------


创建Web方式查看流量的虚拟目录 www.abc.com.cn ,拷贝显示网页需要的图形工具(icon、css等)

# mkdir -p /usr/local/apache2/htdocs/www.abc.com.cn/awstats

# cd /usr/local/apache2/htdocs/www.abc.com.cn/awstats/

# mkdir log/ && chmod -R 777 log

# cd  /usr/local/awstats/wwwroot/

# cp -R  icon  /usr/local/apache2/htdocs/www.abc.com.cn/awstats

# cp -R  css  /usr/local/apache2/htdocs/www.abc.com.cn/awstats

# cp -R  classes  /usr/local/apache2/htdocs/www.abc.com.cn/awstats

# cp -R  js  /usr/local/apache2/htdocs/www.abc.com.cn/awstats

# cd /usr/local/apache2/htdocs/www.abc.com.cn/awstats/

# chmod -R 755 icon css classes js

添加计划任务脚本及内容,使crond每分钟执行一次脚本文件来刷新awstats web页面:

# vi /etc/rc.d/awstats.sh

版本一(只能生成一级链接日志分析)

-------------

#/bin/bash

PERL=/usr/bin/perl

awstats=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

$PERL $awstats -update -config=www.abc.com.cn

$PERL $awstats -config=www.abc.com.cn -output -staticlinks > /usr/local/apache2/htdocs/www.abc.com.cn/awstats/index.html

-------------

版本二(生成多级链接日志分析,推荐)

---------------


#/bin/bash

########################################

PERL=/usr/bin/perl

awstats=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

hostdir=/usr/local/apache2/htdocs/www.abc.com.cn/awstats

buildstaticpages=/usr/local/awstats/tools/awstats_buildstaticpages.pl

########################################

$buildstaticpages -update -config=www.abc.com.cn -lang=cn -dir=$hostdir -awstatsprog=$awstats


---------------

加入系统计划任务

# crontab -e

-------------

* * * * * /bin/sh /etc/rc.d/awstats.sh

-------------


awstats默认主页为awstats.www.abc.com.cn.html,方便web登录的话可以加一个index.html的软链接

# sh /etc/rc.d/awstats.sh

# cd /usr/local/apache2/htdocs/www.abc.com.cn/awstats

# ln -s awstats.www.abc.com.cn.html index.html


重启计划任务

# service crond restart


添加apache目录访问认证功能

# mkdir /usr/local/apache2/passwd/

# touch /usr/local/apache2/passwd/passwords

加密认证目录

# /usr/local/apache2/bin/htpasswd -cb /usr/local/apache2/passwd/passwords awstats 123456

返回错误提示

-------------

/usr/local/apache2/bin/httpd: error while loading shared libraries: libexpat.so.0: cannot open shared object file: No such file or directory

-------------

使用ldd查看httpd的依赖库信息

# ldd httpd

       linux-vdso.so.1 =>  (0x00007ffffcdff000)

       libpcre.so.1 => /usr/local/pcre/lib/libpcre.so.1 (0x00007fa43177b000)

       libaprutil-1.so.0 => /usr/lib64/libaprutil-1.so.0 (0x00007fa431543000)

  libexpat.so.0 => not found

       libapr-1.so.0 => /usr/lib64/libapr-1.so.0 (0x00007fa4310f0000)

       librt.so.1 => /lib64/librt.so.1 (0x0000003665c00000)

       libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003671c00000)

       libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003665000000)

       libc.so.6 => /lib64/libc.so.6 (0x0000003664c00000)

       libuuid.so.1 => /lib64/libuuid.so.1 (0x000000366c400000)

       libexpat.so.1 => /lib64/libexpat.so.1 (0x0000003669000000)

       libdb-4.7.so => /lib64/libdb-4.7.so (0x0000003667800000)

       /lib64/ld-linux-x86-64.so.2 (0x0000003664400000)

       libfreebl3.so => /lib64/libfreebl3.so (0x0000003672400000)

       libdl.so.2 => /lib64/libdl.so.2 (0x0000003664800000)

查找该库文件

# find / -name libexpat.so.0

返回 /usr/local/apache2/lib/libexpat.so.0

复制该库文件到apache默认库路径

# cp /usr/local/apache2/lib/libexpat.so.0 /usr/lib64/

重新查看依赖库

# ldd httpd

       linux-vdso.so.1 =>  (0x00007ffffcdff000)

       libpcre.so.1 => /usr/local/pcre/lib/libpcre.so.1 (0x00007fa43177b000)

       libaprutil-1.so.0 => /usr/lib64/libaprutil-1.so.0 (0x00007fa431543000)

libexpat.so.0 => /usr/lib64/libexpat.so.0 (0x00007fa43131c000)

       libapr-1.so.0 => /usr/lib64/libapr-1.so.0 (0x00007fa4310f0000)

       librt.so.1 => /lib64/librt.so.1 (0x0000003665c00000)

       libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003671c00000)

       libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003665000000)

       libc.so.6 => /lib64/libc.so.6 (0x0000003664c00000)

       libuuid.so.1 => /lib64/libuuid.so.1 (0x000000366c400000)

       libexpat.so.1 => /lib64/libexpat.so.1 (0x0000003669000000)

       libdb-4.7.so => /lib64/libdb-4.7.so (0x0000003667800000)

       /lib64/ld-linux-x86-64.so.2 (0x0000003664400000)

       libfreebl3.so => /lib64/libfreebl3.so (0x0000003672400000)

       libdl.so.2 => /lib64/libdl.so.2 (0x0000003664800000)

重新加密认证目录

# /usr/local/apache2/bin/htpasswd -cb /usr/local/apache2/passwd/passwords awstats 123456

注:此处若不加b参数,自行暗文添加认证密码,在访问认证页面后会无法通过,起初以为自己是不是输入密码的时候手误,google查了下,老外的意思说是apache2.4.4版本的BUG,解决办法只能换apache版本,或者加b参数直接明文添加密码,非2.4.4版本的apache可以无视。

# vi /usr/local/apache2/conf/httpd.conf

末尾添加:

注:添加Alias链接,防止awstats页面暴图:

-----------------


Alias /awstatscss " /usr/local/apache2/htdocs/www.abc.com.cn/awstats/css/"

Alias /awstatsicons " /usr/local/apache2/htdocs/www.abc.com.cn/awstats/icon/"

Alias /awstatsclasses "/usr/local/apache2/htdocs/www.abc.com.cn/awstats/classes/"


<Directory "/usr/local/apache2/htdocs/www.abc.com.cn/awstats/">

 AuthType Basic

 AuthName "Awstats"

 AuthUserFile /usr/local/apache2/passwd/passwords

 Require user awstats

</Directory>

-----------------

重启apache

# /usr/local/apache2/bin/apachectl restart


Web查看awstats流量监控.

注:windows访问需修改主机Hosts文件


浏览器地址栏输入http://www.abc.com.cn/awstats

094917393.jpg




010940915.png









     本文转自 showerlee 51CTO博客,原文链接:http://blog.51cto.com/showerlee/1183845,如需转载请自行联系原作者



相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
6月前
|
Prometheus 监控 Cloud Native
基于docker搭建监控系统&日志收集
Prometheus 是一款由 SoundCloud 开发的开源监控报警系统及时序数据库(TSDB),支持多维数据模型和灵活查询语言,适用于大规模集群监控。它通过 HTTP 拉取数据,支持服务发现、多种图表展示(如 Grafana),并可结合 Loki 实现日志聚合。本文介绍其架构、部署及与 Docker 集成的监控方案。
600 122
基于docker搭建监控系统&日志收集
|
6月前
|
Prometheus 监控 Java
日志收集和Spring 微服务监控的最佳实践
在微服务架构中,日志记录与监控对系统稳定性、问题排查和性能优化至关重要。本文介绍了在 Spring 微服务中实现高效日志记录与监控的最佳实践,涵盖日志级别选择、结构化日志、集中记录、服务ID跟踪、上下文信息添加、日志轮转,以及使用 Spring Boot Actuator、Micrometer、Prometheus、Grafana、ELK 堆栈等工具进行监控与可视化。通过这些方法,可提升系统的可观测性与运维效率。
629 1
日志收集和Spring 微服务监控的最佳实践
|
6月前
|
存储 缓存 监控
用 C++ 红黑树给公司电脑监控软件的日志快速排序的方法
本文介绍基于C++红黑树算法实现公司监控电脑软件的日志高效管理,利用其自平衡特性提升日志排序、检索与动态更新效率,并结合实际场景提出优化方向,增强系统性能与稳定性。
191 4
|
11月前
|
监控 测试技术 Go
告别传统Log追踪!GOAT如何用HTTP接口重塑代码监控
本文介绍了GOAT(Golang Application Tracing)工具的使用方法,通过一个Echo问答服务实例,详细展示了代码埋点与追踪技术的应用。内容涵盖初始化配置、自动埋点、手动调整埋点、数据监控及清理埋点等核心功能。GOAT适用于灰度发布、功能验证、性能分析、Bug排查和代码重构等场景,助力Go项目质量保障与平稳发布。工具以轻量高效的特点,为开发团队提供数据支持,优化决策流程。
687 90
|
11月前
|
消息中间件 运维 监控
智能运维,由你定义:SAE自定义日志与监控解决方案
通过引入 Sidecar 容器的技术,SAE 为用户提供了更强大的自定义日志与监控解决方案,帮助用户轻松实现日志采集、监控指标收集等功能。未来,SAE 将会支持 istio 多租场景,帮助用户更高效地部署和管理服务网格。
640 52
|
12月前
|
数据采集 运维 监控
数据采集监控与告警:错误重试、日志分析与自动化运维
本文探讨了数据采集技术从“简单采集”到自动化运维的演进。传统方式因反爬策略和网络波动常导致数据丢失,而引入错误重试、日志分析与自动化告警机制可显著提升系统稳定性与时效性。正方强调健全监控体系的重要性,反方则担忧复杂化带来的成本与安全风险。未来,结合AI与大数据技术,数据采集将向智能化、全自动方向发展,实现动态调整与智能识别反爬策略,降低人工干预需求。附带的Python示例展示了如何通过代理IP、重试策略及日志记录实现高效的数据采集程序。
548 7
数据采集监控与告警:错误重试、日志分析与自动化运维
|
9月前
|
人工智能 运维 监控
Aipy实战:分析apache2日志中的网站攻击痕迹
Apache2日志系统灵活且信息全面,但安全分析、实时分析和合规性审计存在较高技术门槛。为降低难度,可借助AI工具如aipy高效分析日志,快速发现攻击痕迹并提供反制措施。通过结合AI与学习技术知识,新手运维人员能更轻松掌握复杂日志分析任务,提升工作效率与技能水平。
|
11月前
|
监控 安全 BI
优化 Apache 日志记录的 5 个最佳实践
Apache 日志记录对于维护系统运行状况和网络安全至关重要,其核心包括访问日志与错误日志的管理。通过制定合理的日志策略,如选择合适的日志格式、利用条件日志减少冗余、优化日志级别、使用取证模块提升安全性及实施日志轮换,可有效提高日志可用性并降低系统负担。此外,借助 Eventlog Analyzer 等专业工具,能够实现日志的高效收集、可视化分析与威胁检测,从而精准定位安全隐患、评估服务器性能,并满足合规需求,为强化网络安全提供有力支持。
292 0
优化 Apache 日志记录的 5 个最佳实践
|
12月前
|
存储 监控 算法
基于 PHP 语言的滑动窗口频率统计算法在公司局域网监控电脑日志分析中的应用研究
在当代企业网络架构中,公司局域网监控电脑系统需实时处理海量终端设备产生的连接日志。每台设备平均每分钟生成 3 至 5 条网络请求记录,这对监控系统的数据处理能力提出了极高要求。传统关系型数据库在应对这种高频写入场景时,性能往往难以令人满意。故而,引入特定的内存数据结构与优化算法成为必然选择。
315 3
|
5月前
|
人工智能 数据处理 API
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
Apache Flink Agents 是由阿里云、Ververica、Confluent 与 LinkedIn 联合推出的开源子项目,旨在基于 Flink 构建可扩展、事件驱动的生产级 AI 智能体框架,实现数据与智能的实时融合。
946 6
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来

推荐镜像

更多