Cacti+Nagios完全攻略 1

Cactirrdtool簡介

一、概述
Linux
下用的最多的是MRTG的性能監視,MRTG配置比較簡單,MRTG的確是非常好的東東,但我認爲它畢竟已經是一套很舊的軟件了,其作者在多年前就已經開發了RRDTool代替該軟件,現在已經發展得很成熟。既然有更好的選擇,爲什麼我們還要用MRTG呢?
簡單的說,rrdtool就是一個強大的繪圖的引擎,很多語言都可以調用rrdtool繪圖。
整個系統的架構是這樣的:
基於SNMP協議,被監控端是服務器,或一些網絡設備,
網絡管理工作站,採用Linux(Freebsd)操作系統,並且安裝Net-SNMP工具,使用RRDTOOL採集數據,存儲數據,並用Cacti調用rrdtool顯示出來。
CACTI
採用PHP編寫,基於B/S結構。
二、介紹
MRTG
的優點:簡單、易上手,基本安裝完了之後只要更改一下配置文件即可。
缺點:
1
、使用文本式的數據庫,數據不能重複使用;
2
、只能按日、周、月、年來查看數據;
3
、只能畫兩個DS(一條線、一個塊);
4
、每取一次數據即需要繪圖一次,浪費系統資源;
5
、無管理功能;

rrdtool
的優點:
1
、使用rrd存儲格式,數據能重複使用,比如我可以將一個rrd文件中的數據與另一個rrd文件中的數據相加。
2
、可以定義任意時間段畫圖,即你可以畫出一張半年以來的數據的圖,也可以畫出一張半小時以來的圖。
3
、能畫任意個DS
4
CDEF讓你能任意擺弄數據。

缺點:
1
rrdtool的作用只是存儲數據和畫圖,它沒有mrtg中集成的數據採集功能;
2
、在命令行的使用非常複雜,參數極多。
3
、無管理功能。

簡單的說,rrdtool就是一個強大的繪圖的引擎。

由於其非常複雜的命令,對用戶非常不友好,我一度想自己用php寫一套系統。幸運的是,半年前我找到了cactiwww.cacti.net)。對該工具我只有一個字形容:“great
cacti
其實是一套php程序,它運用snmpget採集數據,使用rrdtool繪圖。它的界面非常漂亮,能讓你根本無需明白rrdtool的參數能輕易的繪出漂亮的圖形。更難能可貴的是,它提供了強大的數據管理和用戶管理功能,一張圖是屬於一個host的,每一個host又可以掛載到一個樹狀的結構上。用戶的管理上,作爲一個開源軟件,它居然做到爲指定一個用戶能查看的host、甚至每一張圖,還可以與LDAP結合進行用戶的驗證!我不由得佩服作者考慮的周到!Cacti還提供自己增加模板的功能,讓你添加自己的snmp_queryscript!可以說,cactirrdtool的所有缺點都補足了!
cacti 安裝環境:
操作系統:Redhat Linux AS5.4
安裝方式:全新安裝並以文本方式與自定義安裝軟件
內核版本:2.6.18-164.el5
Apache:httpd-2.2.3-31.el5
PHP:php-5.1.6-23.2.el5_3
Mysql:mysql-5.0.77-3.el5
Net-snmp:net-snmp-5.3.2.2-7.el5
RRDtool:rrdtool-1.2.23-1.el5.rf
Cacti:cacti-0.8.7e.tar.gz
 
Cacti架構圖:
數據實現層 apache php
--------------------------------------------------------------------------------------------------
數據存儲層 mysql rrdtool
--------------------------------------------------------------------------------------------------
數據採集層 net-snmp script
 
Cacti工作原理圖:
 

 
全新linux系統安裝
以文本方式並自定義安裝軟件
……………………省略…………………….
 
去掉所有打勾
然後把紅色標記移到 development tools
 

接下來按F2,跳出詳細菜單
選擇OK就行了,
 

同樣步驟把紅色標記移到MySQL Database,按F2.除了默認打勾還要把以下三個一起打勾
Mod_auth_mysql mysql-devel php-mysql
 

 
接下來同樣步驟選擇web server,去掉默認squid tux webalizer的安裝
 
 

