TShopping

 找回密碼
 註冊
搜索
查看: 1391|回復: 3

[教學] 你還在用MRTG嗎?使用cacti監測系統性能

[複製鏈接]
發表於 2008-6-5 19:19:53 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk Push to Twitter 

作者:joecen 發文時間:2005.08.17

前言:

在論壇上經常看到有人問MRTG的問題,還有很多的關於MRTG的精彩文章。MRTG的確是非常好用的,但我認為它畢竟已經是一套很舊的軟體了,其作者在多年前就已經開發了RRDTool代替該軟體,現在已經發展得很成熟。既然有更好的選擇,為什麼我們還要用MRTG呢?

第一部分,介紹:

2004年我剛進某公司工作,當時我使用MRTG建立了一套系統,專門監測我們伺服器和其他網路設備的流量。

後來我想將其他的系統性能比如CPU負載、系統負載,網路連接數等一起監測起來。我在網上查找了很多的資料,也實現了這些功能,但總覺得實現的太費勁,管理起來太麻煩了。比如我有幾百個被監測點,分佈在不同的機房,而且我需要將這些伺服器和網路設備分類,這樣的話我就要將這些被監測點放在不同的mrtg配置檔中,運行多個crontab,而且自己還寫了一些html頁面對其進行管理。

後來有幸看到了一位師兄寫的大作“rrdtool 教學”,裏面列舉了rrdtool的種種優點,於是我下定決心要將MRTG更換為rrdtool。

MRTG的優點:簡單、易上手,基本安裝完了之後只要更改一下配置檔即可。

缺點:1、使用文本式的資料庫,資料不能重複使用;

2、只能按日、周、月、年來查看資料;

3、只能畫兩個DS(一條線、一個塊);

4、無管理功能;

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的安裝

該安裝文檔是我參照www.cacti.net上的官方文檔進行安裝後,總結出來的。平臺是Linux或FreeBSD。

1、安裝mysql

下載源碼:

http://www.signal42.com/mirrors/mysql/Downloads/MySQL-4.0/mysql-4.0.23.tar.gz

for linux:

http://www.signal42.com/mirrors/mysql/Downloads/MySQL-4.0/mysql-standard-4.0.23-pc-linux-i686.tar.gz

for freebsd47:

http://www.signal42.com/mirrors/mysql/Downloads/MySQL-4.0/mysql-standard-4.0.22-unknown-freebsd4.7-i386.tar.gz

安裝


  1. shell> groupadd mysql
  2. shell> useradd -g mysql mysql
  3. shell> cd /usr/local
  4. shell> gunzip < /PATH/TO/MYSQL-VERSION-OS.tar.gz
  5. | tar xvf -
  6. shell> ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql
  7. shell> cd mysql
  8. shell> scripts/mysql_install_db --user=mysql
  9. shell> chown -R root .
  10. shell> chown -R mysql data
  11. shell> chgrp -R mysql .
  12. shell> bin/mysqld_safe --user=mysql &
  13. ./bin/mysqladmin -u root
  14. password "yourpasswd"
複製代碼
基於安全的原因,為root用戶設置密碼才能讓root用戶登陸mysql,不然會有2002錯誤出現

建立啟動腳本

  1. cp ./support-files/mysql.server
  2. /etc/init.d/mysql
  3. ln -s ../init.d/mysql S85mysql
  4. ln -s ../init.d/mysql K85mysql
複製代碼
2、安裝apache

下載:

http://apache.justdn.org/httpd/httpd-2.0.53.tar.bz2

安裝

  1. ./configure --prefix=/www --enable-so
  2. make && make install
複製代碼
建立啟動腳本

  1. cp /www/bin/apachectl /etc/init.d/httpd
  2. cd /etc/rc3.d
  3. ln -s ../init.d/httpd S85httpd
  4. ln -s ../init.d/httpd K85httpd

  5. 啟動

  6. /www/bin/apachectl start
複製代碼
3、安裝php

下載:

http://us4.php.net/get/php-4.3.10.tar.gz/from/cn2.php.net/mirror

