开发者社区> 技术小胖子> 正文

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



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
19579 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
14585 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
18622 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
16960 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
18523 0
21117
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载