五颜六色论坛 -> 网站建设 -> FreeBSD SNMP+MRTG 登录 -> 注册 -> 回复主题 -> 发表主题

deserts 2007-05-03 08:52

、 安装SNMP
一般版本的FreeBSD系统SNMP存放在 /usr/ports/net/net-snmp下面,但是有的版本不是。有些版本在安装Package的时候,除了要安装Net之外,还要安装Net- mgmt里面的SNMP,安装好之后,SNMP就存放在/usr/ports/net-mgmt/net-snmp下面了。下面就是安装过程:
# cd /usr/ports/net-mgmt/net-snmp #snmp的存放路径
# make install clean #安装snmp
# ee /etc/rc.conf
snmpd_enable="YES"
snmpd_flags="-p /var/run/snmpd.pid"
# /etc/netstart
# ee /usr/local/share/snmp/snmpd.conf
rocommunity public
# /usr/local/etc/rc.d/snmpd.sh start #启动snmp

2、 安装mrtg
mrtg根据不同的版本存放的位置不同,一般存放在/usr/ports/net/net-snmp下面,这里介绍的安装过程种mrtg存放在/usr/ports/net-mgmt/mrtg下面。
# cd /usr/ports/net-mgmt/mrtg #mrtg的存放路径
# make install clean #安装mrtg
# cd /home #以下四个命令是建立MRTG
# mkdir http #的WEB目录,具体目录可以
# cd http #根据个人的爱好自己设定
# mkdir mrtg
# cd /usr/local/etc/mrtg
# /usr/local/bin/cfgmaker public@192.168.1.100 > mrtg #创建MRTG的cfg文件
192.168.1.100 :被监控设备的地址
mrtg :是要输出的档案
public :设备设定档的共同的名字(community name) 预设是public,
这个可以在/usr/local/share/snmp/snmpd.conf里面修改
# ee mrtg
WorkDir: /home/http/mrtg #指向已设定的WEB目录
# /usr/local/bin/indexmaker –-title ‘标题’ --output
/home/http/mrtg/index.html mrtg #生成index.html文件
# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg #运行mrtg(如果有错误,就
多运行几次)
#ee /etc/crontab #让mrtg每5分钟运行一次
*/5 * * * root /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg

3、 安装apache
apache存放在/usr/ports/www/apache2下面
# cd /usr/ports/www/apache2 #apache2的存放地址
# make install clean #安装apache2
# ee /etc/rc.conf
apache2_enable=”YES”
# /etc/netstart
# ee /usr/local/etc/apache2/httpd.conf #配置虚拟主机
NameVirtualHost *:80

<Directory "/home/http/mrtg">
Options Indexes Includes FollowSymlinks
Allow from all #允许访问
</Directory>

<VirtualHost *:80>
ServerAdmin root@test.com
DocumentRoot /home/http/mrtg
ServerName xxx.xxx.xxx.xxx #安装mrtg的主机地址
DirectoryIndex index.html #前面生成的index.html
ErrorLog /var/log/xxx.xxx.xxx.xxx-error_log
CustomLog /var/log/xxx.xxx.xxx.xxx-access_log common
</VirtualHost>
# /usr/local/etc/rc.d/apache2.sh start #启动apache
打开http://xxx.xxx.xxx.xxx,就可以看到被监控设备的网络信息了。

4、 设置http://xxx.xxx.xxx.xxx的访问权限
监控流量的网页做好之后,接下来就设置访问这个网页的权限。
1) 修改http.conf ,在<Directory "/home/http/mrtg">和</Directoy>
之间加入一行:
AllowOverride All
意思是在/home/http/mrtg下不同目录的访问权限由该目录下的.htaccess文件来控制,而且不同目录的权限策略可互相覆盖
2) 编辑.htaccess 文件
# cd /home/http/mrtg
# mkdir user #建立存放密码文件的文件夹
# ee .htaccess #访问权限控制文件
AuthUserFile /home/http/mrtg/user/pass #用户密码信息存放文件
AuthType Basic #认证类型为基本型
AuthName "cnseaport"
require valid-user #认证方式
3) 建立用户
# htpasswd –c /home/http/mrtg/user/pass admin #建立用户admin
New password: #输入用户秘密
Re-type new password: #再次输入密码
Adding password for user admin #添加用户成功信息
可以建立多个用户
4) 重新启动apache,再次访问http://xxx.xxx.xxx.xxx,这时应该出现一个
身份认证窗口,你需要输入用户名和密码才能访问这个页面。

deserts 2007-05-03 08:53
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


查看完整版本: [-- FreeBSD SNMP+MRTG --] [-- top --]


[ 五颜六色论坛 ]

Powered by PHPWind 5.0.1 © 2005 苏ICP备05001866号 5y6s.net
Time 0.035065 second(s),query:4 Gzip enabled