接下來選擇system tools ,然後按回車,再選中它按F2,去掉所有默認安裝
只留Net-snmp-libs 與net-snmp-utils連個打上勾
 
安裝完後重啓
選擇firewall configuration,禁用selinux

開放http-80端口

啓動結束進入系統
 
=====================================================================
(大家也可以通過把yum源更換到光盤或centos資源庫,具體可以參考我另外一篇bolg。http://viong.blog.51cto.com/844766/278402
先yum mysql apache php
yum -y install mysql mysql-server php-mysql httpd php
再yum需要用到的包
yum -y install php-pdo lm_sensors net-snmp php-snmp net-snmp-utils perl-Net-Daemon perl-PlRPC perl-DBI perl-DBD-MySQL
=====================================================================
設置 mysql Apache snmp 開機自動啓動
 
[root@cacti-qmail soft]# chkconfig mysqld on
[root@cacti-qmail soft]# chkconfig httpd on
[root@cacti-qmail soft]# chkconfig snmpd on
[root@cacti-qmail soft]# service mysqld start
[root@cacti-qmail soft]# service httpd start
[root@cacti-qmail soft]# service snmpd start
PHP配置(默認已都激活)
激活PHP擴展
/etc/php.ini
Extension_dir=”usr/lib/php/modules”
 
激活mysql擴展
/etc/php.d/mysql.ini
Extension=mysql.so
Apache配置(默認已支持)
配置支持PHP:/etc/httpd/conf.d/php.conf
LoadModule php5_module modules/libphp5.so
AddHandler php5-script .php
AddType text/html .php
DirectoryIndex index.php
Mysql配置
爲mysql數據庫root賬號設置密碼
[root@cacti-qmail soft]# mysqladmin --user=root password viong0613
[root@cacti-qmail soft]# mysqladmin --user=root --password reload
Enter password: 輸入剛設置密碼,檢驗是否正確
Rrdtool安裝
[root@cacti-qmail soft]# ll
總計 1100
-rw-r--r-- 1 root root 49815 02-22 22:18 perl-rrdtool-1.2.23-1.el5.rf.i386.rpm
-rw-r--r-- 1 root root 955176 02-22 21:53 rrdtool-1.2.23-1.el5.rf.i386.rpm
-rw-r--r-- 1 root root 5542 02-22 22:01 rrdtool-devel-1.2.23-1.el5.rf.i386.rpm
-rw-r--r-- 1 root root 65566 2004-05-19 rzsz-3.48.tar.gz
drwxrwxr-x 2 10127 wheel 4096 02-24 01:46 src
[root@cacti-qmail soft]#rpm –ivh perl-rrdtool-1.2.23-1.el5.rf.i386.rpm rrdtool-1.2.23-1.el5.rf.i386.rpm rrdtool-devel-1.2.23-1.el5.rf.i386.rpm
warning: perl-rrdtool-1.2.23-1.el5.rf.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
Preparing... ########################################### [100%]
1:rrdtool ########################################### [ 33%]
2:perl-rrdtool ########################################### [ 67%]
3:rrdtool-devel ########################################### [100%]
Cacti安裝
[root@cacti-qmail soft]# wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz
[root@cacti-qmail soft]# tar -zxvf cacti-0.8.7e.tar.gz
[root@cacti-qmail soft]# mv cacti-0.8.7e /var/www/html/cacti
[root@cacti-qmail soft]# chown -R root.root /var/www/html/cacti/
修改cacti文件目錄的擁有者
在mysql建立cacti數據庫環境
[root@cacti-qmail soft]# mysql -u root -h 127.0.0.1 -p
Enter password:
mysql> create database cacti;
Query OK, 1 row affected (0.01 sec)
mysql> grant all on cacti.* to viong@localhost identified by 'viong0623';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
mysql> quit;
Bye
到cacti根目錄下把cacti.sql中的數據導入到數據庫cacti中
[root@cacti-qmail cacti]# mysql -uroot -pviong0613 cacti<cacti.sql
配置mysql連接參數
[root@cacti-qmail cacti]# vi /var/www/html/cacti/include/config.php
 
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "viong";
$database_password = "viong0623";
$database_port = "3306";
 
[root@cacti-qmail cacti]# vi /var/www/html/cacti/include/global.php
 
/* Default database settings*/
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "viong";
$database_password = "viong0623";
$database_port = "3306";
 
cacti-plugins插件安裝
[root@cacti-qmail soft]#unzip cacti-plugin-0.8.7e-PA-v2.6.zip
[root@cacti-qmail soft]# cd cacti-plugin-arch/
[root@cacti-qmail cacti-plugin-arch]# ll
總計 124
-rw-r--r-- 1 root root 93070 11-22 13:50 cacti-plugin-0.8.7e-PA-v2.6.diff
drwxr-xr-x 5 root root 4096 11-22 13:03 files-0.8.7e
-rw-rw-rw- 1 root root 15237 2006-11-10 LICENSE
-rw-rw-rw- 1 root root 2037 2007-11-06 pa.sql
-rw-rw-rw- 1 root root 1230 11-22 13:50 Readme.txt
 
[root@cacti-qmail cacti-plugin-arch]# cp cacti-plugin-0.8.7e-PA-v2.6.diff /var/www/html/cacti/
[root@cacti-qmail cacti-plugin-arch]# cp pa.sql /var/www/html/cacti/
root@cacti-qmail cacti-plugin-arch]# cd /var/www/html/cacti/
[root@cacti-qmail cacti]# patch -p1 -N <cacti-plugin-0.8.7e-PA-v2.6.diff
[root@cacti-qmail cacti]# mysql -uroot -pviong0613 cacti<pa.sql
[root@cacti-qmail cacti]# vi include/global.php
修改一下參數
$config['url_path'] = '/cacti/';
保存退出
建立任務調度
[root@cacti-qmail cacti]# crontab –e
輸入以下內容,代表每5分鐘來執行後面PHP解析內容,把顯示信息重定向到空的路徑
*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
[root@cacti-qmail cacti]# crontab -l
*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
 