安裝:

  1. /configure --prefix=/www/php
  2. --with-apxs2=/www/bin/apxs
  3. --with-config-file-path=/www/php
  4. --enable-sockets --with-mysql=/usr/local/mysql --with-zlib-dir=/usr/include
  5. --with-gd
  6. make && make install
  7. cp php.ini-dist /www/php/php.ini
  8. vi /www/conf/httpd.conf
複製代碼
加入:

  1. AddType application/x-tar .tgz
  2. AddType application/x-httpd-php .php
  3. AddType image/x-icon .ico
  4. DirectoryIndex index.php index.html
  5. index.html.var
  6. ../bin/apachectl restart
複製代碼
4、設置mysql

  1. # mysql -u root -prootroot
  2. Welcome to the MySQL monitor.
  3. Commands end with ; or \g.
  4. Your MySQL connection id is 10
  5. to server version: 4.0.23-standard

  6. Type 'help;' or '\h' for help. Type
  7. '\c' to clear the buffer.

  8. mysql> create database cactidb;
  9. Query OK, 1 row affected (0.00 sec)

  10. mysql> grant all on cactidb.* to root;
  11. Query OK, 0 rows affected (0.01 sec)

  12. mysql> grant all on cactidb.* to
  13. root@localhost;
  14. Query OK, 0 rows affected (0.01 sec)

  15. mysql> grant all on cactidb.* to
  16. cactiuser;
  17. Query OK, 0 rows affected (0.00 sec)

  18. mysql> grant all on cactidb.* to
  19. cactiuser@localhost;
  20. Query OK, 0 rows affected (0.01 sec)

  21. mysql> set password for
  22. cactiuser@localhost=password('cactipw');
  23. Query OK, 0 rows affected (0.00 sec)

  24. mysql> exit
複製代碼
5、安裝rrdtool

下載:

http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/rrdtool-1.0.x/rrdtool-1.0.50.tar.gz

然後

  1. ./configure
  2. 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

下載:

http://www.cacti.net/downloads/cacti-0.8.6c.tar.gz

安裝

  1. cp cacti-0.8.6c.tar.gz /www/htdocs
  2. tar xzvf cacti-0.8.6c.tar.gz
  3. mv cacti-0.8.6c cacti
  4. cd cacti
複製代碼
導入表

  1. /usr/local/mysql/bin/mysql  -u  root  -prootroot  cactidb < cacti.sql
  2. chown –R cactiuser rra/ log/
複製代碼
設置配置檔

  1. vi /www/htdocs/cacti/include/config.php

  2. $database_type = “mysql”;
  3. $database_default = “cactidb”;
  4. $database_hostname = “localhost”;
  5. $database_username = “cactiuser”;
  6. $database_password = “cactipw”;
複製代碼
核對以上幾項是否正確

  1. Crontab –u cactiuser –e
複製代碼
為cactiuser用戶加入
  1. */5 * * * * /www/php/bin/php /www/htdocs/cacti/poller.php > /dev/null 2>&1
複製代碼
(不要使用root用戶運行上面的命令,否則要再運行一次 chown –R cactiuser rra/ log/)

8、頁面設置

在流覽器上輸入:

http://IP/cacti

進入cacti的初始設置頁面:

在這裏我們要輸入一些原始的資訊:

NEXT-》輸入一些資訊,如rrdtool、php、snmpwalk、snmpget的位置,使用ucd-snmp

還是net-snmp等-》輸入原始的用戶和密碼:admin/admin-》更改admin用戶的密碼

-》點擊 Save

安裝完成!現在可以在流覽器中進入Cacti的世界了!

第三部分,cacti的部分介面






我自己做的圖:







Cacti雖然只是一套開源軟體,但我覺得它比起其他的商業管理軟體來說真的是毫不遜色,希望大家能好好使用。真心希望在論壇上看到更多的關於Cacti和RRDTool的討論。

http://tech.ccidnet.com/art/302/20050817/313411_1.html

 

臉書網友討論
發表於 2013-11-9 00:59:43 | 顯示全部樓層
感謝版主  

版主招募中

發表於 2013-11-9 00:59:43 | 顯示全部樓層
太棒了!  


發表於 2013-11-9 00:59:43 | 顯示全部樓層
不是吧  


您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2016-12-9 10:15 , Processed in 0.059277 second(s), 19 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表