第十四章 网页服务器进阶应用

网页服务器架设之后,世界各地的使用者都可以经由因特网连到您的主机,如何维护网站安全是一大课题。管理者更需要知道网站的使用情形,系统资源、网络频宽是否足够。本章将说明网页服务器使用上常见的管理议题,并介绍一些好用的管理工具。读完本章后,您将进一步了解下列主题:

14.1 HTTP 安全与 SSL 协定

当我们使用网络服务时,经由网络传送的数据都有可能被他人拦截窃听。简单的说,当您从网页上输入账号密码时,如果有人在您所使用的计算机和服务器之间拦截,就可以轻易的从网络封包中窃听到您所输入的数据。

随着网络的蓬勃发展,在线交易的使用量日益增加,对于数据的保护更是重要。如果一个在线交易的网站使用普通的 HTTP,则使用者输入的账号密码、交易数据、信用卡号等等都有可能会外泄,更别说交易数据被假造的风险了。为了解决 HTTP 的网络安全,发展出许多加密、认证的机制。其中最常见的就是使用金钥加密法的 HTTP over SSL (Secure Socket Layer),又称为 HTTPS,目前国内许多网络银行都是使用 HTTPS 作为交易安全的第一道关卡。

SSL 的加密方式是由服务器端提供了一组加解密用的金钥,在服务器端所使用的是私密金钥 (Private key),而客户端所使用的是公开金钥 (Public key)。在联机建立后,HTTP 服务器会将公开金钥传给客户端使用。公开金钥加密过的资料只能由私密金钥解密,在客户端要送出数据之前,会先使用公开金钥进行加密的动作,而服务器收到数据后,会使用私密金钥进行解密。

在 Apache 2 中,预设安装即支持 SSL,我们只需产生一组金钥,并设定启动 SSL 即可。

14.1.1 产生金钥

正确的凭证产生方法是先产生服务器用的公钥及 CSR (Certificate Signing Request),接着将 CSR 送给专门做凭证签发的公正单位做签章。或者,我们也可以自己做为一个凭证签发单位,自己为自己签发凭证。但由于我们自己产生的凭证不具公信力,所以使用者使用 HTTPS 连到网站时,会出现下列的警告讯息:

图 14-1

这个警告讯息并不影响加密,不过如果您所架设的是商用网站,您还是得交由公正单位作签证。

如果您要使用自我签发的凭证,第一步是要产生签发单位凭证,我们先建立一个目录名为 ssl,并将产生的凭证放在该目录下:

# mkdir ssl
# cd ssl
# openssl genrsa -out ca.key 1024
# openssl req -new -key ca.key -out ca.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:TW
State or Province Name (full name) [Some-State]:Taiwan
Locality Name (eg, city) []:Taipei
Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company
Organizational Unit Name (eg, section) []:Certificate Authority
Common Name (eg, YOUR name) []:MyCA
Email Address []:alex@alexwang.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:按 Enter 即可
An optional company name []:按 Enter 即可

# openssl x509 -days 365 -signkey ca.key -in ca.csr -req -out ca.crt

我们在第二个 openssl 指令中必须输入一些基本信息,最后产生一个有效期限 365 天的凭证。接着,必须产生 Apache 服务器用的凭证:

# openssl genrsa -out server.key 1024
# openssl req -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:TW
State or Province Name (full name) [Some-State]:Taiwan
Locality Name (eg, city) []:Taipei
Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company
Organizational Unit Name (eg, section) []:Web Team
Common Name (eg, YOUR name) []:www.alexwang.com
Email Address []:alex@alexwang.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:按 Enter 即可
An optional company name []:按 Enter 即可

# openssl x509 -days 365 -CA ca.crt -CAkey ca.key -in server.csr -req -out server.crt

同样的,我们必须输入关于这个凭证的一些数据,最后,我们使用之前所产生的凭证签发一个有效期限 365 天的服务器用凭证。必须注意的是,在 Common Name 必须输入您的主机名称,以避免联机时凭证名称和网页名称不符的警告。另外,我们在产生凭证时,当 OpenSSL 要求输入用来保护凭证的密码时,我们都没有输入密码。如果您输入密码,则以后 Apache 要启动时都必须输入密码才可以启动。

最后,我们将服务器用的凭证复制到 Apache 的设定文件位置:

# mkdir /usr/local/etc/apache2/ssl.crt
# mkdir /usr/local/etc/apache2/ssl.key
# cp server.crt /usr/local/etc/apache2/ssl.crt/server.crt
# cp server.key /usr/local/etc/apache2/ssl.key/server.key
# chmod 400 /usr/local/etc/apache2/ssl.crt/server.crt
# chmod 400 /usr/local/etc/apache2/ssl.key/server.key

最后,请将我们制作过程中的凭证删除:

# rm -rf ssl

凭证制作完成后,我们就可以开始设定支持 SSL 的 Apache 了。

14.1.2 设定及启动 HTTPS

首先,我们必须先修改 /usr/local/etc/apache2/ssl.conf 以设定 SSL,请先找到下列区段:

<VirtualHost _default_:443>

# General setup for the virtual host
DocumentRoot "/home/www"
ServerName www.example.com:443
ServerAdmin you@example.com
ErrorLog /var/log/httpd-error.log
TransferLog /var/log/httpd-access.log

我们必须修改 DocuemntRoot,并将它设为我们网页根目录,然后要修改 ServerName,将它设定为我们的主机名称。

为了要该 Apache 启动时可以支持 SSL,请在 /etc/rc.conf 中加入 Apache SSL 的设定:

apache2ssl_enable="YES"

最后,请重新启动 Apache 即可:

# /usr/local/etc/rc.d/apache2.sh restart

接下来,您就可以使用 https://192.168.0.1 连到您的主机了。请注意,我们使用的联机方法是 https,而非 http。如果您联机的主机名称和凭证产生的名称不同,将会有名称不符的警告讯息。

图 14-2

14.2 对目录设定密码保护

在架设网站时,如果您有特殊需求,必须指定某个目录只能由某些使用者才能存取,我们可以使用 Apache 内建的目录保护功能,让使用者必须输入使用者名称及密码才能存取该目录。

在开始设定目录的保护之前,我们必须先修改 httpd.conf,允许使用者可以在网页目录中使用认证功能。首先 ,请编辑 /usr/local/etc/apache2/httpd.conf,找到网页目录设定的区段:

...
LoadModule auth_module libexec/apache2/mod_auth.so
...
<Directory "/home/www">
	Options Indexes FollowSymLinks MultiViews ExecCGI
	AllowOverride AuthConfig
	Order allow,deny
	Allow from all
</Directory>
...
AccessFileName .htaccess
...

我们必须先确定 Apache 有加载 mod_auth.so 模块。接着,我们在网页目录的区段中 AllowOverride 的部份设定了使用 AuthConfig。如果 AllowOverride 设为 None 表示不允许使用者变更目录设定,设为 AuthConfig 表示可以使用 AuthDBMGroupFile、 AuthDBMUserFile, AuthGroupFile、AuthName、AuthType 等认证的功能。 另外,在 AccessFileName 中,我们设定了用来保护目录的设定文件名称,预设为 .htaccess。

Apache 允许使用者在目录下放置一个档案来控制该目录的存取权限,预设是使用 .htaccess。 我们可以自行用文书软件编辑一个文件名为 .htaccess 的档案来设定档案所在目录的权限。假设我们要保护的目录是 /home/www/private/ 这个目录,请新增一个文字文件 /home/www/private/.htaccess,内容如下:

AuthName "管理专区"
AuthType "Basic"
AuthUserFile "/var/http.pw"
require valid-user

其中请注意各参数的大小写。这里我们设定储存使用者账号及密码的档案是 /var/http.pw

接下来我们就可以新增使用者及密码了。Apache 用来新增密码的指令为 htpasswd:

# /usr/local/sbin/htpasswd -c /var/http.pw username 
New password: 输入 username 的密码
Re-type new password: 再输入一次

上述指令会建立密码文件 /var/http.pw 并加入使用者 username。如果您还要再加入第二个使用者,不需要加参数 -c。

接着,我们使用使用浏览器连到该目录时,将出现下列画面:

图 14-3

此时输入你设定的使用者名称及密码即可。若输入的账号密码正确,即可正常看到该目录的内容,否则在输入三次错误之后,将出现禁止存取的页面。

小提示

