利用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,如需转载请自行联系原作者



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
17天前
|
存储 Kubernetes 监控
提升日志管理效率:掌握CKA认证中的边车容器技巧
提升日志管理效率:掌握CKA认证中的边车容器技巧
27 0
|
3月前
|
存储 Prometheus 监控
Prometheus vs. ELK Stack:容器监控与日志管理工具的较量
随着容器化技术的广泛应用,容器监控与日志管理成为了关键任务。本文将对两种常用工具进行比较与选择,分别是Prometheus和ELK Stack。Prometheus是一款开源的监控系统,专注于时序数据的收集和告警。而ELK Stack则是一套完整的日志管理解决方案,由Elasticsearch、Logstash和Kibana三个组件组成。通过比较它们的特点、优势和适用场景,读者可以更好地了解如何选择适合自己需求的工具。
|
4月前
|
存储 算法 数据挖掘
带你读《Apache Doris 案例集》——06 Apache Doris 助力中国联通万亿日志数据分析提速10倍(2)
带你读《Apache Doris 案例集》——06 Apache Doris 助力中国联通万亿日志数据分析提速10倍(2)
|
4月前
|
存储 安全 数据挖掘
带你读《Apache Doris 案例集》——06 Apache Doris 助力中国联通万亿日志数据分析提速10倍(1)
带你读《Apache Doris 案例集》——06 Apache Doris 助力中国联通万亿日志数据分析提速10倍(1)
|
30天前
|
Prometheus 监控 Kubernetes
Kubernetes 集群监控与日志管理实践
【2月更文挑战第29天】 在微服务架构日益普及的当下,Kubernetes 已成为容器编排的事实标准。然而,随着集群规模的扩大和业务复杂度的提升,有效的监控和日志管理变得至关重要。本文将探讨构建高效 Kubernetes 集群监控系统的策略,以及实施日志聚合和分析的最佳实践。通过引入如 Prometheus 和 Fluentd 等开源工具,我们旨在为运维专家提供一套完整的解决方案,以保障系统的稳定性和可靠性。
|
27天前
|
Prometheus 监控 Kubernetes
Kubernetes 集群的监控与日志管理实践
【2月更文挑战第31天】 在微服务架构日益普及的今天,容器编排工具如Kubernetes已成为部署、管理和扩展容器化应用的关键平台。然而,随着集群规模的扩大和业务复杂性的增加,如何有效监控集群状态、及时响应系统异常,以及管理海量日志信息成为了运维人员面临的重要挑战。本文将深入探讨 Kubernetes 集群监控的最佳实践和日志管理的高效策略,旨在为运维团队提供一套系统的解决思路和操作指南。
24 0
|
1月前
|
监控 API Apache
实战!配置DataDog监控Apache Hudi应用指标
实战!配置DataDog监控Apache Hudi应用指标
21 0
|
1月前
|
存储 消息中间件 监控
Zoom 基于Apache Hudi 的流式日志处理实践
Zoom 基于Apache Hudi 的流式日志处理实践
43 1
|
2月前
|
存储 监控 关系型数据库
ELK架构监控MySQL慢日志
ELK架构监控MySQL慢日志
|
2月前
|
消息中间件 存储 监控
利用Scala编写公司内部监控软件的实时日志监控模块
在当今的软件开发领域,监控是确保系统稳定性和性能的关键一环。随着公司业务的不断扩展,我们迫切需要一套高效、可靠的实时日志监控系统,以及能够自动提交数据到网站的解决方案。本文将介绍如何利用Scala编写公司内部监控软件的实时日志监控模块,并探讨如何自动将监控到的数据提交到网站。
139 2

热门文章

最新文章

推荐镜像

更多