<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>haohtml&#039;s blog &#187; mrtg</title>
	<atom:link href="http://blog.haohtml.com/index.php/tag/mrtg/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.haohtml.com</link>
	<description>haohtml&#039;s life and works blog</description>
	<lastBuildDate>Sat, 31 Jul 2010 10:45:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>你还在用mrtg吗?－－使用cacti监测系统性能</title>
		<link>http://blog.haohtml.com/index.php/archives/4808</link>
		<comments>http://blog.haohtml.com/index.php/archives/4808#comments</comments>
		<pubDate>Mon, 26 Jul 2010 06:15:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[服务器类]]></category>
		<category><![CDATA[CACTI]]></category>
		<category><![CDATA[mrtg]]></category>

		<guid isPermaLink="false">http://blog.haohtml.com/?p=4808</guid>
		<description><![CDATA[本文我曾于2005年8月15日发表于CU上，当前的软件与安装方法均有所更新。 前言: 在CU 的论坛上经常看到有人问MRTG的问题，还有很多的关于MRTG的精彩文章。MRTG的确是非常好 的东东，但我认为它毕竟已经是一套很旧的软件了，其作者在多年前就已经开发了RRDTool代替该软件，现在已经发展得很成熟。既然有更好的选择，为什么 我们还要用MRTG呢？ 第一部分，介绍： 2004年我刚进某公司工作,当时我使用MRTG建立了一套系统,专门监测我们服务器和其它网络设备的流量。 后 来我想将其它的系统性能比如CPU负载、系统负载，网络连接数等一起监测起来。我在网上查找了很多的资料， 也实现了这些功能，但总觉得实现的太费劲，管理起来太麻烦了。比如我有几百个被监测点，分布在不同的机房，而且我需要将这些服务器和网络设备分类，这样的 话我就要将这些被监测点放在不同的mrtg配 置文件中，运行多个crontab，而且自己还写了一些html页面对其进行管理。 后来有幸看到了abelyang兄写的大作“rrdtool教学”，里面列举了rrdtool的种种优点，于是我下定决心要将MRTG更换为rrdtool。 MRTG的优点： 简单、易上手，基本安装完了之后只要更改一下配置文件即可。 缺点： 1、使用文本式的数据库，数据不能重复使用； 2、只能按日、周、月、年来查看数据； 3、只能画两个DS（一条线、一个块）； 4、每取一次数据即需要绘图一次，浪费系统资源； 5、无管理功能； rrdtool的优点： 1、使用rrd存储格式，数据能重复使用，比如我可以将一个rrd文件中的数据与另一个rrd文件中的数据相加。 2、可以定义任意时间段画图，即你可以画出一张半年以来的数据的图，也可以画出一张半小时以来的图。 3、能画任意个DS。 4、CDEF让你能任意摆弄数据。 缺点： 1、rrdtool的作用只是存储数据和画图，它没有mrtg中集成的数据采集功能； 2、在命令行的使用非常复杂，参数极多。 3、无管理功能。 简单的说，rrdtool就是一个强大的绘图的引擎。 由于其非常复杂的命令，对用户非常不友好，我一度想自己用php写一套系统。幸运的是，半年前我找到了cacti（www.cacti.net)。对该工具我只有一个字形容：“great！”。 cacti 其实是一套php程序，它运用snmpget采集数据，使用rrdtool绘图。它的界面非常漂亮，能让你根本无需明白rrdtool的参数能 轻易的绘出漂亮的图形。更难能可贵的是，它提供了强大的数据管理和用户管理功能，一张图是属于一个host的，每一个host又可以挂载到一个树状的结构 上。用户的管理上，作为一个开源软件，它居然做到为指定一个用户能查看的“树”、host、甚至每一张图，还可以与LDAP结合进行用户的验证！我不由得 佩服作者考虑的周到！Cacti还提供自己增加模板的功能，让你添加自己的snmp_query和script！可以说，cacti将rrdtool的所 有“缺点”都补足了！ 最近在公司的内部培训中，我为Cacti画了两张图，里面是cacti的架构和cacti的工作流程，现在也一并发上来: Cacti架构： Cacti工作流程： 第二部分：Cacti的安装 该安装文档是参照www.cacti.net上的官方文档进行安装后，总结出来的。平台是Linux或FreeBSD。 1、安装mysql cacti从0.4.8g版本开始支持mysql5数据库 (2006/1/12更新) 请到 http://dev.mysql.com/downloads/mysql/4.1.html 或 http://www.mysql.com 下载mysql数据库 安装： shell&#62;; groupadd mysql shell&#62;; useradd -g [...]]]></description>
			<content:encoded><![CDATA[<div>
<p><span style="color: #ff0000;">本文我曾于2005年8月15日发表于<a href="http://bbs.chinaunix.net/viewthread.php?tid=594019">CU</a>上，当前的软件与安装方法均有所更新。</span></p>
<p>前言:<br />
<span style="color: #666600;">在CU 的论坛上经常看到有人问MRTG的问题，还有很多的关于MRTG的精彩文章。MRTG的确是非常好 的东东，但我认为它毕竟已经是一套很旧的软件了，其作者在多年前就已经开发了RRDTool代替该软件，现在已经发展得很成熟。既然有更好的选择，为什么 我们还要用MRTG呢？</span></p>
<p><strong><big>第一部分，介绍：</big></strong></p>
<p>2004年我刚进某公司工作,当时我使用MRTG建立了一套系统,专门监测我们服务器和其它网络设备的流量。</p>
<p>后 来我想将其它的系统性能比如CPU负载、系统负载，网络连接数等一起监测起来。我在网上查找了很多的资料， 也实现了这些功能，但总觉得实现的太费劲，管理起来太麻烦了。比如我有几百个被监测点，分布在不同的机房，而且我需要将这些服务器和网络设备分类，这样的 话我就要将这些被监测点放在不同的mrtg配 置文件中，运行多个crontab，而且自己还写了一些html页面对其进行管理。</p>
<p><span id="more-4808"></span><br />
后来有幸看到了abelyang兄写的大作“rrdtool教学”，里面列举了rrdtool的种种优点，于是我下定决心要将MRTG更换为rrdtool。</p>
<p>MRTG的优点：<br />
<span style="color: #000099;">简单、易上手，基本安装完了之后只要更改一下配置文件即可。</span></p>
<p>缺点：<br />
<span style="color: #000099;">1、使用文本式的数据库，数据不能重复使用；<br />
2、只能按日、周、月、年来查看数据；<br />
3、只能画两个DS（一条线、一个块）；<br />
4、每取一次数据即需要绘图一次，浪费系统资源；<br />
5、无管理功能；</span></p>
<p>rrdtool的优点：<br />
<span style="color: #000099;">1、使用rrd存储格式，数据能重复使用，比如我可以将一个rrd文件中的数据与另一个rrd文件中的数据相加。<br />
2、可以定义任意时间段画图，即你可以画出一张半年以来的数据的图，也可以画出一张半小时以来的图。<br />
3、能画任意个DS。<br />
4、CDEF让你能任意摆弄数据。<br />
</span><br />
缺点：<br />
<span style="color: #000099;">1、rrdtool的作用只是存储数据和画图，它没有mrtg中集成的数据采集功能；<br />
2、在命令行的使用非常复杂，参数极多。<br />
3、无管理功能。</span></p>
<p>简单的说，rrdtool就是一个强大的绘图的引擎。</p>
<p>由于其非常复杂的命令，对用户非常不友好，我一度想自己用php写一套系统。幸运的是，半年前我找到了cacti（www.cacti.net)。对该工具我只有一个字形容：“great！”。<br />
cacti 其实是一套php程序，它运用snmpget采集数据，使用rrdtool绘图。它的界面非常漂亮，能让你根本无需明白rrdtool的参数能 轻易的绘出漂亮的图形。更难能可贵的是，它提供了强大的数据管理和用户管理功能，一张图是属于一个host的，每一个host又可以挂载到一个树状的结构 上。用户的管理上，作为一个开源软件，它居然做到为指定一个用户能查看的“树”、host、甚至每一张图，还可以与LDAP结合进行用户的验证！我不由得 佩服作者考虑的周到！Cacti还提供自己增加模板的功能，让你添加自己的snmp_query和script！可以说，cacti将rrdtool的所 有“缺点”都补足了！<br />
最近在公司的内部培训中，我为Cacti画了两张图，里面是cacti的架构和cacti的工作流程，现在也一并发上来:</p>
<p>Cacti架构：<br />
<a href="http://blog.haohtml.com/wp-content/uploads/2010/07/cacti_jg.gif"><img class="alignnone size-full wp-image-4810" title="cacti_jg" src="http://blog.haohtml.com/wp-content/uploads/2010/07/cacti_jg.gif" alt="" width="613" height="282" /></a></p>
<p>Cacti工作流程：<br />
<a href="http://blog.haohtml.com/wp-content/uploads/2010/07/cacti_work.gif"><img class="alignnone size-full wp-image-4811" title="cacti_work" src="http://blog.haohtml.com/wp-content/uploads/2010/07/cacti_work.gif" alt="" width="678" height="268" /></a></p>
<p><big><strong><br />
第二部分：Cacti的安装</strong></big></p>
<p><big><strong> </strong></big>该安装文档是参照www.cacti.net上的官方文档进行安装后，总结出来的。平台是Linux或FreeBSD。</p>
<p><strong>1、安装mysql</strong></p>
<p>cacti从0.4.8g版本开始支持mysql5数据库 (2006/1/12更新)</p>
<p>请到 http://dev.mysql.com/downloads/mysql/4.1.html 或 http://www.mysql.com 下载mysql数据库</p>
<p>安装：</p>
<blockquote><p>shell&gt;; groupadd mysql<br />
shell&gt;; useradd -g mysql mysql<br />
shell&gt;; cd /usr/local<br />
shell&gt;; gunzip &lt; /PATH/TO/MYSQL-VERSION-OS.tar.gz | tar xvf -<br />
shell&gt;; ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql<br />
shell&gt;; cd mysql<br />
shell&gt;; scripts/mysql_install_db &#8211;user=mysql<br />
shell&gt;; chown -R root .<br />
shell&gt;; chown -R mysql data<br />
shell&gt;; chgrp -R mysql .<br />
shell&gt;; bin/mysqld_safe &#8211;user=mysql &amp;</p></blockquote>
<p>./bin/mysqladmin -u root password &#8220;yourpasswd&#8221; 基于安全的原因，为root用户设置密码才能让root用户登陆mysql，不然会有2002错误出现</p>
<p>建立启动脚本：</p>
<blockquote><p>cp ./support-files/mysql.server /etc/init.d/mysql<br />
ln -s ../init.d/mysql S85mysql<br />
ln -s ../init.d/mysql K85mysql</p></blockquote>
<p><strong>2、安装apache</strong><br />
下载：http://apache.freelamp.com/httpd/httpd-2.0.54.tar.bz2</p>
<p>安装：</p>
<blockquote><p>./configure &#8211;prefix=/www &#8211;enable-so<br />
make &amp;&amp; make install</p></blockquote>
<p>建立启动脚本</p>
<blockquote><p>cp /www/bin/apachectl /etc/init.d/httpd<br />
cd /etc/rc3.d<br />
ln -s ../init.d/httpd S85httpd<br />
ln -s ../init.d/httpd K85httpd</p></blockquote>
<p>启动<br />
/www/bin/apachectl start</p>
<p><strong>3、安装php</strong><br />
下载：http://us4.php.net/get/php-4.3.10.tar.gz/from/cn2.php.net/mirror</p>
<p>安装:</p>
<blockquote><p>./configure &#8211;prefix=/www/php &#8211;with-apxs2=/www/bin/apxs &#8211;with-config-file-path=/www/php &#8211;enable-sockets &#8211;with-mysql=/usr/local/mysql &#8211;with-zlib-dir=/usr/include &#8211;with-gd<br />
make &amp;&amp; make install<br />
cp php.ini-dist /www/php/php.ini<br />
vi /www/conf/httpd.conf<br />
加入：<br />
###############for php and cacti###################<br />
AddType application/x-tar .tgz<br />
AddType application/x-httpd-php .php<br />
AddType image/x-icon .ico<br />
DirectoryIndex index.php index.html index.html.var<br />
#######################over########################<br />
../bin/apachectl restart</p></blockquote>
<p><strong>4、设置mysql</strong></p>
<blockquote><p># mysql -u root -prootroot<br />
Welcome to the MySQL monitor. Commands end with ; or \g.<br />
Your MySQL connection id is 10 to server version: 4.0.23-standardType &#8216;help;&#8217; or &#8216;\h&#8217; for help. Type &#8216;\c&#8217; to clear the buffer.mysql&gt;; create database cactidb;<br />
Query OK, 1 row affected (0.00 sec)mysql&gt;; grant all on cactidb.* to root;<br />
Query OK, 0 rows affected (0.01 sec)mysql&gt;; grant all on cactidb.* to root@localhost;<br />
Query OK, 0 rows affected (0.01 sec)mysql&gt;; grant all on cactidb.* to cactiuser;<br />
Query OK, 0 rows affected (0.00 sec)</p>
<p>mysql&gt;; grant all on cactidb.* to cactiuser@localhost;<br />
Query OK, 0 rows affected (0.01 sec)</p>
<p>mysql&gt;; set password for cactiuser@localhost=password(&#8216;cactipw&#8217;);<br />
Query OK, 0 rows affected (0.00 sec)</p>
<p>mysql&gt;; exit</p></blockquote>
<p><strong>5、安装rrdtool</strong><br />
下载：http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/rrdtool-1.0.x/rrdtool-1.0.50.tar.gz<br />
然后</p>
<blockquote><p>./configure<br />
make &amp;&amp; make install</p></blockquote>
<p>与mrtg相比,rrdtool自带了gd库,所以不用先安装gd库.(不过由于rrdtool自带的gd库不支持中文,所以rrdtool画出来的图也不能有中文,否则会出现乱码).</p>
<p>注 意：rrdtool1.2的版本由于已经不再自带外部的lib库（如cgilib，zlib等），所以需要 从http: //people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/libs/下载这些库来安装。建议还是使用 1.0的版本，比较方便。</p>
<p><strong>6、安装net-snmp</strong><br />
几乎所有的网络设备和操作系统默认都安装了snmp服务。<br />
unix系统安装的都是net-snmp或ucd-snmp(其实两个都是同一组人写的)。<br />
如果没有安装snmp,可以到net-snmp.sourceforge.org上下载源码编译安装。<br />
我这里说的安装SNMP服务并不是要求安装SNMPD，其实是Cacti需要用到net-snmp中的两个命令――snmpwalk和snmpget进行数据的采集。</p>
<p>我们可以直接在系统中运行snmpwalk和snmpget看是否有该命令，如果有则不用安装了。</p>
<p><strong>7、安装cacti</strong><br />
注意：写该文档时cacti的最高版本时0.8.6c,现在的最高版本是0.8.6f。由于0.8.6f以下的版本有SQL注入漏洞，请大家下载0.8.6f或以上的版本进行安装,安装方法不变。<br />
下载：http://www.cacti.net/downloads/cacti-0.8.6c.tar.gz</p>
<p>安装：</p>
<blockquote><p>cp cacti-0.8.6c.tar.gz /www/htdocs<br />
tar xzvf cacti-0.8.6c.tar.gz<br />
mv cacti-0.8.6c cacti<br />
cd cacti</p></blockquote>
<p>导入表：</p>
<blockquote><p>/usr/local/mysql/bin/mysql –u root –prootroot cactidb &lt; cacti.sql<br />
chown –R cactiuser rra/ log/</p></blockquote>
<p>设置配置文件：</p>
<blockquote><p>vi /www/htdocs/cacti/include/config.php$database_type = “mysql”;<br />
$database_default = “cactidb”;<br />
$database_hostname = “localhost”;<br />
$database_username = “cactiuser”;<br />
$database_password = “cactipw”;</p></blockquote>
<p>核对以上几项是否正确</p>
<p>Crontab –u cactiuser –e<br />
为cactiuser用户加入</p>
<blockquote><p>*/5 * * * * /www/php/bin/php /www/htdocs/cacti/poller.php &gt;; /dev/null 2&gt;;&amp;1</p></blockquote>
<p>（不要使用root用户运行上面的命令，否则要再运行一次chown –R cactiuser rra/ log/）</p>
<p># ee /etc/rc.conf</p>
<blockquote><p>snmpd_enable=&#8221;YES&#8221;<br />
snmpd_flags=&#8221;-a&#8221;<br />
snmpd_pidfile=&#8221;/var/run/snmpd.pid&#8221;<br />
snmptrapd_enable=&#8221;YES&#8221;<br />
snmptrapd_flags=&#8221;-a -p /var/run/snmptrapd.pid&#8221;</p></blockquote>
<p># ee /usr/local/share/cacti/include/config.php<br />
# ee /usr/local/etc/apache22/Includes/cacti.conf</p>
<blockquote><p>Alias /cacti &#8220;/usr/local/share/cacti/&#8221;</p>
<p>&lt;Directory &#8220;/usr/local/share/cacti/&#8221;&gt;<br />
Options None<br />
AllowOverride None<br />
Order allow,deny<br />
Allow from all<br />
&lt;/Directory&gt;</p></blockquote>
<p><strong>8、页面设置：</strong></p>
<p>在浏览器上输入：</p>
<p>http://IP/cacti</p>
<p>进入cacti的初始设置页面：<br />
在这里我们要输入一些原始的信息：</p>
<p>NEXT －》<br />
输入一些信息，如rrdtool、php、snmpwalk、snmpget的位置，使用ucd-snmp还是net-snmp等 －》<br />
输入原始的用户和密码：admin/admin －》<br />
更改admin用户的密码 －》<br />
点击 Save</p>
<p>安装完成！！！<br />
现在可以在浏览器中进入Cacti的世界了！</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.haohtml.com/index.php/archives/4808/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>监控工具mrtg,cacti,rrdtool,nagios,zabbix比较和安装</title>
		<link>http://blog.haohtml.com/index.php/archives/4738</link>
		<comments>http://blog.haohtml.com/index.php/archives/4738#comments</comments>
		<pubDate>Wed, 21 Jul 2010 11:59:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[网络编程]]></category>
		<category><![CDATA[CACTI]]></category>
		<category><![CDATA[mrtg]]></category>
		<category><![CDATA[nagios]]></category>
		<category><![CDATA[rrdtool]]></category>
		<category><![CDATA[zabbix]]></category>

		<guid isPermaLink="false">http://blog.haohtml.com/?p=4738</guid>
		<description><![CDATA[cacti 是一个用 rrdtool 来画图的网络监控系统, 通常一说到网络管理, 大家首先想到的经常是 mrtg, 但是 mrtg 画的图简单且难看, rrdtool 虽然画图本领一流, 画出来的图也漂亮, 但是他也就是一个画图工具, 不像 mrtg 那样本身还集成了数据收集功能. cacti 则是集成了各种数据收集功能,然后用 rrdtool 画出监控图形. 其本身界面比起同类系统要漂亮不少. 推荐所有有监控需求的人都去研究一下. cacti 和 nagios 是不同功用的系统, nagios 适合监视大量服务器上面的大批服务是否正常, 重点并不在图形化的监控, 其集成的很多功能例如报警,都是 cacti 没有或者很弱的. cacti 主要用途还是用来收集历史数据和画图, 所以界面比 nagios 漂亮很多. net-snmp 是一套广泛使用在类 unix 系统上的 snmp 软件, 包含一套 snmp agent 框架 ,一个 snmpd 和 一堆 snmp 工具 , 其前身为 ucd-snmp. 关于 snmp 是什么, 以及如何配置的文章,网上搜一下有一堆一堆的. 在这里就不重复了. squid [...]]]></description>
			<content:encoded><![CDATA[<div>
<div><a href="http://www.cacti.net/"><span style="color: #0b76ae;">cacti</span></a> 是一个用 <a href="http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/"><span style="color: #0b76ae;">rrdtool</span></a> 来画图的网络监控系统, 通常一说到网络管理, 大家首先想到的经常是 <a href="http://people.ee.ethz.ch/~oetiker/webtools/mrtg/"><span style="color: #0b76ae;">mrtg</span></a>, 但是 mrtg 画的图简单且难看, rrdtool 虽然画图本领一流, 画出来的图也漂亮, 但是他也就是一个画图工具, 不像 mrtg 那样本身还集成了数据收集功能. <span style="color: #ff00ff;">cacti 则是集成了各种数据收集功能,然后用 rrdtool 画出监控图形. 其本身界面比起同类系统要漂亮不少</span>. 推荐所有有监控需求的人都去研究一下.</div>
<div>cacti 和 <a href="http://www.nagios.org/"><span style="color: #0b76ae;">nagios</span></a> 是不同功用的系统, <span style="color: #ff0000;">nagios 适合监视大量服务器上面的大批服务是否正常, 重点并不在图形化的监控, 其集成的很多功能例如报警,都是 cacti 没有或者很弱的</span>. <span style="color: #ff00ff;">cacti 主要用途还是用来收集历史数据和画图, 所以界面比 nagios 漂亮很多</span>.<br />
<a href="http://net-snmp.sourceforge.net/"><span style="color: #0b76ae;">net-snmp</span></a> 是一套广泛使用在类 unix 系统上的 <a href="http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/snmp.htm"><span style="color: #0b76ae;">snmp</span></a> 软件, 包含一套 snmp agent 框架 ,一个 snmpd 和 一堆 snmp 工具 , 其前身为 ucd-snmp. 关于 snmp 是什么, 以及如何配置的文章,网上搜一下有一堆一堆的. 在这里就不重复了.<span id="more-4738"></span></div>
<div><a href="http://www.squid-cache.org/"><span style="color: #0b76ae;">squid</span></a> 是一个 web 缓存加速程序, 本来跟监控没有太大关系, 只是因为他支持 snmp 查询,而我要用 cacti 监控他, 然后遇到了他的缺陷被折腾了一阵子,所以也拉进今天的讨论.</div>
<div>我跟这三个东西斗争的过程如下…</div>
<div>首先先把 cacti 架起来, 在架的过程中我没有遇到问题,但是把 czz 搞了一下, 因为 cacti 要调用外部程序, 不能开 safe_mode, 如果开了就会出奇怪问题.</div>
<div>接下来配置 squid 的查询, squid 的查询数据比较多且复杂,自己做模版的话很麻烦,于是 google 了一下,找了一个 SquidStats (<a href="http://kangkang.org/wordpress/wp-content/uploads/2006/01/SquidStats-0.1.zip"><span style="color: #0b76ae;">见附件</span></a>) 的模版, 按照他的 readme 一步一步来, 就可以正常安装. 于是我就遇到了第一个坎…</div>
<div>设置完成以后执行 poller 的时候总是无法产生 rrd 数据, 给 php 里面加 log 也没有看出来什么, google 换了很多关键词, 总算发现了<a href="http://bugs.cacti.net/view.php?id=644"><span style="color: #0b76ae;">原因</span></a>: cacti 在进行 snmp 查询之前会先确定对方是否在运行, 他用的方法是查询 .1.3.6.1.2.1.1.3.0 这个 oid, 但是 squid 不支持这个 oid , 于是 cacti 就以为 squid down 了,不去真正查询. 临时解决方法是在 cacti 的 settings 里面, poller 页的 <span>Downed Host Detection 选择 Ping, 不要选择带有 snmp 字样的.</span></div>
<div>然后在弄 64 位机的时候遇到了第二个坎, 发现 64 位 linux 机器的流量图总是不正确. 大部分时候没有结果,有时候又特大, 其实这个应该很容易想到是 counter 回绕不正确的问题, 但是我第一次 google 出来的结果是一个说和 tunnel 设备有关的 bug, 这两台 x64 机器上面确实有 tunnel ,于是我就一直以为是 tunnel 的问题. 折腾了好久. 最后才发现原来就是简单的 counter 回绕不正确的问题. 从 Fedora Core 5 的开发目录里面下一个 net-snmp 5.3 的 srpm 在 centos 4.2 上 build 一下, 就搞定了. 注意 FC4 里面的 net-snmp 5.2.x 也是有 bug 的,一定要 5.3 的.</div>
<div>最后推荐所有研究 cacti 的人,一定不要放过 cacti 的官方论坛<a href="http://forums.cacti.net/forum-12.html"><span style="color: #0b76ae;">扩展脚本版面</span></a> . 里面有很多的第三方的模版和脚本, 支持很多的网络设备.</div>
<p><a href="http://tewuxiaoqiang.blog.51cto.com/279711/161207">http://tewuxiaoqiang.blog.51cto.com/279711/161207</a> <strong>Cacti Nagios比较</strong><strong> </strong></p>
<p><a href="http://www.oschina.net/p/zabbix">http://www.oschina.net/p/zabbix</a> zabbix是一个<span style="color: #ff0000;">基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案</span>。zabbix能监视各种网络参数，保证服务器系统的安全运营；并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。<br />
zabbix由2部分构成，zabbix server与可选组件zabbix agent。<br />
zabbix server可以通过SNMP，zabbix agent，ping，端口监视等方法提供对远程服务器/网络状态的监视，数据收集等功能，它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台之上。<br />
zabbix agent需要安装在被监视的目标服务器上，它主要完成对硬件信息或与操作系统有关的内存，CPU等信息的收集。zabbix agent可以运行在Linux ,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000/2003/XP/Vista)等系统之上。<br />
zabbix server可以单独监视远程服务器的服务状态；同时也可以与zabbix agent配合，可以轮询zabbix agent主动接收监视数据（trapping方式），同时还可被动接收zabbix agent发送的数据（trapping方式）。<br />
另外zabbix server还支持SNMP (v1,v2)，可以与SNMP软件(例如：net-snmp)等配合使用。<br />
zabbix的主要特点：<br />
- 安装与配置简单，学习成本低<br />
- 支持多语言（包括中文）<br />
- 免费开源<br />
- 自动发现服务器与网络设备<br />
- 分布式监视以及WEB集中管理功能<br />
- 可以无agent监视<br />
- 用户安全认证和柔软的授权方式<br />
- 通过WEB界面设置或查看监视结果<br />
- email等通知功能<br />
等等<br />
Zabbix主要功能：<br />
- CPU负荷<br />
- 内存使用<br />
- 磁盘使用<br />
- 网络状况<br />
- 端口监视<br />
- 日志监视<br />
zabbix的License：GPL v2<br />
标签： Linux PHP C/C++ 系统监控<br />
开发语言： PHP C/C++<br />
项目主页： <a href="http://www.zabbix.com/">http://www.zabbix.com/</a><br />
文档地址： <a href="http://www.zabbix.com/documentation.php">http://www.zabbix.com/documentation.php</a><br />
下载地址： <a href="http://www.zabbix.com/download.php">http://www.zabbix.com/download.php</a><br />
收录时间：2008年09月16日</p>
<div>首先简单介绍一下: <a href="http://www.cacti.net/"><span style="color: #0b76ae;">cacti</span></a> 是一个用 <a href="http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/"><span style="color: #0b76ae;">rrdtool</span></a> 来画图的网络监控系统, 通常一说到网络管理, 大家首先想到的经常是 <a href="http://people.ee.ethz.ch/~oetiker/webtools/mrtg/"><span style="color: #0b76ae;">mrtg</span></a>, 但是 mrtg 画的图简单且难看, rrdtool 虽然画图本领一流, 画出来的图也漂亮, 但是他也就是一个画图工具, 不像 mrtg 那样本身还集成了数据收集功能. cacti 则是集成了各种数据收集功能,然后用 rrdtool 画出监控图形. 其本身界面比起同类系统要漂亮不少. 推荐所有有监控需求的人都去研究一下.</div>
<div>cacti 和 <a href="http://www.nagios.org/"><span style="color: #0b76ae;">nagios</span></a> 是不同功用的系统, nagios 适合监视大量服务器上面的大批服务是否正常, 重点并不在图形化的监控, 其集成的很多功能例如报警,都是 cacti 没有或者很弱的. cacti 主要用途还是用来收集历史数据和画图, 所以界面比 nagios 漂亮很多</div>
<div>
<p>1. <span style="text-decoration: underline;">主要对流量及主机在线状态监控软件,如最初的MRTG,PRGT,CACTI,Hobbit</span>,<br />
2. 能<span style="color: #ff0000;">对服务器的关键服务及进程进行监控的软件,如Big Brother,Nagios</span>,</p>
<p><a href="http://blog.chinaunix.net/u/12909/showart_1073431.html">http://blog.chinaunix.net/u/12909/showart_1073431.html</a> mrtg,cacti,rrdtool,nagios, zabbix安装</p>
<p>安装net-snmp<br />
下载net-snmp-5.3.0.1-1.EL4.i386.rpm<br />
安装mrtg：<span style="text-decoration: underline;"><span style="color: #0000ff;">www.mrtg.org</span></span><br />
下载<br />
<a href="http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/mrtg-2.12.2.tar.gz" target="_blank"><span style="color: #0000ff;">mrtg-2.12.2.tar.gz</span></a></p>
<p>./configure   &#8211;prefix=/usr/local/mrtg &amp; make &amp; make install   cp /usr/local/mrtg/bin/*   /usr/bin<br />
安装rrdtool：<br />
<a href="http://www.rrdtool.org/" target="_blank"><span style="color: #0000ff;">www.rrdtool.org</span></a></p>
<p><a href="http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/doc/rrdbuild.en.html" target="_blank"><span style="color: #0000ff;">http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/doc/rrdbuild.en.html</span></a><br />
(以下部分可以直接copy到linux shell下 自动安装,我是分段copy,整体copy未尝试)<br />
BUILD_DIR=/tmp/rrdbuild<br />
INSTALL_DIR=/usr/local/rrdtool<br />
mkdir -p $BUILD_DIR<br />
mkdir $BUILD_DIR/lb<br />
cd $BUILD_DIR<br />
#####zlib<br />
wget<br />
<a href="http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/zlib-1.2.2.tar.gz" target="_blank"><span style="color: #0000ff;">http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/zlib-1.2.2.tar.gz</span></a><br />
tar zxvf zlib-1.2.2.tar.gz<br />
cd zlib-1.2.2<br />
env CFLAGS=&#8221;-O3 -fPIC&#8221; ./configure &#8211;prefix=$BUILD_DIR/lb<br />
make<br />
make install<br />
cd ..<br />
rm -fR zlib*<br />
#####libpng<br />
wget<span style="text-decoration: underline;"><span style="color: #0000ff;"> </span></span><br />
<a href="http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/libpng-1.2.8-config.tar.gz" target="_blank"><span style="color: #0000ff;">http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/libpng-1.2.8-config.tar.gz</span></a><br />
tar zxvf libpng-1.2.8-config.tar.gz<br />
cd libpng-1.2.8-config<br />
env CPPFLAGS=&#8221;-I$BUILD_DIR/lb/include&#8221; LDFLAGS=&#8221;-L$BUILD_DIR/lb/lib&#8221; \<br />
CFLAGS=&#8221;-O3 -fPIC&#8221; ./configure &#8211;disable-shared &#8211;prefix=$BUILD_DIR/lb<br />
make<br />
make install<br />
cd ..<br />
rm -fR libpng*<br />
#########freetype<br />
wget<span style="text-decoration: underline;"><span style="color: #0000ff;"> </span></span><br />
<a href="http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/freetype-2.1.9.tar.gz" target="_blank"><span style="color: #0000ff;">http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/freetype-2.1.9.tar.gz</span></a><br />
tar zxvf freetype-2.1.9.tar.gz<br />
cd freetype-2.1.9<br />
env CPPFLAGS=&#8221;-I$BUILD_DIR/lb/include&#8221; LDFLAGS=&#8221;-L$BUILD_DIR/lb/lib&#8221; CFLAGS=&#8221;-O3 -fPIC&#8221; ./configure &#8211;disable-shared &#8211;prefix=$BUILD_DIR/lb<br />
make<br />
make install<br />
cd ..<br />
rm -fR freetype*<br />
#######<strong> </strong>libart_lgpl<br />
wget<span style="text-decoration: underline;"><span style="color: #0000ff;"> </span></span><br />
<a href="http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/libart_lgpl-2.3.17.tar.gz" target="_blank"><span style="color: #0000ff;">http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/libart_lgpl-2.3.17.tar.gz</span></a><br />
tar zxvf libart_lgpl-2.3.17.tar.gz<br />
cd libart_lgpl-2.3.17<br />
env CFLAGS=&#8221;-O3 -fPIC&#8221; ./configure &#8211;disable-shared &#8211;prefix=$BUILD_DIR/lb<br />
make<br />
make install<br />
cd ..<br />
rm -fR libart*<br />
########cgilib<br />
wget<span style="text-decoration: underline;"><span style="color: #0000ff;"> http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/libs/cgilib-0.5.tar.gz</span></span><br />
tar zxvf cgilib-0.5.tar.gz<br />
cd cgilib-0.5<br />
make CC=gcc CFLAGS=&#8221;-O3 -fPIC -I.&#8221;<br />
mkdir -p $BUILD_DIR/lb/include<br />
cp *.h $BUILD_DIR/lb/include<br />
mkdir -p $BUILD_DIR/lb/lib<br />
cp libcgi* $BUILD_DIR/lb/lib<br />
cd ..<br />
rm -fR cgilib*<br />
#########install rrdtool<br />
ranlib $BUILD_DIR/lb/lib/*.a # 优化<br />
IR=-I$BUILD_DIR/lb/include<br />
CPPFLAGS=&#8221;$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng&#8221;<br />
LDFLAGS=&#8221;-L$BUILD_DIR/lb/lib&#8221;<br />
CFLAGS=-O3<br />
export CPPFLAGS LDFLAGS CFLAGS<br />
cd $BUILD_DIR/<br />
wget <span style="text-decoration: underline;"><span style="color: #0000ff;">http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/rrdtool-1.2.12.tar.gz</span></span><br />
tar zxvf rrdtool-1.2.12.tar.gz<br />
cd   rrdtool-1.2.12<br />
./configure &#8211;prefix=$INSTALL_DIR &#8211;disable-python &#8211;disable-tcl<br />
make<br />
make install<br />
cd ..<br />
rm -fR rrdtool*<br />
***********************RRDTOOL INSTALL SUCCESSFULLY**********************</p>
<p>安装CACTI：<span style="text-decoration: underline;"><span style="color: #0000ff;">www.cacti.net</span></span><br />
cacti-0.8.6h.tar.gz<br />
tar zxvf cacti-0.8.6h.tar.gz<br />
cp –R cacti-0.8.6h   /usr/local/cacti/<br />
配置Mysql：<br />
group-add cacti<br />
useradd -g cacti cactiuser<br />
/usr/local/mysql/bin/mysql – &#8211;user=root – &#8211;password=yanhannet<br />
mysql&gt; create database cactidb;<br />
mysql&gt; grant all on cactidb.* to <em>cactiuser@localhost;</em><br />
mysql&gt; set password for cactiuser@localhost=password(&#8216;yanhannet&#8217;);<br />
mysql&gt; exit<br />
# mysql &#8211;user=root &#8211;password=yanhannet cactidb<br />
# chown -R cactiuser rra/ log/<br />
# chmod –R 777 rra/ log/<br />
# vi cacti/include/config.php<br />
$database_type = &#8220;mysql&#8221;;<br />
$database_default = &#8220;cactidb&#8221;;<br />
$database_hostname = &#8220;localhost&#8221;;<br />
$database_username = &#8220;cactiuser&#8221;;<br />
$database_password = &#8220;yanhannet&#8221;;<br />
$database_port = &#8220;3306&#8243;;<br />
vi /etc/ctrontab (crontab -u cactiuser –e）<br />
*/5 * * * * cactiuser php /usr/local/cacti/poller.php &gt; /dev/null 2&gt;&amp;1<br />
配置apache<br />
vi /usr/local/apache/conf/conf.d/cacti.conf<br />
Alias /cacti /usr/local/cacti<br />
Options None<br />
AllowOverride None<br />
Order allow,deny<br />
Allow from all<br />
# AuthName &#8220;XXXXX&#8221;<br />
# AuthType Basic<br />
# AuthUserFile /XXX/htpasswd.users<br />
# Require   valid-user</p>
<p>******************CACTI   INSTALL   SUCCESSFULLY ***********************</p>
<p>安装nagios<br />
<a href="http://www.nagios.org/" target="_blank"><span style="color: #800080;">www.nagios.org</span></a></p>
<p>useradd nagios<br />
mkdir /usr/local/nagios<br />
chown nagios.nagios /usr/local/nagios/<br />
./configure &#8211;prefix=/usr/local/nagios &#8211;with-gd-lib=/usr/lib &#8211;with-gd-inc=/usr/include<br />
注：红色部分为gd库位置，如果不加，这会出现<strong>The statusmap, trends and histogram CGIs are missing or dont work!</strong><br />
查看3-D status map 需要在本机下载插件contvrml</p>
<p>http://www.parallelgraphics.com/bin/cortvrml.exe</p>
<p>在apache配置文档目录下<br />
vi nagios.conf<br />
scriptalias   /nagios/cgi-bin /usr/local/nagios/sbin<br />
allowoverride authconfig<br />
options execcgi<br />
order allow,deny<br />
allow from all<br />
alias /nagios /usr/local/nagios/share<br />
options none<br />
allowoverride authconfig<br />
order allow,deny<br />
allow from all<br />
在nagios sbin/ share/目录下<br />
vi .htaccess<br />
authname &#8220;nagios access&#8221;<br />
authtype basic<br />
authuserfile   /usr/local/nagios/etc/.nagios.users<br />
require valid-user<br />
生成用户文件<br />
htpasswd -c /usr/local/nagios/etc/.nagios.users nagiosadmin<br />
具体参数配置参考官方文档</p>
<p>工具插件：<br />
<a href="http://www.nagiosexchange.org/" target="_blank"><span style="color: #0000ff;">www.nagiosexchange.org</span></a><br />
fruity 要求php5以上<br />
下载：<br />
<a href="https://sourceforge.net/project/showfiles.php?group_id=136248" target="_blank"><span style="color: #800080;">https://sourceforge.net/project/showfiles.php?group_id=136248</span></a></p>
<p>http://pear.php.net/get/HTML_TreeMenu-1.2.0.tgz</p>
<p><a href="http://sourceforge.net/project/showfiles.php?group_id=42718" target="_blank"><span style="color: #0000ff;">http://sourceforge.net/project/showfiles.php?group_id=42718</span></a></p>
<p>http://puzzle.dl.sourceforge.net/sourceforge/adodb/adodb471-1.tgz</p>
<p>直接解压复制到fruity 下 分别改名为HTML 和adodb 其他不做修改<br />
修改 fruity/includes下的config.ifg,需要更改的地方有，路径，mysql信息<br />
mysql 添加fruity 数据库和user,password.<br />
*************************NAGIOS INSTALL SUCCESSFULLY*****************</p>
<p>安装zabbix：<br />
wget http://belnet.dl.sourceforge.net/sourceforge/zabbix/zabbix-1.1beta6.tar.gz<br />
tar zxvf zabbix-1.1beta6.tar.gz<br />
mysql -u   -p<br />
&gt; creat database zabbix;<br />
&gt;quit;<br />
cd creat/mysql<br />
mysql -u   -p zabbix<br />
cd ../data<br />
mysql -u   -p zabbix<br />
cd ..<br />
./configure &#8211;prefix=/usr/local/zabbix &#8211;with-mysql=/usr/local/mysql &#8211;enable-server &#8211;enable-agent<br />
make<br />
make install</p>
<p>cp misc/conf/* /etc/zabbix/conf/<br />
cp frontends/php/* /usr/local/zabbix/php<br />
修改apache添加zabbix.conf</p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.haohtml.com/index.php/archives/4738/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FreeBSD 6.1上用net-snmp-5.2.2和mrtg-2.13.2实现多种监控</title>
		<link>http://blog.haohtml.com/index.php/archives/3824</link>
		<comments>http://blog.haohtml.com/index.php/archives/3824#comments</comments>
		<pubDate>Mon, 07 Jun 2010 06:38:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[服务器类]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[mrtg]]></category>

		<guid isPermaLink="false">http://blog.haohtml.com/?p=3824</guid>
		<description><![CDATA[其实从标题来看，这样的文章已经相当多，不过由于这次使用了最新版的系统和软件，在配置方面比原来的版本有了一些改进，明显更加方便，所以值得记录 一下和大家分享。 这次实现监控的目标是系统网络流量、TCP连接数、CPU负载、system和user的CPU负载、内存消耗、swap使用，另外还可以在此基础 上实现磁盘监控、Mailscanner的垃圾邮件等监控。 首先通过cvsup更新系统源码和ports数到当前的FreeBSD 6.1Release版本，保持系统和软件包的最新版本，然后使用极为方便的ports进行软件安装。 1、安装net-snmp-5.2.2 #cd /usr/ports/net-mgmt/net-snmp #make install clean 然后就等着系统自动为您下载net-snmp-5.2.2.tar.gz软件包以及关联软件包，ports会自动完成后续的安装。 2、配置snmp 等安装完成后会看到成功的提示以及后续配置的说明。接下来我们进行简单的几个配置即可完成snmp的安装配置。 #mkdir /usr/local/etc/snmp #cp /usr/local/share/snmp/snmpd.conf /usr/local/etc/snmp/ #vim /usr/local/etc/snmp/snmpd.conf 下面是我的配置文件内容 com2sec local localhost private com2sec mynet 192.168.0.0/24 public com2sec public default public group mygroup v1 mynet group mygroup v2c mynet group mygroup usm mynet group local v1 local group local v2c local [...]]]></description>
			<content:encoded><![CDATA[<p>其实从标题来看，这样的文章已经相当多，不过由于这次使用了最新版的系统和软件，在配置方面比原来的版本有了一些改进，明显更加方便，所以值得记录 一下和大家分享。</p>
<p>这次实现监控的目标是系统网络流量、TCP连接数、CPU负载、system和user的CPU负载、内存消耗、swap使用，另外还可以在此基础 上实现磁盘监控、Mailscanner的垃圾邮件等监控。</p>
<p><span id="more-94"> </span></p>
<p>首先通过cvsup更新系统源码和ports数到当前的FreeBSD  6.1Release版本，保持系统和软件包的最新版本，然后使用极为方便的ports进行软件安装。</p>
<p>1、安装net-snmp-5.2.2<br />
#cd /usr/ports/net-mgmt/net-snmp<br />
#make install clean<br />
然后就等着系统自动为您下载net-snmp-5.2.2.tar.gz软件包以及关联软件包，ports会自动完成后续的安装。<span id="more-3824"></span></p>
<p>2、配置snmp<br />
等安装完成后会看到成功的提示以及后续配置的说明。接下来我们进行简单的几个配置即可完成snmp的安装配置。<br />
#mkdir /usr/local/etc/snmp<br />
#cp /usr/local/share/snmp/snmpd.conf /usr/local/etc/snmp/<br />
#vim /usr/local/etc/snmp/snmpd.conf<br />
下面是我的配置文件内容</p>
<div>
<div>com2sec local localhost  private<br />
com2sec mynet 192.168.0.0/24 public<br />
com2sec public default  public</p>
<p>group mygroup v1 mynet<br />
group mygroup v2c mynet<br />
group  mygroup usm mynet<br />
group local v1 local<br />
group local v2c local<br />
group  local usm local<br />
group public v1 public<br />
group public v2c public<br />
group  public usm public</p>
<p>view all included .1 80</p>
<p>access mygroup  &#8220;&#8221; any noauth exact mib2 none none<br />
access public &#8220;&#8221; any noauth exact  all none none<br />
access local &#8220;&#8221; any noauth exact all all all</p>
<p>syslocation  Right here, right now.<br />
syscontact Me</p>
<p>proc mountd<br />
proc  ntalkd 4<br />
proc sendmail 10 1</p>
<p>exec echotest /bin/echo hello  world</p>
<p>disk / 10000</p>
<p>load 12 14 14</p></div>
</div>
<p>其实里面只有很少的部分是自己修改的，大部分是默认值，具体的您可以对比一下您的snmpd.conf文件，建议把您的配置文件使用 grep  -v # snmpd.conf &gt; snmpd.conf.new 去掉所有的注释行再进行配置，这样看起来更清晰一些。</p>
<p>完成上面的配置，snmp的安装和配置已经完成，此时我们可以使用 snmpwalk -v 1 -c public localhost  system 来测试看看返回结果，正常应该返回类似下面的内容。</p>
<div>
<div>SNMPv2-MIB::sysDescr.0 =  STRING: FreeBSD www.toplee.com 6.1-RELEASE FreeBSD 6.1-RELEASE #0: Wed  May 24 13:32:37 CST 2006  root@www.toplee.com:/usr/src/sys/i386/compile/TOPLEE i386<br />
SNMPv2-MIB::sysObjectID.0  = OID: SNMPv2-SMI::dod.0.0.0.0.0.0.0<br />
DISMAN-EVENT-MIB::sysUpTimeInstance  = Timeticks: (8548737) 23:44:47.37<br />
SNMPv2-MIB::sysContact.0 =  STRING: Me<br />
SNMPv2-MIB::sysName.0 = STRING: www.toplee.com<br />
SNMPv2-MIB::sysLocation.0  = STRING: Right here, right now.<br />
SNMPv2-MIB::sysServices.0 =  INTEGER: 72<br />
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (11)  0:00:00.11<br />
SNMPv2-MIB::sysORID.1 = OID: IF-MIB::ifMIB<br />
SNMPv2-MIB::sysORID.2  = OID: SNMPv2-MIB::snmpMIB<br />
SNMPv2-MIB::sysORID.3 = OID:  TCP-MIB::tcpMIB<br />
SNMPv2-MIB::sysORID.4 = OID: IP-MIB::ip<br />
SNMPv2-MIB::sysORID.5  = OID: UDP-MIB::udpMIB<br />
SNMPv2-MIB::sysORID.6 = OID:  SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup<br />
SNMPv2-MIB::sysORID.7 = OID:  SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance<br />
SNMPv2-MIB::sysORID.8 =  OID: SNMP-MPD-MIB::snmpMPDCompliance<br />
SNMPv2-MIB::sysORID.9 = OID:  SNMP-USER-BASED-SM-MIB::usmMIBCompliance<br />
SNMPv2-MIB::sysORDescr.1 =  STRING: The MIB module to describe generic objects for network interface  sub-layers<br />
SNMPv2-MIB::sysORDescr.2 = STRING: The MIB module for  SNMPv2 entities<br />
SNMPv2-MIB::sysORDescr.3 = STRING: The MIB module for  managing TCP implementations<br />
SNMPv2-MIB::sysORDescr.4 = STRING: The  MIB module for managing IP and ICMP implementations<br />
SNMPv2-MIB::sysORDescr.5  = STRING: The MIB module for managing UDP implementations<br />
SNMPv2-MIB::sysORDescr.6  = STRING: View-based Access Control Model for SNMP.<br />
SNMPv2-MIB::sysORDescr.7  = STRING: The SNMP Management Architecture MIB.<br />
SNMPv2-MIB::sysORDescr.8  = STRING: The MIB for Message Processing and Dispatching.<br />
SNMPv2-MIB::sysORDescr.9  = STRING: The management information definitions for the SNMP  User-based Security Model.<br />
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (9)  0:00:00.09<br />
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (11) 0:00:00.11<br />
SNMPv2-MIB::sysORUpTime.3  = Timeticks: (11) 0:00:00.11<br />
SNMPv2-MIB::sysORUpTime.4 = Timeticks:  (11) 0:00:00.11<br />
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (11)  0:00:00.11<br />
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (11) 0:00:00.11<br />
SNMPv2-MIB::sysORUpTime.7  = Timeticks: (11) 0:00:00.11<br />
SNMPv2-MIB::sysORUpTime.8 = Timeticks:  (11) 0:00:00.11<br />
SNMPv2-MIB::sysORUpTime.9 = Timeticks: (11)  0:00:00.11</div>
</div>
<p>您可以去掉后面的system参数得到所有的snmp返回数据，通过分析这些数据就可以实现对系统的各种监控，这是mrtg通过snmp实现监控的 途径。</p>
<p>为了让系统在启动的时候自动启动snmpd监听服务，我们要对/etc/rc.conf进行配置，在该文件种添加下面内容：<br />
snmpd_enable=”YES”<br />
snmpd_flags=”-a -p /var/run/snmpd.pid”<br />
snmptrapd_enable=”YES”<br />
snmptrapd_flags=”-a -p /var/run/snmptrapd.pid”<br />
下面参数可选<br />
NET_SNMP_SYS_CONTACT=”Michael@toplee.com”<br />
NET_SNMP_SYS_LOCATION=”Beijing,China”<br />
DEFAULT_SNMP_VERSION=3<br />
NET_SNMP_MIB_MODULES=”host smux mibII/mta_sendmail ucd-snmp/diskio”<br />
NET_SNMP_LOGFILE=/var/log/snmpd.log<br />
NET_SNMP_PERSISTENTDIR=/var/net-snmp</p>
<p>3、安装mrtg-2.13.2<br />
在完成了上面的snmp安装配置之后，开始进行mrtg的安装配置，也使用非常方便的ports进行安装<br />
#cd /usr/ports/net-mgmt/mrtg/<br />
#make install clean</p>
<p>4、配置mrtg<br />
#vim /usr/local/etc/mrtg/mrtg.cfg<br />
下面是我的配置文件</p>
<div>
<div>WorkDir: /var/www/mrtg<br />
Language:  gb2312</p>
<p>Options[_]: growright, bits</p>
<p>Target[traffic_1]:  1:public@localhost:<br />
SetEnv[traffic_1]: MRTG_INT_IP=&#8221;localhost&#8221;  MRTG_INT_DESCR=&#8221;流量分析&#8221;<br />
Xsize[traffic_1]: 380<br />
MaxBytes[traffic_1]:  2500000<br />
Title[traffic_1]: 前端服务器流量监控<br />
PageTop[traffic_1]:  &lt;h1&gt;前端服务器流量监控控&lt;/h1&gt;<br />
&lt;table&gt;<br />
&lt;tr&gt;&lt;td&gt;System:&lt;/td&gt;     &lt;td&gt;FreeBSD web server  of Toplee.com Col &lt;/td&gt;&lt;/tr&gt;<br />
&lt;tr&gt;&lt;td&gt;Maintainer:&lt;/td&gt; &lt;td&gt;Michael  &amp;lt;toplee@gamil.com&amp;gt; &lt;/td&gt;&lt;/tr&gt;<br />
&lt;tr&gt;&lt;td&gt;ifType:&lt;/td&gt;     &lt;td&gt;ethernetCsmacd  (6)&lt;/td&gt;&lt;/tr&gt;<br />
&lt;tr&gt;&lt;td&gt;Max  Speed:&lt;/td&gt;  &lt;td&gt;2.5 MBytes/s&lt;/td&gt;&lt;/tr&gt;<br />
&lt;/table&gt;</p>
<p>###########################  TCP Cons ######################################<br />
Target[tcpopen]:  .1.3.6.1.2.1.6.9.0&amp;.1.3.6.1.2.1.6.9.0:public@localhost<br />
Options[tcpopen]:  nopercent,growright,gauge,noinfo<br />
Title[tcpopen]: Open TCP  connections<br />
PageTop[tcpopen]: &lt;h1&gt;Open TCP  connections&lt;/h1&gt;<br />
MaxBytes[tcpopen]: 1000000<br />
YLegend[tcpopen]:  # conns<br />
ShortLegend[tcpopen]: connections<br />
LegendI[tcpopen]:   Connections:<br />
LegendO[tcpopen]:<br />
Legend1[tcpopen]: Open TCP  connections</p>
<p>######################### CPU  ############################################<br />
LoadMIBs:  /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt<br />
Target[cpu]:ssCpuRawUser.0&amp;ssCpuRawUser.0:public@localhost  + ssCpuRawSystem.0&amp;ssCpuRawSystem.0:public@localhost +  ssCpuRawNice.0&amp;ssCpuRawNice.0:public@localhost<br />
RouterUptime[cpu]:  public@localhost<br />
MaxBytes[cpu]: 100<br />
Title[cpu]: CPU Load<br />
PageTop[cpu]:  &lt;h1&gt;Carga de CPU %&lt;/h1&gt;<br />
Unscaled[cpu]: ymwd<br />
ShortLegend[cpu]:  %<br />
YLegend[cpu]: Uso de CPU<br />
Legend1[cpu]: CPU Activa % (Carga)<br />
Legend2[cpu]:<br />
Legend3[cpu]:<br />
Legend4[cpu]:<br />
LegendI[cpu]:   Active<br />
LegendO[cpu]:<br />
Options[cpu]: growright,nopercent</p>
<p>########################  CPU UsrSys ####################################<br />
LoadMIBs:  /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt<br />
Target[usrsys]:ssCpuRawUser.0&amp;ssCpuRawSystem.0:public@localhost<br />
RouterUptime[usrsys]:  public@localhost<br />
MaxBytes[usrsys]: 100<br />
Title[usrsys]: CPU LOAD<br />
PageTop[usrsys]:  &lt;h1&gt;CPU (user and system) Load %&lt;/h1&gt;<br />
Unscaled[usrsys]:  ymwd<br />
ShortLegend[usrsys]: %<br />
YLegend[usrsys]: CPU Utilization<br />
Legend1[usrsys]:  User CPU in % (Load)<br />
Legend2[usrsys]: System CPU in % (Load)<br />
Legend3[usrsys]:<br />
Legend4[usrsys]:<br />
LegendI[usrsys]:   User<br />
LegendO[usrsys]:  System<br />
Options[usrsys]:  growright,nopercent</p>
<p>########################### Mem  ###########################################<br />
LoadMIBs:  /usr/local/share/snmp/mibs/HOST-RESOURCES-MIB.txt<br />
Target[mem]:  .1.3.6.1.4.1.2021.4.6.0&amp;.1.3.6.1.4.1.2021.4.6.0:public@localhost<br />
PageTop[mem]:  &lt;h1&gt;Memory RAM&lt;/h1&gt;<br />
Options[mem]:  nopercent,growright,gauge,noinfo<br />
Title[mem]: Memory Libre<br />
MaxBytes[mem]:  1055309824<br />
kMG[mem]: k,M,G,T,P,X<br />
YLegend[mem]: bytes<br />
ShortLegend[mem]:  bytes<br />
LegendI[mem]:  Free Memory:<br />
LegendO[mem]:<br />
Legend1[mem]:  Free memory, not including swap, in bytes</p>
<p>#######################  MEM1 ############################################<br />
LoadMIBs:  /usr/local/share/snmp/mibs/HOST-RESOURCES-MIB.txt<br />
Target[mem1]:.1.3.6.1.4.1.2021.4.6.0&amp;.1.3.6.1.4.1.2021.4.15.0:public@localhost  * 1024<br />
MaxBytes[mem1]: 1055309824<br />
Title[mem1]: MEMORY USAGE<br />
kilo[mem1]:  1024<br />
WithPeak[mem1]: my<br />
Options[mem1]: gauge,growright<br />
YLegend[mem1]:  Memory Usage<br />
LegendI[mem1]: Used:<br />
LegendO[mem1]: Cached:<br />
Legend1[mem1]:  Used Memory Size<br />
Legend2[mem1]: Cached Memory Size<br />
Legend3[mem1]:  5min Max Used Memory Size<br />
Legend4[mem1]: 5min Max Cached Memory Size<br />
ShortLegend[mem1]:  B<br />
PageTop[mem1]: &lt;h1&gt;MEMORY USAGE&lt;/h1&gt;</p>
<p>############################  Swap info #####################################<br />
LoadMIBs:  /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt<br />
Target[swap]:  memAvailSwap.0&amp;memAvailSwap.0:public@localhost<br />
PageTop[swap]:  &lt;h1&gt;Memory Swap&lt;/h1&gt;<br />
Options[swap]:  nopercent,growright,gauge,noinfo<br />
Title[swap]: Memory Libre<br />
MaxBytes[swap]:  3000000<br />
kMG[swap]: k,M,G,T,P,X<br />
YLegend[swap]: bytes<br />
ShortLegend[swap]:  bytes<br />
LegendI[swap]:  Memory Libre:<br />
LegendO[swap]:<br />
Legend1[swap]:  Swap memory avail, in bytes</p>
<p>######################## Load  Avarage ####################################<br />
LoadMIBs:  /usr/local/share/snmp/mibs/HOST-RESOURCES-MIB.txt<br />
Target[load]:.1.3.6.1.4.1.2021.10.1.3.2&amp;.1.3.6.1.4.1.2021.10.1.3.3:public@localhost  * 100<br />
WithPeak[load]: my<br />
MaxBytes[load]: 10000<br />
Title[load]:  SYSTEM LOAD AVG.<br />
Options[load]: growright,gauge,integer,nopercent<br />
YLegend[load]:  Load Average<br />
LegendI[load]: 5 min:<br />
LegendO[load]: 15 min:<br />
Legend1[load]:  Load average for 5 Min<br />
Legend2[load]: Load average for 15 Min<br />
Legend3[load]:  Max load average for 5 Min<br />
Legend4[load]: Max Load average for 15  Min<br />
YTicsFactor[load]: 0.01<br />
#ShortLegend[load]: _<br />
PageTop[load]:  &lt;h1&gt;LOAD AVERAGE &lt;/h1&gt;</p></div>
</div>
<p>可以根据具体的需求进行修改上面的配置文件，有什么疑问可以参考mrtg的官方文档，比如<a href="http://net-snmp.sourceforge.net/tutorial/tutorial-5/mrtg/index.html">http://net-snmp.sourceforge.net/tutorial/tutorial-5/mrtg/index.html</a> 有当前版本的snmp下mrtg.cfg配置的范例可以参考。</p>
<p>下面是我的mrtg监控页面效果 <a href="http://toplee:toplee@mrtg.toplee.com/">http://toplee:toplee@mrtg.toplee.com</a></p>
<p>以上的讨论基本都是基于在本机上进行监控而言，如果你有多台机器进行监控，可以根据具体需要修改snmpd.conf文件中public的权限，让 您的mrtg监控机器可以通过snmp取到监控数据。</p>
<p>欢迎大家一起讨论，有发现我前面的什么地方有问题也欢迎给我指出来，共同进步。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.haohtml.com/index.php/archives/3824/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FreeBSD中用MRTG监测网路流量</title>
		<link>http://blog.haohtml.com/index.php/archives/3821</link>
		<comments>http://blog.haohtml.com/index.php/archives/3821#comments</comments>
		<pubDate>Mon, 07 Jun 2010 06:16:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[服务器类]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[mrtg]]></category>

		<guid isPermaLink="false">http://blog.haohtml.com/?p=3821</guid>
		<description><![CDATA[1.安装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=&#8221;YES&#8221; snmpd_flags=&#8221;-p /var/run/snmpd.pid&#8221; # /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 [...]]]></description>
			<content:encoded><![CDATA[<p><strong> 1.安装SNMP</strong><br />
一般版本的FreeBSD系统SNMP存放在/usr/ports/net/net-snmp下面，但是有的版本不是。有些版本 在安装Package的时候，除了要安装Net之外，还要安装Net-mgmt里面的SNMP，安装好之后，SNMP就存放在/usr/ports /net-mgmt/net-snmp下面了。下面就是安装过程：<br />
# cd /usr/ports/net-mgmt/net-snmp  #snmp的存放路径<br />
# make install clean #安装snmp<br />
# ee /etc/rc.conf<br />
snmpd_enable=&#8221;YES&#8221;<br />
snmpd_flags=&#8221;-p  /var/run/snmpd.pid&#8221;<br />
# /etc/netstart<br />
# ee  /usr/local/share/snmp/snmpd.conf<br />
rocommunity public<br />
#  /usr/local/etc/rc.d/snmpd.sh start #启动snmp<span id="more-3821"></span></p>
<p><strong>2、 安装mrtg</strong><br />
mrtg根据不同的 版本存放的位置不同，一般存放在/usr/ports/net/net-snmp下面，这里介绍的安装过程种mrtg存放在/usr/ports /net-mgmt/mrtg下面。<br />
# cd /usr/ports/net-mgmt/mrtg #mrtg的存放路径<br />
# make  install clean #安装mrtg<br />
# cd /home #以下四个命令是建立MRTG<br />
# mkdir http  #的WEB目录，具体目录可以<br />
# cd http #根据个人的爱好自己设定<br />
# mkdir mrtg<br />
# cd  /usr/local/etc/mrtg<br />
# /usr/local/bin/cfgmaker public@192.168.1.100  &gt; mrtg #创建MRTG的cfg文件<br />
192.168.1.100 ：被监控设备的地址<br />
mrtg ：是要输出的档案<br />
public  ：设备设定档的共同的名字(community name) 预设是public，<br />
这个可以在/usr/local/share/snmp /snmpd.conf里面修改<br />
# ee mrtg<br />
WorkDir: /home/http/mrtg #指向已设定的WEB目录<br />
#  /usr/local/bin/indexmaker –-title ‘标题’ &#8211;output<br />
/home/http/mrtg/index.html  mrtg #生成index.html文件<br />
# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg  #运行mrtg（如果有错误，就<br />
多运行几次）<br />
#ee /etc/crontab #让mrtg每5分钟运行一次<br />
*/5 * * *  root /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg</p>
<p><strong>3、 安装apache</strong><br />
apache 存放在/usr/ports/www/apache2下面<br />
# cd /usr/ports/www/apache2 #apache2的存放地址<br />
#  make install clean #安装apache2<br />
# ee /etc/rc.conf<br />
apache2_enable=”YES”<br />
#  /etc/netstart<br />
# ee /usr/local/etc/apache2/httpd.conf #配置虚拟主机<br />
NameVirtualHost  *:80</p>
<p>&lt;Directory &#8220;/home/http/mrtg&#8221;&gt;<br />
Options Indexes  Includes FollowSymlinks<br />
Allow from all #允许访问<br />
&lt;/Directory&gt;</p>
<p>&lt;VirtualHost  *:80&gt;<br />
ServerAdmin root@test.com<br />
DocumentRoot /home/http/mrtg<br />
ServerName  xxx.xxx.xxx.xxx #安装mrtg的主机地址<br />
DirectoryIndex index.html  #前面生成的index.html<br />
ErrorLog /var/log/xxx.xxx.xxx.xxx-error_log<br />
CustomLog  /var/log/xxx.xxx.xxx.xxx-access_log common<br />
&lt;/VirtualHost&gt;<br />
#  /usr/local/etc/rc.d/apache2.sh start #启动apache<br />
打开 http://xxx.xxx.xxx.xxx，就可以看到被监控设备的网络信息了。</p>
<p><strong>4、  设置http://xxx.xxx.xxx.xxx的访问权限</strong><br />
监控流量的网页做好之后，接下来就设置访问这个网页的权限。<br />
1)  修改http.conf ，在&lt;Directory &#8220;/home/http/mrtg&#8221;&gt;和&lt;/Directoy&gt;<br />
之 间加入一行：<br />
AllowOverride All<br />
意思是在/home/http/mrtg下不同目录的访问权限由该目录下 的.htaccess文件来控制，而且不同目录的权限策略可互相覆盖<br />
2) 编辑.htaccess 文件<br />
# cd  /home/http/mrtg<br />
# mkdir user #建立存放密码文件的文件夹<br />
# ee .htaccess  #访问权限控制文件<br />
AuthUserFile /home/http/mrtg/user/pass #用户密码信息存放文件<br />
AuthType  Basic #认证类型为基本型<br />
AuthName &#8220;cnseaport&#8221;<br />
require valid-user #认证方式<br />
3)  建立用户<br />
# htpasswd –c /home/http/mrtg/user/pass admin #建立用户admin<br />
New  password: #输入用户秘密<br />
Re-type new password: #再次输入密码<br />
Adding password  for user admin #添加用户成功信息<br />
可以建立多个用户<br />
4)  重新启动apache，再次访问http://xxx.xxx.xxx.xxx，这时应该出现一个<br />
身份认证窗口，你需要输入用户名和密码才能访问 这个页面</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.haohtml.com/index.php/archives/3821/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用mrtg监控网络设备端口流量</title>
		<link>http://blog.haohtml.com/index.php/archives/1906</link>
		<comments>http://blog.haohtml.com/index.php/archives/1906#comments</comments>
		<pubDate>Tue, 23 Jun 2009 12:19:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[服务器类]]></category>
		<category><![CDATA[mrtg]]></category>
		<category><![CDATA[流量监控]]></category>

		<guid isPermaLink="false">http://blog.haohtml.com/?p=1906</guid>
		<description><![CDATA[被监控设备必须支持snmp协议，因为mrtg就是通过snmp协议来获取该设备的端口流量信息。如何在一个网络设备上启用snmp协议呢？

    在配置模式下执行如下命令：3550(config)#snmp-server community public ro，启用snmp协议。启用后才能使用mrtg进行监控。

    我中心用一台linux服务器监控三台网络设备的流量，其服务器地址为10.66.100.100/16，三台交换机的任一VLAN地址分别为 192.168.3.253，172.19.96.2，10.70.0.1。现为了叙述方便，仅选取10网段的交换机为例进行说明。其他设备方法相同，不再赘述。

    在执行mrtg的各步操作前，linux系统中必须先安装apache服务，用于网页发布。]]></description>
			<content:encoded><![CDATA[<p>被监控设备必须支持snmp协议，因为mrtg就是通过snmp协议来获取该设备的端口流量信息。如何在一个网络设备上启用snmp协议呢？</p>
<p>在配置模式下执行如下命令：3550(config)#snmp-server community public ro，启用snmp协议。启用后才能使用mrtg进行监控。</p>
<p>我中心用一台linux服务器监控三台网络设备的流量，其服务器地址为10.66.100.100/16，三台交换机的任一VLAN地址分别为 192.168.3.253，172.19.96.2，10.70.0.1。现为了叙述方便，仅选取10网段的交换机为例进行说明。其他设备方法相同，不 再赘述。</p>
<p>在执行mrtg的各步操作前，linux系统中必须先安装apache服务，用于网页发布。</p>
<p><strong>I、Apache服务的安装</strong></p>
<p>因为mrtg是以网页的形式来显示被监测设备的端口流量信息的，所以必须先安装apache服务。现将安装过程中的几个问题描述如下：</p>
<p>下载apache-2.0.44-2.i586.rpm软件包，安装时系统显示&#8221;libssl.so.0  is  needed  by  apache-2.0.44-2.i586.rpm&#8221;，说明安装apache服务时需要该函数库。</p>
<p>下载openssl-compat-0.9.6m-8.i586.rpm软件包，安装后系统不再出现上述提示，但提示缺少libdb.so.3文件，下载db2-2.4.14-8.i585.rpm软件包，安装后可以正常安装apache2.0。</p>
<p><strong>II、启动Apache服务</strong></p>
<p>在&#8221;控制面板&#8221;&#8216;&#8221;服务&#8221;项中选中httpd项，进行各种操作。</p>
<p><strong> III、 Apache服务的配置</strong></p>
<p>安装完成后，系统自动在/etc/apache2目录下生成httpd.conf文件，该文件是Apache服务的配置文件，将其中一行修改如下：</p>
<p>&lt;Directory   &#8220;/usr/local/apache2/htdocs/mrtg&#8221;&gt;</p>
<p>此目录即为网页发布目录，后续操作所生成的索引文件都将存放在这个目录中，才能以网页的形式发布出来。</p>
<p>注：给大家介绍一个网站，上面提供了非常全面的rpm包下载，本文中所用的所有rpm包都从该网站下载，非常方便。网址为：http://rpm.pbone.net/</p>
<p><strong> IV、安装MRTG</strong></p>
<p>下载mrtg-2.16.2.tar.gz文件， 解压缩至mrtg-2.16.2目录，命令如下：</p>
<p>[root@localhost lxjun]#tar   -zxvf    mrtg-2.16.2.tar.gz</p>
<p>将mrtg安装至指定目录/usr/local/mrtg-2<br />
[root@localhost mrtg-2.16.2]#./configure   &#8211;prefix=/usr/local/mrtg-2<br />
[root@localhost mrtg-2.16.2]#make<br />
[root@localhost mrtg-2.16.2]#make   install</p>
<p>1、 生成.cfg文件</p>
<p>[root@localhost bin]#perl cfgmaker public@10.70.0.1 &#8211;global &#8220;workdir:/usr/local/apache2/htdocs/mrtg&#8221;  &#8211;output  mrtg10.70.0.1.cfg</p>
<p>这样即在/usr/local/mrtg-2/bin目录下生成10网段交换机的配置文件mrtg10.70.0.1.cfg</p>
<p>2、编辑配置文件</p>
<p>使用vi编辑器对该文件进行编辑，使其成为一个守护进程运行</p>
<p>在该文件末尾添加runasdaemon:yes，存盘退出。</p>
<p>3、后台运行mrtg，时刻监视设备端口流量</p>
<p>[root@localhost bin]# perl   mrtg    mrtg10.70.0.1.cfg   &amp;</p>
<p>注：若此进程正在运行，应先杀掉后才能正常执行，否则将出现错误提示。在执行此操作前，应先使用[root@localhost bin]# ps  -ef  |grep  mrtg命令查看一下正在运行的关于mrtg的进程，查看结果如下：</p>
<p>root     16004     1  0  Apr03 ？         00:10:37 perl mrtg mrtg192.168.211.1.cfg<br />
root     20778     1  0  Apr04 ？         00:03:50 perl mrtg mrtg172.19.96.2.cfg<br />
root      6277     1  0  09:27 ？          00:00:02 perl mrtg mrtg10.70.0.1.cfg<br />
root      6420  6169  0  09:41   pts/4    00:00:00 grep mrtg</p>
<p>表明此进程正在运行，应使用[root@localhost bin]# kill  -9  6277(PID)先杀掉此进程，再执行此步操作。</p>
<p>4、生成index文件</p>
<p>[root@localhost bin]# perl indexmaker &#8211;output=/usr/local/apache2/htdocs/mrtg/index.html mrtg10.70.0.1.cfg</p>
<p>在/usr/local/apache2/htdocs/mrtg目录下生成index.html文件，该文件以图表的形式记录了10网段交换机各端口的流量信息。</p>
<p>更换端口后必须进行的操作</p>
<p>因为MRTG是通过snmp协议的get(  )命令读取交换机设备的MIB库信息，所以更换端口后index文件中获取不到更换后的端口的流量信息，原端口信息也不会在表中自行消失。必须重新执行全部操作。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.haohtml.com/index.php/archives/1906/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用FreeBSD的SNMP+MRTG网络流量分析</title>
		<link>http://blog.haohtml.com/index.php/archives/1904</link>
		<comments>http://blog.haohtml.com/index.php/archives/1904#comments</comments>
		<pubDate>Tue, 23 Jun 2009 12:11:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[服务器类]]></category>
		<category><![CDATA[mrtg]]></category>
		<category><![CDATA[流量监控]]></category>

		<guid isPermaLink="false">http://blog.haohtml.com/?p=1904</guid>
		<description><![CDATA[、 安装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]]></description>
			<content:encoded><![CDATA[<p>、 安装SNMP<br />
一般版本的FreeBSD系统SNMP存放在/usr/ports/net/net-snmp下面，但是有的版本不是。有些版本 在安装Package的时候，除了要安装Net之外，还要安装Net-mgmt里面的SNMP，安装好之后，SNMP就存放在/usr/ports /net-mgmt/net-snmp下面了。下面就是安装过程：<br />
# cd /usr/ports/net-mgmt/net-snmp #snmp的存放路径<br />
# make install clean #安装snmp<br />
# ee /etc/rc.conf<br />
snmpd_enable=&#8221;YES&#8221;<br />
snmpd_flags=&#8221;-p /var/run/snmpd.pid&#8221;<br />
# /etc/netstart<br />
# ee /usr/local/share/snmp/snmpd.conf<br />
rocommunity public<br />
# /usr/local/etc/rc.d/snmpd.sh start #启动snmp</p>
<p>2、 安装mrtg<br />
mrtg根据不同的版本存放的位置不同，一般存放在/usr/ports/net/net-snmp下面，这里介绍的安装过程种mrtg存放在/usr/ports/net-mgmt/mrtg下面。<br />
# cd /usr/ports/net-mgmt/mrtg #mrtg的存放路径<br />
# make install clean #安装mrtg<br />
# cd /home #以下四个命令是建立MRTG<br />
# mkdir http #的WEB目录，具体目录可以<br />
# cd http #根据个人的爱好自己设定<br />
# mkdir mrtg<br />
# cd /usr/local/etc/mrtg<br />
# /usr/local/bin/cfgmaker public@192.168.1.100 &gt; mrtg #创建MRTG的cfg文件<br />
192.168.1.100 ：被监控设备的地址<br />
mrtg ：是要输出的档案<br />
public ：设备设定档的共同的名字(community name) 预设是public，<br />
这个可以在/usr/local/share/snmp/snmpd.conf里面修改<br />
# ee mrtg<br />
WorkDir: /home/http/mrtg #指向已设定的WEB目录<br />
# /usr/local/bin/indexmaker –-title ‘标题’ &#8211;output<br />
/home/http/mrtg/index.html mrtg #生成index.html文件<br />
# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg #运行mrtg（如果有错误，就<br />
多运行几次）<br />
#ee /etc/crontab #让mrtg每5分钟运行一次<br />
*/5 * * * root /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg</p>
<p>3、 安装apache<br />
apache存放在/usr/ports/www/apache2下面<br />
# cd /usr/ports/www/apache2 #apache2的存放地址<br />
# make install clean #安装apache2<br />
# ee /etc/rc.conf<br />
apache2_enable=”YES”<br />
# /etc/netstart<br />
# ee /usr/local/etc/apache2/httpd.conf #配置虚拟主机<br />
NameVirtualHost *:80</p>
<p>&lt;Directory &#8220;/home/http/mrtg&#8221;&gt;<br />
Options Indexes Includes FollowSymlinks<br />
Allow from all #允许访问<br />
&lt;/Directory&gt;</p>
<p>&lt;VirtualHost *:80&gt;<br />
ServerAdmin root@test.com<br />
DocumentRoot /home/http/mrtg<br />
ServerName xxx.xxx.xxx.xxx #安装mrtg的主机地址<br />
DirectoryIndex index.html #前面生成的index.html<br />
ErrorLog /var/log/xxx.xxx.xxx.xxx-error_log<br />
CustomLog /var/log/xxx.xxx.xxx.xxx-access_log common<br />
&lt;/VirtualHost&gt;<br />
# /usr/local/etc/rc.d/apache2.sh start #启动apache<br />
打开http://xxx.xxx.xxx.xxx，就可以看到被监控设备的网络信息了。</p>
<p>4、 设置http://xxx.xxx.xxx.xxx的访问权限<br />
监控流量的网页做好之后，接下来就设置访问这个网页的权限。<br />
1) 修改http.conf ，在&lt;Directory &#8220;/home/http/mrtg&#8221;&gt;和&lt;/Directoy&gt;<br />
之间加入一行：<br />
AllowOverride All<br />
意思是在/home/http/mrtg下不同目录的访问权限由该目录下的.htaccess文件来控制，而且不同目录的权限策略可互相覆盖<br />
2) 编辑.htaccess 文件<br />
# cd /home/http/mrtg<br />
# mkdir user #建立存放密码文件的文件夹<br />
# ee .htaccess #访问权限控制文件<br />
AuthUserFile /home/http/mrtg/user/pass #用户密码信息存放文件<br />
AuthType Basic #认证类型为基本型<br />
AuthName &#8220;cnseaport&#8221;<br />
require valid-user #认证方式<br />
3) 建立用户<br />
# htpasswd –c /home/http/mrtg/user/pass admin #建立用户admin<br />
New password: #输入用户秘密<br />
Re-type new password: #再次输入密码<br />
Adding password for user admin #添加用户成功信息<br />
可以建立多个用户<br />
4) 重新启动apache，再次访问http://xxx.xxx.xxx.xxx，这时应该出现一个<br />
身份认证窗口，你需要输入用户名和密码才能访问这个页面。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.haohtml.com/index.php/archives/1904/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MRTG FOR WINDOWS 安装指南</title>
		<link>http://blog.haohtml.com/index.php/archives/1902</link>
		<comments>http://blog.haohtml.com/index.php/archives/1902#comments</comments>
		<pubDate>Tue, 23 Jun 2009 12:05:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[服务器类]]></category>
		<category><![CDATA[mrtg]]></category>
		<category><![CDATA[流量监控]]></category>

		<guid isPermaLink="false">http://blog.haohtml.com/?p=1902</guid>
		<description><![CDATA[MRTG(Multi Router Traffic Grapher)，通常讲是一个监控网络链路流量负载的开源软件，它可以从所有运行SNMP协议的设备上（包括服务器、路由器、交换机等）抓取信息。事实上它不仅可以监控网络设备，任何其它的支持SNMP协议的设备都可以做为MRTG的监控对象，并自动生成包含PNG图形格式的HTML文档，通过HTTP 方式显示给用户。
   
官方的安装指导：http://mrtg.cs.pu.edu.tw/doc/mrtg-nt-guide.en.html]]></description>
			<content:encoded><![CDATA[<p>MRTG(Multi Router Traffic Grapher)，通常讲是一个监控网络链路流量负载的开源软件，它可以从所有运行SNMP协议的设备上（包括服务器、路由器、交换机等）抓取信息。事实上它不仅可以监控网络设备，任何其它的支持SNMP协议的设备都可以做为MRTG的监控对象，并自动生成包含PNG图形格式的HTML文档，通过HTTP 方式显示给用户。</p>
<p>官方的安装指导：http://mrtg.cs.pu.edu.tw/doc/mrtg-nt-guide.en.html</p>
<p>准备安装环境</p>
<p>    安装之前，除了MRTG安装程序外，还要下载几个辅助软件。这些软件全部是免费的。<br />
    1. 下载MRTG</p>
<p>http://www.mrtg.org</p>
<p>   2. 下载ActivePerl</p>
<p>http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl</p>
<p>   3. 下载Windows服务安装工具：SERANY.exe 和 INSTSRV.exe</p>
<p>http://www.electrasoft.com/srvany/srvany.htm</p>
<p>安装MRTG</p>
<p>       下载了以上软件后就可以开始安装了。事实上在Windows上安装MRTG很简单，因为MRTG是以Perl语言开发的，所以要首先安装一个Perl语言的运行环境出来。</p>
<p>1. 安装ActivePerl</p>
<p>    解压ActivePerl的包，在安装目录中找到install.bat文件，运行它即可。在DOS窗口中，安装程序会问一些问题，诸如安装路径、是否要修改环境变量等，可以全部使用缺省设置，一路回车就行了。缺省情况下Perl安装在C:\Perl目录下。完成安装后，打开Windows的环境变量检查一下是否增加了Perl的运行文件路径。</p>
<p>2. 安装MRTG</p>
<p>   解压MRTG的包，我用的是MRTG-2.12.2版本。将解压后的目录移到C:\下就行了。</p>
<p>需要注意的地方</p>
<p>(1)、给Windows安装SNMP协议支持<br />
        通常由于SNMP是一个建议关闭的协议(因为有安全漏洞)，所以Windows 2003不是缺省安装的。不过MRTG就是要用SNMP协议，有什么办法呢，就装一个吧。在“控制面板->增加/删除程序->Windows 组件安装”中，安装SNMP的组件。(打开&#8221;Windows 组件向导&#8221;&#8211;>在“组件”中，单击“管理和监视工具”（但是不要选中或清除其复选框），然后单击“详细信息”。<br />
  选中“简单网络管理协议”复选框，然后单击“确定”。)</p>
<p>   (2)、修改SNMP的安全设置</p>
<p>        如果被监控的机器上也跑Windows的话，这部分就一定要设置(要在被监控方设置，MRTG所在服务器可以不用设置)，否则永远也收不到SNMP的消息。<br />
        打开Services窗口并找到SNMP服务，打开右键菜单，选择属性。在打开的窗口中找到“安全”选项页。在选项页中有两部分设置，上半部分是指 SNMP服务接受哪种Community指示字，缺省情况下Windows 2003不对任何指示字反馈。我一般都设为“public&#8211;READ ONLY”。下半部分可以设置可信任的主机名、IP或是IPX名称。</p>
<p>   (3)、修改防火墙</p>
<p>        如果你安装了防火墙，要记得打开UDP 161端口，否则也会问题多多。</p>
<p>运行MRTG<br />
    好了，总算安装完了。现在可以运行一下MRTG了，看看它的庐山真面目。</p>
<p>    打开DOS窗口，首先进入C:\mrtg\bin，然后输入以下命令：</p>
<p>      perl cfgmaker public@localhost &#8211;global &#8220;WorkDir: C:\Inetpub\wwwroot\mrtg&#8221; &#8211;output mrtg.cfg</p>
<p>    这条命令是给MRTG建立一个监控配置文件，监控的对象是localhost，就是本地机器。你也可以用IP地址来代替localhost，或者指向其它的监控主机。(注意:上面这行命令中WorkDir: 与C:盘符之间要有空格!!! 另外C:\Inetpub\wwwroot\mrtg这个目录也可以换成其它目录，不过因为mrtg会在这个工作目录下生成统计图表和网页，所以一般指定为某个站点下的目录，以方便直接从网上查看统计数据)</p>
<p>    再键入一个命令：</p>
<p>     perl mrtg mrtg.cfg</p>
<p>    这个命令会在C:\Inetpub\wwwroot\mrtg目录下建立一些HTML和PNG文件，这些文件就是用户通常看到的流量报表了。</p>
<p>使MRTG成为Windows的服务</p>
<p>      SERANY.exe和INSTSRV.exe这两个程序是Windows自带的工具的软件。它们可以把任何一个Windows的应用程序安装成为</p>
<p>Windows的一个服务。</p>
<p>   (1)、修改注册表</p>
<p>        创建一个文本文件，在文件中写入以下内容，并保存为mrtg.reg文件：</p>
<p>          Windows Registry Editor Version 5.00<br />
          [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRTG\Parameters]<br />
          &#8220;Application&#8221;=&#8221;c:\\perl\\bin\\wperl.exe&#8221;<br />
          &#8220;AppParameters&#8221;=&#8221;c:\\mrtg\\bin\\mrtg &#8211;logging=eventlog c:\\mrtg\\bin\\mrtg.cfg&#8221;<br />
          &#8220;AppDirectory&#8221;=&#8221;c:\\mrtg\\bin\\&#8221;</p>
<p>   (2)、安装服务</p>
<p>        把SERANY.exe,instsrv.exe复制MRTG的安装目录下，键入以下命令：</p>
<p>        instsrv MRTG c:\mrtg\bin\srvany.exe</p>
<p>        双击mrtg.reg文件，把相关信息注册到注册表中。在“控制面板->管理工具->Services”下运行名为MRTG的服务即可。</p>
<p>默认情况下，每5分钟，mrtg收集一次数据(注意：一定要在bin\mrtg.cfg配置文件最后一行加上RunAsDaemon: yes)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.haohtml.com/index.php/archives/1902/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mrtg监控squid状态</title>
		<link>http://blog.haohtml.com/index.php/archives/893</link>
		<comments>http://blog.haohtml.com/index.php/archives/893#comments</comments>
		<pubDate>Tue, 13 Jan 2009 05:58:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[服务器类]]></category>
		<category><![CDATA[mrtg]]></category>
		<category><![CDATA[Squid]]></category>

		<guid isPermaLink="false">http://www.51english.net.cn/?p=893</guid>
		<description><![CDATA[mrtg安全支持对squid服务器各种状态的监控

下面本人实现步骤，仅供参考！

squid安装完后，在mrtg配置文件中将/usr/local/squid/share/mib.txt载入

引用
cp /usr/local/squid/share/mib.txt /etc/mrtg/squid.mib
在mrtg配置文件mrtg.cfg文件中加入：

LoadMIBs: /etc/mrtg/squid.mib
并在squid配置文件中合适位置加入
]]></description>
			<content:encoded><![CDATA[<p>mrtg安全支持对squid服务器各种状态的监控</p>
<p>下面本人实现步骤，仅供参考！</p>
<p>squid安装完后，在mrtg配置文件中将/usr/local/squid/share/mib.txt载入</p>
<div class="quote">
<div class="quote-title">引用</div>
<div class="quote-content">cp /usr/local/squid/share/mib.txt /etc/mrtg/squid.mib</div>
</div>
<p>在mrtg配置文件mrtg.cfg文件中加入：</p>
<div class="code">LoadMIBs: /etc/mrtg/squid.mib</div>
<p>并在squid配置文件中合适位置加入</p>
<div class="code">acl snmppublic snmp_community public<br />
snmp_port 3401<br />
snmp_access allow snmppublic all</div>
<p><span style="color: #ff0000;">【本文实现环境为内网中，严格的说，公网的话，很不安全，还是修改一下默认public 和all！】</span><br />
在/etc/mrtg/mrtg.cfg中加入：</p>
<div class="code">Target[askwan-cache1]: cacheHttpHits&amp;cacheServerRequests:public@192.168.1.217:3401<br />
RouterName[askwan-cache1]: cacheUniqName<br />
MaxBytes[askwan-cache1]: 100000<br />
Title[askwan-cache1]: HTTP Hits<br />
PageTop[askwan-cache1]: &lt;H1&gt;Cache Statistics: HTTP Hits/Requests&lt;/H1&gt;<br />
Suppress[askwan-cache1]: y<br />
LegendI[askwan-cache1]:  HTTP hits<br />
LegendO[askwan-cache1]:  HTTP requests<br />
Legend1[askwan-cache1]:  HTTP hits<br />
Legend2[askwan-cache1]:  HTTP requests<br />
YLegend[askwan-cache1]: perminute<br />
ShortLegend[askwan-cache1]: req/min<br />
Options[askwan-cache1]: nopercent,growright,perminute, dorelpercent, unknaszero</div>
<div class="code">Target[proxy-askwan]: cacheServerInKb&amp;cacheServerOutKb:public@192.168.1.217:3401<br />
#RouterName[proxy-askwan]: cacheUniqName<br />
MaxBytes[proxy-askwan]: 76800<br />
Title[proxy-askwan]: Cache Server Traffic In/Out<br />
PageTop[proxy-askwan]: &lt;H1&gt;Cache Statistics: Server traffic volume (In/Out)&lt;/H1&gt;<br />
Suppress[proxy-askwan]: y<br />
LegendI[proxy-askwan]:  Traffic In<br />
LegendO[proxy-askwan]:  Traffic Out<br />
Legend1[proxy-askwan]:  Traffic In<br />
Legend2[proxy-askwan]:  Traffic Out<br />
YLegend[proxy-askwan]: per minute<br />
ShortLegend[proxy-askwan]: b/min<br />
kMG[proxy-askwan]: k,M,G,T<br />
kilo[proxy-askwan]: 1024<br />
Options[proxy-askwan]: nopercent,growright, perminute, unknaszero</div>
<p>重新生成首页，重新执行env LANG=C /usr/local/mrtg/bin/mrtg /etc/mrtg/mrtg.cfg 三次<br />
就可以得到图像了<br />
<a href="http://www.askwan.com/read.php?88" target="_blank">http://www.askwan.com/read.php?88</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.haohtml.com/index.php/archives/893/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