在您通过身份认证后,浏览器会自动将身份认证的数据暂存起来,以便下次联机时使用。所以在通过认证后,您不会每次要连受保护的目录时都要输入账号密码。如果您将浏览器关闭后,下次再连到该页面时,才会再被要求输入密码。

14.3 虚拟主机

如果您想要使用一台主机管理多个不同名称的网页,例如,www.alexwang.com 及 www.twbsd.org 全都连到同一台服务器,我们可以经由 Apache 虚拟主机的功能,让不同的网址秀出不同的网页内容。其本上,就是在一台机器上设定多个主机名称或 IP,并依不同名称来决定其根目录所在。当使用者联机到我们的主机时,每一个不同的名称所看到的根目录都不同。

要达到这样的功能,我们必须先确定主机有多个 DNS 名称,这样别人打该主机名称才会对应到你的 IP。假设你的主机 IP 是 111.222.78.9 ,上面有二个主机名称,一个是 www.abc.com,另一个是 www.cde.net。 您必须先在 DNS 中设定让这二个主机名称都可以对应到 11.22.78.9 这个 IP。

在确认 DNS 设定没问题后,我们就可以开始设定 Apache 虚拟主机的功能了。请编辑 httpd.conf,在虚拟主机的部份加入下列设定:

# 设定使用名称的虚拟本机
NameVirtualHost *:80

# 设定 www.abc.com 的管理者账号、存放网页的目录及log 所在
<VirtualHost *>
	ServerAdmin jack@abc.com
	DocumentRoot /home/www/abc
	ServerName www.abc.com
	ErrorLog /var/log/abc_error.log
	CustomLog /var/log/abc_access.log common
</VirtualHost>
# 设定 www.cde.com 的资料
<VirtualHost *>
	ServerAdmin tom@cde.net
	DocumentRoot /home/www/cde
	ServerName www.cde.net
	ErrorLog /var/log/cde_error.log
	CustomLog /var/log/cde_access.log common
</VirtualHost>

做完上面的设定后,就可以重新启动 Apache 了。如果你还有别的 Domain Name 指向 111.222.78.9 的话,例如 www.fgh.org ,但你并未设定其 Virtual Host 数据,Apache 将以第一个设定的 Virtual Host 数据为主。在这个范例里,当你打 www.fgh.org 会连到 www.abc.com 的设定。

必须要注意的是,有些客户端的联机软件并不支持 Name-Based 的虚拟主机,要支持 name-based virtual host,客户端必须送出 HTTP 的标头,也就是浏览器必须支持 HTTP/1.1。不过,请放心,我们常用的 IE、Netscape、lynx 都有支援。

14.4 网页记录分析

在我们将所制作好的网页放在网页服务器之后,我们会想知道每一个网页的浏览次数、使用者的停留时间等等,以做为改善网页的依据。这些信息都可以从 Apache 的联机记录文件中获得,但由于 Apache 的联机记录中,只有一笔一笔使用者浏览网页的记录,我们需要使用一些工具来分析记录文件,让这些记录文件能更易于阅读。

本章将介绍 Webalizer 这套软件。Webalizer 会读取 Apache 的联机记录文件,并将分析结果存成网页,让我们可以经由网页的图形更轻松的了解每一个页面的使用情形。由于 Webalizer 所进行的分析是经由读取 log 档,因此 log 文件的数据越多,分析出来的结果也就越详尽。

我们使用下列指令安装 Webalizer:

# cd /usr/ports/www/webalizer
# make install clean

在安装完 Webalizer 之后,我们必须先做一些简单的设定。在 /usr/local/etc/ 有一个 Webalizer 的设定文件范例 webalizer.conf-dist,我们先将它复制一份再开始编辑:

# cp /usr/local/etc/webalizer.conf-dist /usr/local/etc/webalizer.conf
# ee /usr/local/etc/webalizer.conf

以下我们将一一说明此设定档的内容,如果您想要更改其中的设定,请将该行开头的井字号移除再开始修改:

# 设定 Apache 联机记录文件的位置。
#LogFile        /var/lib/httpd/logs/access_log
LogFile        /var/log/httpd-access.log

# 设定 log 文件的型式,Webalizer 除了 Apache 外,还可以支持分析 FTP 软件
# 或 proxy 软件 squid 的 log 文件。LogType 预设的值是 'clf',表示分析
# 网页数据,你也可以设定为 ftp 或 squid。
#LogType	clf

