- 論壇徽章:
- 0
|
在cu 上看到了一個mrtg的替代工具,自己經(jīng)過幾天的嘗試終于配置成功了。
我沒有深入的研究rrdtool ,所以在我看來它就是一個繪圖引擎。
在完成整個安裝需要三個組件,snmp +cacti +rrdtool
在cacti 中需要使用snmpget 和snmpwalk 命令,在安裝之前需要確認系統(tǒng)中是否存在該命令,以及該命令所在的路徑。如果沒有的話需要去下載net-snmp
安裝。
第一部分,介紹
abelyang寫的大作“rrdtool 教學(xué)”,里面列舉了rrdtool的種種優(yōu)點
MRTG的優(yōu)點:簡單、易上手,基本安裝完了之后只要更改一下配置文件即可。
缺點:
1、使用文本式的數(shù)據(jù)庫,數(shù)據(jù)不能重復(fù)使用;
2、只能按日、周、月、年來查看數(shù)據(jù);
3、只能畫兩個DS(一條線、一個塊);
4、每取一次數(shù)據(jù)即需要繪圖一次,浪費系統(tǒng)資源;
5、無管理功能;[/color:125efa9ab8]
rrdtool的優(yōu)點:
1、使用rrd存儲格式,數(shù)據(jù)能重復(fù)使用,比如我可以將一個rrd文件中的數(shù)據(jù)與另一個rrd文件中的數(shù)據(jù)相加。
2、可以定義任意時間段畫圖,即你可以畫出一張半年以來的數(shù)據(jù)的圖,也可以畫出一張半小時以來的圖。
3、能畫任意個DS。
4、CDEF讓你能任意擺弄數(shù)據(jù)。
缺點:
1、rrdtool的作用只是存儲數(shù)據(jù)和畫圖,它沒有mrtg中集成的數(shù)據(jù)采集功能;
2、在命令行的使用非常復(fù)雜,參數(shù)極多。
3、無管理功能。[/color:125efa9ab8]
簡單的說,rrdtool就是一個強大的繪圖的引擎。
cacti其實是一套php程序,它運用snmpget采集數(shù)據(jù),使用rrdtool繪圖。它的界面非常漂亮,能讓你根本無需明白rrdtool的參數(shù)能輕易的繪出漂亮的圖形。更難能可貴的是,它提供了強大的數(shù)據(jù)管理和用戶管理功能,一張圖是屬于一個host的,每一個host又可以掛載到一個樹狀的結(jié)構(gòu)上。用戶的管理上,作為一個開源軟件,它居然做到為指定一個用戶能查看的“樹”、host、甚至每一張圖,還可以與LDAP結(jié)合進行用戶的驗證!我不由得佩服作者考慮的周到!Cacti還提供自己增加模板的功能,讓你添加自己的snmp_query和script!可以說,cacti將rrdtool的所有“缺點”都補足了!
![]()
Cacti的架構(gòu)
![]()
Cacti的工作流程
第二部分:Cacti的安裝
該安裝文檔參照
www.cacti.net
上的官方文檔進行安裝后,總結(jié)出來的。平臺是Linux或FreeBSD。[/b:33081e9751]
1、安裝mysql
安裝:
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql
shell> cd mysql
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> chgrp -R mysql .
shell> bin/mysqld_safe --user=mysql &
./bin/mysqladmin -u root password "yourpasswd"
基于安全的原因,為root用戶設(shè)置密碼才能讓root用戶登陸mysql,不然會有2002錯誤出現(xiàn)
2、安裝apache
3、安裝php
4、設(shè)置mysql
# mysql -u root -p rootroot
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 10 to server version: 4.0.23-standard
mysql> create database cactidb;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on cactidb.* to root;
Query OK, 0 rows affected (0.01 sec)
mysql> grant all on cactidb.* to
[email=root@localhost]root@localhost[/email]
;
Query OK, 0 rows affected (0.01 sec)
mysql> grant all on cactidb.* to cactiuser;
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on cactidb.* to
[email=cactiuser@localhost]cactiuser@localhost[/email]
;
Query OK, 0 rows affected (0.01 sec)
mysql> set password for
[email=cactiuser@localhost=password('cactipw']cactiuser@localhost=password('cactipw'[/email]
);
Query OK, 0 rows affected (0.00 sec)
mysql> exit
5、安裝rrdtool[/b:33081e9751]
下載:
http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/rrdtool-1.0.x/rrdtool-1.0.50.tar.gz
然后
./configure
make && make install 即可
與mrtg相比,rrdtool自帶了gd庫,所以不用先安裝gd庫.(不過由于rrdtool自帶的gd庫不支持中文,所以rrdtool畫出來的圖也不能有中文,否則會出現(xiàn)亂碼).
注意:rrdtool1.2的版本由于已經(jīng)不再自帶外部的lib庫(如cgilib,zlib等),所以需要從
http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/libs/
下載這些庫來安裝。建議還是使用1.0的版本,比較方便。
6、安裝net-snmp
幾乎所有的網(wǎng)絡(luò)設(shè)備和操作系統(tǒng)默認都安裝了snmp服務(wù)。
unix系統(tǒng)安裝的都是net-snmp或ucd-snmp(其實兩個都是同一組人寫的)。
如果沒有安裝snmp,可以到net-snmp.sourceforge.org上下載源碼編譯安裝。
我這里說的安裝SNMP服務(wù)并不是要求安裝SNMPD,其實是Cacti需要用到net-snmp中的兩個命令――snmpwalk和snmpget進行數(shù)據(jù)的采集。
我們可以直接在系統(tǒng)中運行snmpwalk和snmpget看是否有該命令,如果有則不用安裝了。
7、安裝cacti
下載:
http://www.cacti.net/downloads/
安裝:
cp cacti-0.8.6g.tar.gz /var/www/html
tar xzvf cacti-0.8.6g.tar.gz
mv cacti-0.8.6g cacti
cd cacti
導(dǎo)入表:
/usr/local/mysql/bin/mysql –u root –prootroot cactidb /dev/null 2>&1
不要使用root用戶運行上面的命令,否則要再運行一次chown –R cactiuser rra/ log/
8、頁面設(shè)置:
在瀏覽器上輸入:
http://IP/cacti
進入cacti的初始設(shè)置頁面:
在這里我們要輸入一些原始的信息:
NEXT -》
輸入一些信息,如rrdtool、php、snmpwalk、snmpget的位置,使用ucd-snmp還是net-snmp等 -》
輸入原始的用戶和密碼:admin/admin -》
更改admin用戶的密碼 -》
點擊 Save
安裝完成。!
現(xiàn)在可以在瀏覽器中進入Cacti的世界了!
snmp
一、Linux(RedHat)的配置[/b:ef131e0851]
打開默認的/etc/snmp/snmpd.conf文件,更改如下配置:
1、查找以下字段
# sec.name source community
com2sec notConfigUser default public
將"comunity"字段改為你要設(shè)置的密碼.比如"public".
將“default”改為你想哪臺機器可以看到你的snmp信息,如10.10.10.10。
2、查找以下字段
# Finally, grant the group read-only access to the systemview view.
# group context sec.model sec.level prefix read write notif
access notConfigGroup "" any noauth exact all none none
將"read"字段改為
#access notConfigGroup "" any noauth exact systemview none none
3、查找以下字段
## incl/excl subtree mask
#view all included .1 80[/code:1:ef131e0851]
將該行前面的"#"去掉.
保存關(guān)閉.
4、運行/etc/init.d/snmpd start命令運行snmpd
最后運行netstat -ln查看161端口是否打開了.
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/10269/showart_56553.html |
|