Linux 的真相,第五部分
欢迎大家回到系统管理员专栏,在这里我们每周都尝试揭开您的 Linux 系统的神秘面纱。在我深入本周的主题(主题内容精彩纷呈,包含绚丽的图表)之前,请允许我先介绍一些背景知识。偶尔会有一些专栏的新读者给我发邮件,索要本系列(或其它系列)往期文章的链接。首先,我向大家表示热烈的欢迎。
有两种方法可以找到往期文章。一种方法是向下滚动到“新闻和信息”栏的底部,然后点击“更多文章”链接。“专栏”可以通过点击“系统管理”链接找到。您也可以访问我的网站 Salmar.com。这个链接 (http://www.salmar.com/marcel/ljwritings.html) 将直接带您到一个包含往期文章的页面,其中有每篇文章的简要介绍。闲话少说,让我们进入正题。
上周,我介绍了一款名为 Analog 的 Web 服务器日志分析器。在文章的结尾,我向您承诺下次见面时会带来更多亮点和趣味。今天,我兑现我的承诺。Analog 速度快、高度可配置且输出简洁。但如果您像我一样,您可能会(并且偶尔会)被用于表示信息的多彩图表和图示所吸引。除了 Analog 之外,我还经常使用另一个 Web 服务器分析工具,一个名为 Webalizer 的小工具。
要了解您可以从 Webalizer 获得的输出类型,请查看官方网站上的这个 示例。您可以在瞬间看到,通过显示基于页面、文件和点击次数的每周甚至每小时平均值的图表,您的网站访问量在最近几个月内发生了怎样的变化。即使您个人对 Webalizer 的输出无动于衷,您的管理层也会被打动。(他们 喜欢 那种东西。相信我。)最棒的是,Webalizer 是免费的,并根据 GNU 通用公共许可证分发。
官方网站 http://www.mrunix.net/webalizer/ 提供的信息很好,但我发现它往往会被下载请求搞得不堪重负。如果您因为 FTP 传输过多而被拒绝,请尝试位于奥地利的欧洲镜像站点 http://webalizer.dexa.org/。
您还会找到 Webalizer 代码的 2.x 开发版本,但为了本文的目的,我将讨论当前的(稳定)1.3x 版本。对于那些处理多个平台的人来说,您会很高兴得知 Webalizer 可以在各种系统上运行,包括 Solaris、BSD、MacOS 和许多其他系统。某些平台提供二进制文件,但如果您没有看到自己列在那里,请不要担心;从源代码构建很容易。
好的。题外话。只有一个可能的陷阱;它是这样的。Webalizer 使用 GD 图形库 来构建那些“非常酷”的伪 GIF 内联图形,并且 GIF 文件格式的压缩算法受到 专利 限制,最近这些限制引起了很多争议。这部分意味着 GD 库可能包含在您的 Linux 发行版中,也可能不包含。Webalizer 下载页面确实提供了一个链接,如果您需要它的话。我在 Red Hat 6.2 系统上构建了我的 Webalizer 二进制文件,该系统仍然提供了这些库;很可能目前您的系统也可能拥有它们。那些想要了解有关整个 GIF 专利问题的更多详细信息的人可以访问 GNU 网站(别忘了回来)。
让我们继续。最新的 1.3x 版本是 webalizer-1.30-04-src.tgz。步骤很简单。您解压源代码,将目录更改为生成的发行版目录,然后编译。这是我在我的系统上执行的操作。顺便说一句,由于我尝试了太多不同的软件包,我将构建目录放在一个一致的位置,这使得稍后清理起来容易得多。如果您也经常进行实验,您可能会发现这种方法也很有帮助。闲话少说;是时候构建了。
cd /data1/builds tar -xzvf webalizer-1.30-04-src.tgz cd webalizer-1.20-04 ./configure make make install
您可以使用任何您希望的用户 ID 执行所有这些步骤,但 “make install” 部分必须以 root 用户身份完成。现在您已经安装了 Webalizer,您将进行一些配置更改。(惊讶吗?)Webalizer 需要知道您的日志文件保存在哪里,以及应该在何处以及如何生成和存储报告。相信我;这比听起来容易。
您可能已经注意到,构建过程创建了一个 /etc/webalizer.conf.sample 文件。配置文件的默认位置是 /etc/webalizer.conf,我建议您将其保留在那里。首先,制作示例文件的副本并编辑该文件。让我们假设在这种情况下我将使用 pico 作为我的编辑器。
cp /etc/webalizer.conf.sample /etc/webalizer.conf pico /etc/webalizer.conf
我所做的只是更改了此文件中的四行,如下所示
LogFile /etc/httpd/logs/access_log OutputDir /home/httpd/html/usage/ Incremental yes HostName myhost.mydomain.com
LogFile 参数标识您的 access_log 文件的位置。上面的路径是 Red Hat 安装的典型路径。上周,我为您提供了一些关于在任何系统上查找该文件位置的技巧,但您会记得,如果您从头开始构建 Apache,最可能的位置是 /usr/local/apache/logs/access_log。
下一个参数 OutputDir 定义 Webalizer 报告的位置。我在我的 Web 服务器上的文档根目录下创建了一个名为 “usage” 的目录。同样,上面的路径暗示了一个 Red Hat 系统。接下来是 Incremental yes。如果您的日志文件每月轮换多次,这是一个有用的小参数(我确实推荐它)。它允许 Webalizer 从上次中断的地方继续,即使这意味着从一个全新的日志开始(还记得 logrotate 创建的那些 “.1”、“.2” 等文件吗?)。最后一个参数 HostName 可能不是必需的。这取决于您的系统是否返回正确的主机名(该主机名会放在报告的顶部)。如果您正在运行多个虚拟域(就像我在我的 Web 服务器上所做的那样),您应该为报告标题选择一个。请自己阅读配置文件,并决定是否要更改其他任何内容。就我而言,这些是唯一的更改。
剩下的最后一件事是运行 Webalizer。您只需键入以下命令即可完成此操作
/usr/local/bin/webalizer
虽然我发现 Webalizer 没有 Analog 快(它处理我 80 万行的 access_log 文件用了 2 分 55 秒,而 Analog 只用了 1 分 39 秒),但它仍然相当快。从 Webalizer 生成的数据是累积的。这意味着您可以随时运行 Webalizer,它只会建立在已有的基础上。如果您想进行每日更新,您肯定会希望将此命令放在 crontab 条目中,就像这样。“-e” 标志当然表示 “编辑”。
crontab -e
进入编辑器后,我添加了以下行,它将在每天早上 6 点运行 Webalizer
0 6 * * * /usr/local/bin/webalizer 1> /dev/null 2> /dev/null
您是选择 Analog 还是 Webalizer 取决于个人喜好。就纯粹的 “闪光” 和明亮、鲜艳的色彩而言,Webalizer 绝对领先。
就这样 - 又一周结束了。当我们下次在专栏相聚时,我们将深入研究您系统中更黑暗的部分,这些区域讲述着令人困惑的事物,但却说明了关于每个系统的很多信息。我将打开灯,带您四处看看。与此同时,请记住您的 Linux 系统正在与您对话。您在倾听吗?
电子邮件:ljeditors@ssc.com