# OutputDir 是我们想要输出分析数据的位置。请设定为网页根目录下的某一个
# 目录。例如我们的网页根目录是 /home/www,请先在该目录下建立一个子目录
# 名为 traffic,接着再设定 OutputDir 为 /home/www/traffic。
#OutputDir      /var/lib/httpd/htdocs/usage
OutputDir      /home/www/traffic

# HistoryName 可以让我们设定 webalizer 所产生的历史记录文件的文件名。这个档
# 可以用来产生 主要的 HTML 页面 (index.html),我们不需要修改。
#HistoryName	webalizer.hist

# 由于我们可能会设定某一段时间自动将 Apache 的 log 压缩或删除。而
# Incremental 这个变量可以让我们在产生分析资料时,只更新增加的部份
# 而分析过的资料就不再分析,以免覆盖了旧有的资料。
#Incremental	no
Incremental	yes

# 若您设定 Incremental 为 yes,IncrementalName 可以让您设定目前增加
# 的分析数据存放位置。
#IncrementalName	webalizer.current

# ReportTitle 是分析结果网页的标题。在该标题后会加上您的主机名称。
#ReportTitle    Usage Statistics for

# 设定您的主机名称。
#HostName       localhost

# HTMLExtension 是所产生的 HTML 档的扩展名。
#HTMLExtension  html

# PageType 可以让您设定何种扩展名结尾的页面要加入分析数据。因为在
# log 文件中有一些图片,而这些图版我们并不希望加入分析数据中,或者我
# 们也可以增加 PHP 页面的分析数据。所以在这里,我们加上一行用来分析
# PHP 页面的设定。
PageType	htm*
PageType	cgi
PageType	php
#PageType	phtml
#PageType	php3
#PageType	pl

# 如果您希望只使用 https 才可以连到分析页面,则将 UseHTTPS 设为 yes。
#UseHTTPS       no

# DNSCache 可以设定 DNS 快取的文件名称,在分析数据时,可能会一直需要
# 做 DNS 的分析,这个档可以提高 DNS 查询的效率。
#DNSCache	dns_cache.db

# DNSChildren 可以设定要使用多少 process 来做 DNS 查询,预设是 0,表示
# 不查询,我们可以设定的值从 1 到 100。最好不要设太多,以免消耗太多系统
# 资源。
#DNSChildren	0

# HTMLPre 是用设定每个 HTML 档案开头第一行要插入的字,最长 80 个字符。
#HTMLPre <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

# HTMLHead 可以让我们设定 HTML 页面 <HEAD></HEAD> 中间要插入的字。最长
# 也是 80 个字符。
#HTMLHead <META NAME="author" CONTENT="The Webalizer">

# HTMLBody 会取代在 HTML 页面中的 <BODY>  这个标签。可以让我们设定网页
# 的一些属性。最长也是 80 个字符。
#HTMLBody <BODY BGCOLOR="#E8E8E8" TEXT="#000000" LINK="#0000FF" VLINK="#FF0000">

# HTMLPost 会将设定的字符串插入 HTML 第一个 <HR> 标签之后,最长也是 80 个
# 字。
#HTMLPost 	<BR CLEAR="all">

# HTMLTail 可以设定 HTML 页面的结尾所要插入的字符串。最长 80 个字符。
#HTMLTail <IMG SRC="msfree.png" ALT="100% Micro$oft free!">

# HTMLEnd可以设定 HTML 页面的最后结尾所要插入的字符串。我们最少要有
# </BODY> 和 </HTML> 这二个标签,最长 80 个字符。
#HTMLEnd </BODY></HTML>

# Quiet 可以让我们设定在分析时是否要输出讯息,因为我们会使用 crontab
# 定时执行,所以不要输出分析过程的讯息比较好。
Quiet		yes

# ReallyQuiet 可以设定档有错误产生时,是否要输出讯息。
#ReallyQuiet	no

# TimeMe 可以设定在分析之后是否要输出时间。
#TimeMe		no

# GMTTime 可以设定是否要使用 GMT (UTC) 时间而非本地时间。
#GMTTime		no

# Debug 可以设定是否要输出除错讯息。
#Debug		no

