你還在用mrtg嗎?--使用cacti監測系統效能(zt)
前言:
在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()。對該工具我只有一個字形容:“great!”。
cacti其實是一套php程式,它運用snmpget採集資料,使用rrdtool繪圖。它的介面非常漂亮,能讓你根本無需明白rrdtool的引數能輕易的繪出漂亮的圖形。更難能可貴的是,它提供了強大的資料管理和使用者管理功能,一張圖是屬於一個host的,每一個host又可以掛載到一個樹狀的結構上。使用者的管理上,作為一個開源軟體,它居然做到為指定一個使用者能檢視的“樹”、host、甚至每一張圖,還可以與LDAP結合進行使用者的驗證!我不由得佩服作者考慮的周到!Cacti還提供自己增加模板的功能,讓你新增自己的snmp_query和script!可以說,cacti將rrdtool的所有“缺點”都補足了!
第二部分:Cacti的安裝
該安裝文件是我參照上的官方文件進行安裝後,總結出來的。平臺是Linux或FreeBSD。
1、安裝mysql
下載原始碼:
MySQL-4.0/mysql-4.0.23.tar.gz
for linux:
MySQL-4.0/
mysql-standard-4.0.23-pc-linux-i686.tar.gz
for freebsd47:
MySQL-4.0/
mysql-standard-4.0.22-unknown-freebsd4.7-i386.tar.gz
上面的連結已經失效,請到
http://dev.mysql.com/downloads/mysql/4.1.html
或
下載mysql資料庫
安裝:
CODE:
[Copy to clipboard]
shell>; groupadd mysql
shell>; useradd -g mysql mysql
shell>; cd /usr/local
shell>; gunzip < /PATH/TO/MYSQL-VERSION-OS.tar.gz | tar xvf -
shell>; 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使用者設定密碼才能讓root使用者登陸mysql,不然會有2002錯誤出現
建立啟動指令碼:
CODE:
[Copy to clipboard]
cp ./support-files/mysql.server /etc/init.d/mysql
ln -s ../init.d/mysql S85mysql
ln -s ../init.d/mysql K85mysql
2、安裝apache
下載:
httpd-2.0.54.tar.bz2
安裝:
CODE:
[Copy to clipboard]
./configure --prefix=/www --enable-so
make && make install
建立啟動指令碼
CODE:
[Copy to clipboard]
cp /www/bin/apachectl /etc/init.d/httpd
cd /etc/rc3.d
ln -s ../init.d/httpd S85httpd
ln -s ../init.d/httpd K85httpd
啟動
/www/bin/apachectl start
3、安裝php
下載:
安裝:
CODE:
[Copy to clipboard]
/configure --prefix=/www/php --with-apxs2=/www/bin/apxs --with-config-file-path=/www/php --enable-sockets --with-mysql=/usr/local/mysql --with-zlib-dir=/usr/include --with-gd
make && make install
cp php.ini-dist /www/php/php.ini
vi /www/conf/httpd.conf
加入:
###############for php and cacti###################
AddType application/x-tar .tgz
AddType application/x-httpd-php .php
AddType image/x-icon .ico
DirectoryIndex index.php index.html index.html.var
#######################over########################
../bin/apachectl restart
4、設定mysql
CODE:
[Copy to clipboard]
# mysql -u root -prootroot
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 10 to server version: 4.0.23-standard
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
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 root@localhost;
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 cactiuser@localhost;
Query OK, 0 rows affected (0.01 sec)
mysql>; set password for cactiuser@localhost=password('cactipw');
Query OK, 0 rows affected (0.00 sec)
mysql>; exit
5、安裝rrdtool
下載:
~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畫出來的圖也不能有中文,否則會出現亂碼).
注意:rrdtool1.2的版本由於已經不再自帶外部的lib庫(如cgilib,zlib等),所以需要從http: //people.ee.ethz.ch/~oetiker/webtools/
rrdtool/pub/libs/下載這些庫來安裝。建議還是使用 1.0的版本,比較方便。
6、安裝net-snmp
幾乎所有的網路裝置和作業系統預設都安裝了snmp服務。
unix系統安裝的都是net-snmp或ucd-snmp(其實兩個都是同一組人寫的)。
如果沒有安裝snmp,可以到net-snmp.sourceforge.org上下載原始碼編譯安裝。
我這裡說的安裝SNMP服務並不是要求安裝SNMPD,其實是Cacti需要用到net-snmp中的兩個命令――snmpwalk和snmpget進行資料的採集。
我們可以直接在系統中執行snmpwalk和snmpget看是否有該命令,如果有則不用安裝了。
7、安裝cacti
注意:寫該文件時cacti的最高版本時0.8.6c,現在的最高版本是0.8.6f。由於0.8.6f以下的版本有SQL隱碼攻擊漏洞,請大家下載0.8.6f或以上的版本進行安裝。
下載:
http:///downloads/
cacti-0.8.6c.tar.gz
安裝:
CODE:
[Copy to clipboard]
cp cacti-0.8.6c.tar.gz /www/htdocs
tar xzvf cacti-0.8.6c.tar.gz
mv cacti-0.8.6c cacti
cd cacti
匯入表:
CODE:
[Copy to clipboard]
/usr/local/mysql/bin/mysql –u root –prootroot cactidb < cacti.sql
chown –R cactiuser rra/ log/
設定配置檔案:
CODE:
[Copy to clipboard]
vi /www/htdocs/cacti/include/config.php
$database_type = “mysql”;
$database_default = “cactidb”;
$database_hostname = “localhost”;
$database_username = “cactiuser”;
$database_password = “cactipw”;
核對以上幾項是否正確
CODE:
[Copy to clipboard]
Crontab –u cactiuser –e
為cactiuser使用者加入
*/5 * * * * /www/php/bin/php /www/htdocs/cacti/poller.php >; /dev/null 2>;&1
(不要使用root使用者執行上面的命令,否則要再執行一次chown –R cactiuser rra/ log/)
8、頁面設定:
在瀏覽器上輸入:
進入cacti的初始設定頁面:
在這裡我們要輸入一些原始的資訊:
NEXT -》
輸入一些資訊,如rrdtool、php、snmpwalk、snmpget的位置,使用ucd-snmp還是net-snmp等 -》
輸入原始的使用者和密碼:admin/admin -》
更改admin使用者的密碼 -》
點選 Save
安裝完成!!!
現在可以在瀏覽器中進入Cacti的世界了!
開始考慮到大家都用過MRTG,應該對snmp有所瞭解,所有沒有將snmp的配置寫上來。現在發現有些朋友發貼說不能取到CPU和系統負載的資料,其原因應該是snmp設定預設沒有允許取這些資料造成的。下面是我對linux和 FreeBSD下的net-snmp的一些簡單的配置。
一、Linux(RedHat)的配置
開啟預設的/etc/snmp/snmpd.conf檔案,更改如下配置:
1、查詢以下欄位:
CODE:
[Copy to clipboard]
# sec.name source community
com2sec notConfigUser default public
將"comunity"欄位改為你要設定的密碼.比如"public".
將“default”改為你想哪臺機器可以看到你的snmp資訊,如10.10.10.10。
2、查詢以下欄位:
CODE:
[Copy to clipboard]
####
# 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"欄位改為all.
CODE:
[Copy to clipboard]
#access notConfigGroup "" any noauth exact systemview none none
3、查詢以下欄位:
CODE:
[Copy to clipboard]
## incl/excl subtree mask
#view all included .1 80
將該行前面的"#"去掉.
儲存關閉.
4、執行/etc/init.d/snmpd start命令執行snmpd.
最後執行netstat -ln檢視161埠是否開啟了.
二、FreeBSD
如果使用port安裝net-snmp,預設的配置檔案應該是在/usr/local/share/snmp/snmpd.conf(沒有預設的檔案)。
可以建立一個簡單的配置檔案,如:
CODE:
[Copy to clipboard]
syslocation YourDefineName
syscontact YourEmailAddress
sysservices 77
rocommunity public (請更改)
load 12 12 12
然後執行snmpd,netstat 看是否開啟了161埠。
上述用法只針對預設的安裝,如果你是自定義的安裝請依照你的安裝目錄來設定。
Cacti雖然只是一套開源軟體,但我覺得它比起其它的商業管理軟體來說真的是毫不遜色,而MRTG根本就無法與其相比,希望大家能好好使用。
真心希望在論壇上看到討論得最多的是Cacti和RRDTool而不只是MRTG。
參考:
t=552218&highlight=RRDTOOL
http:///downloads/docs/
html/install_unix.html
cacti的使用文件:
http:///downloads/docs/html/
Cacti FAQ:
http:///downloads/docs/html/faq.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245717/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在fedora中使用MRTG進行系統監控(zt)
- 使用NET-SNMP和MRTG監測Windows伺服器(zt)Windows伺服器
- Cacti 監控 AIX 系統AI
- 使用Bonnie進行系統IO效能測試 (zt)
- 你還在用var定義變數嗎?變數
- 五年了,你還在用Junit4嗎?
- Centos使用Cacti監控你的網路CentOS
- 網路流量監控器mrtg全攻略(zt)
- Reddit,你在用嗎?
- 你還在用Kettle嗎?試試這款ETL工具
- 轉載 使用Cacti監控你的網路(二)- Cacti的安裝
- 還在用定時器嗎?藉助 CSS 來監聽事件定時器CSS事件
- zabbix、cacti、nagios,伺服器監控還有更好的選擇嗎?iOS伺服器
- 你還不懂java的日誌系統嗎Java
- 你還在用Adapter和ViewHolder寫RecyclerView嗎?Out了!APTView
- Nagios Plugin for Cacti 安裝使用篇(zt)iOSPlugin
- 復工潮開始,你的遠端辦公工具還在用嗎?
- Windows下安裝Cacti流量與系統資訊監控Windows
- LINUX系統效能調諧 (zt)Linux
- Performance Index 64 Pro for Mac(系統效能監測軟體)ORMIndexMac
- SNMP+MRTG 網路流量分析(zt)
- 還在用AIDL嗎?試試EasyMessenger吧AIMessenger
- 如何提高還在用window系統的編碼硬效率
- (轉)使用 Nmon 監控 Linux 的系統效能Linux
- Linux下使用NMON監控、分析系統效能Linux
- REDHAT環境下使用SYSSTAT監控系統效能Redhat
- 搭建Cacti監控
- cacti監控mysqlMySql
- 耗能企業必須要做能耗線上監測系統嗎
- 還在用Synchronized?Atomic你瞭解不?synchronized
- snmp+mrtg實現對區域網內的linuxServer的監控(zt)LinuxServer
- sysstat——系統效能監控神器
- .Net技術棧下的非同步,你還在用同步方式進行開發嗎?非同步
- 使用 /proc 檔案系統來控制系統 (zt)
- cacti監控lighttpdhttpd
- cacti監控tcpconnectionTCP
- cacti批量新增監控
- zt:Linux效能監控之Memory篇Linux