也可手工跑一次:/usr/bin/php /var/www/html/cacti/poller.php
 
Cacti的web初始化
 
在瀏覽器輸入http://192.168.15.67/cacti/登陸cacti
 

 

被監控主機snmp文件設置
Linux
 
被監控主機需要配置snmp.
 
#vi /etc/snmp/snmpd.conf
1更改
com2sec notConfigUser default public
改爲
com2sec notConfigUser 127.0.0.1 public
2、更改
access notConfigGroup "" any noauth exact systemview none none
改爲
access notConfigGroup "" any noauth exact all none none
 
#view all included .1 80
將前面的 # 註釋 去掉。 保存退出
 
 
測試snmp是否正常
#snmpwalk -c public -v 2c localhost
 
#snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
 
IP-MIB::ipAdEntIfIndex.61.xxx.xxx.xxx = INTEGER: 2 IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1 IP-MIB::ipAdEntIfIndex.172.xxx.xxx.xxx = INTEGER: 3
 
也可以用snmpd -f -Le 命令查看當前有沒有出什麼錯
 
Windows
需要安裝snmp服務
開啓---運行—appwiz.cpl 把管理和監視工具打上勾,然後點詳細信息進去,勾起我們需要用的組件
 

 
安裝好後,
運行—services.msc,點snmp server設置一下選項
 
 
小插曲:很感謝方老師製作了一個cacti視頻教程,自己用cacti也幾年時間了。爲了加固自己的知識。把這些整理出來當備用,並附上方老師發給我的一系列的視頻教程.下載看附件
開源網管軟件Cacti系列視頻講座
(一)Cacti架構與應用示例
(二)Cacti安裝與部署(上)
(二)Cacti安裝與部署(下)
(三)Cacti設備管理與模板應用
(四)Cacti的多種數據採集方式
(五)Cacti插件架構與插件安裝
(六)Cacti高效輪詢工具spine
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章