# FoldSeqErr 可以让 Webalizer 忽略读取 log 档的错误。
#FoldSeqErr	no

# VisitTimeout 可以设定 session 的到期时间,默认值是 30 分钟。
#VisitTimeout	1800

# IgnoreHist 请保持 no。
#IgnoreHist	no

# Country Graph 是用来显示分析资料中关于国家的统计资料是否要显示。
#CountryGraph	yes

# DailyGraph 及 DailyStats 是设定是否显示每日分析资料。
#DailyGraph	yes
#DailyStats	yes

# HourlyGraph 是 HourlyStats是设定是否显示每小时分析资料。
#HourlyGraph	yes
#HourlyStats	yes

# GraphLegend 是设定是否要显示彩色图表。
#GraphLegend	yes

# GraphLines 是用来设定图表的网格线数量,最多 20。
#GraphLines	2

# "Top" 的选项是每一个分格表格中,要显示多少笔前几名的资料。
#TopSites        30
#TopKSites       10
#TopURLs         30
#TopKURLs        10
#TopReferrers    30
#TopAgents       15
#TopCountries    30
#TopEntry        10
#TopExit         10
#TopSearch       20
#TopUsers        20

# The All* 可以让我们显示所有 log 文件中有记录的数据,而非只有前几名而
# 已。如果设定了某一个 All 的选项,webalizer 将会为该设定新增一个页面。
#AllSites	no
#AllURLs	no
#AllReferrers	no
#AllAgents	no
#AllSearchStr	no
#AllUsers       no

# Webalizer 会自动使用让网址 /somedir/ 可以连结到 /somedir/index.htm
# 如果你想要设定让除了 index. 结尾的网址有此效果外,还要让其它网
# 址也有同样效果,您可以在此设定。
#IndexAlias     home.htm
#IndexAlias	homepage.htm

# Hide*, Group*, Ignore* 及Include* * 可以设定让 Webalizer 忽略
# log 中的关键词,让 log 中某些记录不要被加入分析数据中。例如
# 有的搜寻引擎会自动连到您的网页来找数据,您可以设定忽略这样的
# 联机。请自行参阅说明。
… 略 …
# End of configuration file...  Have a nice day!

接着我们必须依您的设定在网页根目录中建立一个数据夹以储存 Webalizer 所产生的图表,假设我们的网页根目录是 /home/www,并在其目录下建立一个子目录名为 traffic

# mkdir /home/www/traffic

紧接着我们就可以使用下列指令来产生统计图表:

# /usr/local/bin/webalizer

因为我们在 webalizer.conf 中设定了所要使用的 apache 使用记录的文件名及所产生的图表存放位置,所以在执行 webalizer 时不必再加任何参数。如果您想指定使用其它的联机记录文件来做分析,您可以在指令后面加上该记录文件的文件名,例如:

# /usr/local/bin/webalizer /var/log/httpd-access.log

产生了图表之后,我们就可以使用浏览器输入 http://www.mydomain.com/traffic 连到该网页。连到该页面后,您可以看到下列画面:

图 14-5

我们可以看到八月份每天平均有 294 人造访,该月共有 7945 人。点选了该月份后,可以再看该月份更详细的数据。例如,一天中哪一个时间最多人造访、哪一个网页最点选最多次、使用者来源、进到本网站后第一个看的页面是什么等等。下图为最常被点选的页面统计:

图 14-6

最后,为了让分析图表能定时自动更新,我们可以使用 crontab 每小时定期执行一次分析。

# crontab -e
13      *       *       *       *       /usr/local/bin/webalizer

在上述的 crontab 的设定中,我们让系统在每小时的第 13 分时执行一次 webalizer,您也可以依您的需求调整更新的时间。存盘离开之后,crontab 会自动加载新的设定,如此一来我们就可以随时拥有最新的统计信息了。

14.5 MRTG 流量分析

我们除了可以使用 Webalizer 来了解网页内容的使用情形外,网站管理者还必须知道目前网站频宽是否足够。如果您想要知道网站流量的使用情形,我们可以安装 MRTG 这套软件经由网页来监看网络流量。MRTG 会去收取 SNMP (Simple Network Management Protocol) 所产生的数据,因此所要记录的机器必须要安装 SNMP。在你的主机上安装 MRTG 后,你不仅可以收集自己的流量数据,也可以收集局域网络上其它可以接收到的 SNMP 数据。

