歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Cacti+Nagios應用詳解(一)cacti與rrdtool的安裝部署

Cacti與rrdtool簡介

一、概述

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寫一套系統。幸運的是,半年前我找到了cacti(www.cacti.net)。對該工具我只有一個字形容:“great!”。

cacti 其實是一套php程序,它運用snmpget采集數據,使用rrdtool繪圖。它的界面非常漂亮,能讓你根本無需明白rrdtool的參數能輕易的繪出漂亮的圖形。更難能可貴的是,它提供了強大的數據管理和用戶管理功能,一張圖是屬於一個host的,每一個host又可以掛載到一個樹狀的結構上。用戶的管理上,作為一個開源軟件,它居然做到為指定一個用戶能查看的“樹”、host、甚至每一張圖,還可以與LDAP結合進行用戶的驗證!我不由得佩服作者考慮的周到!Cacti還提供自己增加模板的功能,讓你添加自己的snmp_query和script!可以說,cacti將rrdtool的所有“缺點” 都補足了!

URL:http://www.bianceng.cn/OS/Linux/201410/46044.htm

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

--------------------------------------------------------------------------------------------------

數據存儲層             mysql           rrdtool

--------------------------------------------------------------------------------------------------

數據采集層            net-snmp        script

Cacti工作原理圖:

全新linux系統安裝

以文本方式並自定義安裝軟件

……………………省略…………………….

去掉所有打勾

然後把紅色標記移到 development tools

URL:http://www.bianceng.cn/OS/Linux/201410/46044.htm

接下來按F2,跳出詳細菜單

選擇OK就行了,

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

Mod_auth_mysql mysql-devel  php-mysql

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

URL:http://www.bianceng.cn/OS/Linux/201410/46044.htm

接下來選擇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

URL:http://www.bianceng.cn/OS/Linux/201410/46044.htm

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.rpmrrdtool-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

URL:http://www.bianceng.cn/OS/Linux/201410/46044.htm

修改一下參數

$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

URL:http://www.bianceng.cn/OS/Linux/201410/46044.htm

URL:http://www.bianceng.cn/OS/Linux/201410/46044.htm

被監控主機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數據包

用ps aux  |grep snmp 查看是否啟動,如沒有看到進程

輸入/usr/local/sbin/snmpd -c /etc/snmp/snmpd.conf 啟動snmp進程

測試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設置一下選項

Copyright © Linux教程網 All Rights Reserved