14.5.1 安装 SNMP

在安装 MRTG 之前,我们先使用 ports 来安装 SNMP:

# cd /usr/ports/net-mgmt/net-snmp
# make install clean

安装完成后,我们必须要先新增一个可以读取 SNMP 信息的 community name。所谓的 community name 是一个明码的字符串,我们可以将它视为 management station 和 agent 之间的密码,是 MRTG 和 net-SNMP 沟通时必须要先传送的字符串。我们可以依不同的网域或主机给予不同的权限,依 community name 的设定来决定不同权限。

一个网络组件可以有多个 community name,一般 SNMP Agent 所预设公开的 community name 是 public。我们不一定要将 community name 设定为 public,因为 public 是一般 SNMP 的默认值,为了安全的问题,我们不将它设为 public。这里我们将设定 community name 为 mrtg,而且只有 read only 的权限。

要设定 community name 请先新增一个文字文件 /usr/local/share/snmp/snmpd.conf 并加入下列设定:

rocommunity     mrtg
syslocation     Office
syscontact      alex@alexwang.com

上述设定中,mrtg 为只读的 community name,Office 是您机器所在位置,而 syscontact 所接的字符串是您的 Eamil。另外, 我们还必须在 /etc/rc.conf 中加入下列这一行:

snmpd_enable="YES"

接着,请使用下列指令启动 SNMP:

# /usr/local/etc/rc.d/snmpd.sh start

14.5.2 安装 MRTG

我们使用 ports 来安装 MRTG:

# cd /usr/ports/net-mgmt/mrtg
# make install

接着要产生 MRTG 的设定档

# cd /usr/local/etc/mrtg
# rehash
# cfgmaker mrtg@alexwang.com >mrtg.cfg

这里的 mrtg 是我们在安装 net-snmp 时所设定的值。如果你使用错的 community name,你可能会从要记录的设备上得到错误响应。而 alexwang.com 是你所要记录的主机位置。mrtg.cfg 就是所要产生的设定档名。

如果您想要记录多个主机,只要在 cfgmaker 时多加入主机名称即可,例如:

# cfgmaker mrtg@alexwang.com public@ftp.alexwang.com >mrtg.cfg

这样就会同时记录上面二台主机的流量了。

产生基本的设定档后,我们可以再编辑刚才产生的设定档 ee mrtg.cfg,在档案开头的部份加入一些客制化的设定:

# 如果要使用中文的 MRTG 则加入下面这一行
Language: big5

# 设定你的 MRTG 要放在哪个目录,应该要放在网页可以
# 连结到的地方,我的网页根目录是 /home/www,所以我将
# MRTG 放在下面的目录。
WorkDIR:/home/www/mrtg

# 预设的 MRTG 所产生的图时间是由右到左
# 我喜欢由左到右,故加入下面这一行
Options[_]: growright

接着请建立一个你在 mrtg.cfg 中设定的 WorkDIR 的目录:

# mkdir /home/www/mrtg

然后使用指令 indexmaker 来建立 MRTG 的首页:

# indexmaker -title '流量统计' -output /home/www/mrtg/index.html mrtg.cfg

这里的参数 -title 是该 index.html 档的 title,而 -output 就是要输出的档案位置,预设是stdio(通常指的是屏幕) 。

输出的档案 index.html 你也可以使用其它的网页编辑软件再去修改美化它。接下来要将 MRTG 的一些图片文件复制到 mrtg 的目录里:

# cd /usr/ports/net-mgmt/mrtg/work/mrtg*
# cd images
# cp * /home/www/mrtg/

最后执行 MRTG:

# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg

第一次执行上面的指令可能会有一些错误讯息,不要理它,因为是第一次执行 mrtg,所没有一些旧的图,只要再多执行几次就好了。没问题之后,使用指令 crontab -e 来 让上述指令每 5 分钟执行一次,加入下面这一行:

*/5    *    *    *    *    /usr/local/bin/mrtg  /usr/local/etc/mrtg/mrtg.cfg

现在你可以使用 http://yourserver/mrtg 来连去看看。

图 14-7

最后别忘了移除安装过程的暂存档:

# cd /usr/ports/net/mrtg/
# make clean