搭建Cacti監控

餘二五發表於2017-11-15

Cacti是一套基於PHP,MySQL,SNMP及RRDTool開發的網路流量監測圖形分析工具。它通過snmpget來獲取資料,使用 RRDtool繪畫圖形,而且你完全可以不需要了解RRDtool複雜的引數。它提供了非常強大的資料和使用者管理功能,可以指定每一個使用者能檢視樹狀結構、host以及任何一張圖,還可以與LDAP結合進行使用者驗證,同時也能自己增加模板,功能非常強大完善。

   

Cacti三層架構:資料展現層、資料儲存層、資料採集層,其具體如下:

        資料採集層:通過SNMP或自定義指令碼進行資料採集

        資料儲存層:通過cacti模板等資料存放至MYSQL中

        資料展現層:通過WEB方式呈現出來

Cacti應用場景

1)網路裝置

(1)介面流量(進與出的頻寬)

(2)監控CPU的負載、記憶體等等

(3)溫度等等

2)主機系統

(1)網路介面流量(進與出的頻寬)

(2)監控CPU的負載、記憶體等等

(3)監控磁碟的空間、程式數等等

3)cacti常見的監測物件

(1)伺服器資源:CPU、記憶體、磁碟、程式、連線數等

(2)伺服器型別:WEB、Mail、FTP、資料庫、中介軟體

(3)網路介面:流量、轉發速度、丟包率

(4)網路裝置效能、配置檔案(對比與備份)、路由數

(5)安全裝置效能、連線數、攻擊數

(6)裝置執行狀態:風扇、電源、溫度

(7)機房執行環境:電流、電壓、溫溼度

nagios介紹

    cacti 和 nagios 是不同功用的系統, nagios 適合監視大量伺服器上面的大批服務是否正常, 重點並不在圖形化的監控, 其整合的很多功能例如報警,都是 cacti 沒有或者很弱的. cacti 主要用途還是用來收集歷史資料和畫圖, 所以介面比 nagios 漂亮很多.

    Nagios通常由一個主程式(Nagios)、一個外掛程式(Nagios-plugins)和四個可選的附件(NRPE、NSCA、 NSClient++和NDOUtils)組成。


Nagios的監控工作都是通過外掛實現的,因此,Nagios和Nagios-plugins是伺服器端工作所必須的元件。

    其它四個附件:

   (1)NRPE:用來在監控的遠端Linux/Unix主機上執行指令碼外掛以實現對這些主機資源的監控

   (2)NSCA:用來讓 被監控的遠端Linux/Unix主機主動將監控資訊傳送給Nagios伺服器(這在冗餘監控模式中特別要用到)

   (3)NSClient++:用來監控 Windows主機時安裝在Windows主機上的元件

   (4)NDOUtils:則用來將Nagios的配置資訊和各event產生的資料存入資料庫,以實現 這些資料的快速檢索和處理


    這四個ADDON(附件)中,

NRPE和NSClient++工作於客戶端


NDOUtils工作於伺服器端


而NSCA則需要同時安裝在伺服器端和客戶端


nagios主要功能

網路服務監控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)

主機資源監控(CPU load、disk usage、system logs),也包括Windows主機(使用NSClient++ plugin)

可以指定自己編寫的Plugin通過網路收集資料來監控任何情況(溫度、警告……)

可以通過配置Nagios遠端執行外掛遠端執行指令碼

遠端監控支援SSH或SSL加通道方式進行監控

簡單的plugin設計允許使用者很容易的開發自己需要的檢查服務,支援很多開發語言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)

包含很多圖形化資料Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)

可並行服務檢查

能夠定義網路主機的層次, 允許逐級檢查, 就是從父主機開始向下檢查

當服務或主機出現問題時發出通告,可通過email, pager, sms 或任意使用者自定義的plugin進行通知

能夠自定義事件處理機制重新啟用出問題的服務或主機

自動日誌迴圈

支援冗餘監控

包括Web介面可以檢視當前網路狀態,通知,問題歷史,日誌檔案等

3、結合實際應用選型軟體

分析:

1)、 NRPE與SNMP協議

Cacti在LINUX下主要採用SNMP協議;snmp是簡單網路管理協議,通過固定協議執行方式以OID格式提供系統執行狀態的全面資訊,然後通過snmp agent去獲取這些資訊並繪製流量。

NAGIOS在LINUX下主要採用NRPE外掛,NRPE通過ssl方式在C/S結構下呼叫被監控主機的狀態監測指令碼,並將獲得的資訊實時提供到監控伺服器。

2)、NAGIOS與CACTI區別

Cacti:在監控方面繪圖比較不錯,在流量與圖型展現比較存在優勢

Nagios:在故障分析比較不錯,報警機制相對來說比較好,報警機制:郵箱、簡訊等,而且也比Cacti靈活;同時適用監控大量伺服器以及伺服器上面大批服務狀態是否正常,重點不在圖形化,而在狀態故障的監控

綜合所知:

cacti偏沉於收集流量畫圖,系統負載方面的。而nagios偏沉於系統狀態正常與否方面的, nagios能夠和簡訊傳送機共同用來規模較大的網路,Cacti+Nagios 兩者結合使用取長補短方為上上之策。


Cacti是一款使用PHP語言開打的效能與流量監測工具,監測的物件可以是linux或windows伺服器,也可以是路由器,交換機等網路裝置,主要基於SNMP(簡單網路管理協議)蒐集CPU佔用,記憶體佔用,執行程式數,磁碟空間,網路卡流量等各種資料。


Cacti本身只是一個Web介面的管理軟體,通過呼叫Net-SNMP工具來採集監測資料,並結合RRDtool(輪詢資料庫工具)記錄資料並繪製圖片。


注意:Cacti監測系統的搭建需要LAMP環境的支援,因此在搭建Cacti環境之前需要先將LAMP環境搭建好,還有本文的系統使用rhel6.0的系統,參考時注意自己系統的版本。


伺服器端配置(主控端-Cacti)

1、構建支援Cacti的LAMP平臺

在此使用系統光碟中的rpm格式的包,並使用yum進行安裝,相關軟體包如下。

[root@localhost/]#yum -y install httpd

[root@localhost/]#yum -y install mysql mysql-server mysql-connector*

[root@localhost/]#yum -y install php php-mysql php-pdo perl-DBD*unixODBC-*

上述分別是安裝http mysql和php,也就是LAMP平臺。

2、安裝net-snmp-utils軟體包

Cacti平臺通過SNMP協議採集監測資料,因此需要用到snmpget,snmpwalk等SNMP資料採集工具,如下:使用yum一併安裝。

[root@localhost/]#yum -y install net-snmp* lm_sensors

3、安裝RRDtool軟體包

[root@localhost/]# tar zxf rrdtool-1.4.5.tar.bz

[root@localhost/]# cd rrdtool-1.4.5

[root@localhostrrdtool-1.4.5]#./configure–prefix=/usr/local

[root@localhostrrdtool-1.4.5]# make&&make install

4、部署Cacti原始碼包

將下載好的Cacti原始碼包釋放至Web伺服器的網頁目錄。

[root@localhost/]# tar zxf cacti-0.8.7g.tar.bz

[root@localhost/]# mv cacti-0.8.7g/ /var/www/html/cacti

5、新增一個程式使用者,用來讀取檢測的資料。

[root@localhost/]# useradd runct

[root@localhost/]# cd /var/www/html/cacti

[root@localhostcacti]# chown -R root:root./

[root@localhostcacti]# chown -R runct:runct rra/log/

6、建立資料庫,並匯入表。

先建立用於Cacti檢測平臺的資料庫,並授權一個資料庫使用者,然後使用cacti原始碼目錄下的cacti.sql指令碼,匯入預設的各種資料表。


如下圖所示:


需要先啟動mysqld服務,然後登陸mysq進行建立資料庫操作。


[root@localhostcacti]# mysql-uroot -p

Mysql>create database cactidb default characterset utf8;

Mysql>grant all on cactidb.*  to  cactiuser@`localhost` identified  by`123.qwe`;

Mysql>exit

[root@localhostcacti]# mysql-u cactiuser -p cactidb <cacti.sql


7、調整Cacti配置檔案


Cacti的配置檔案位於原始碼目錄中的include/檔案下,名為config.php。要使Cacti系統能夠正確訪問並使用資料庫,必須修改config.php檔案,確保資料庫連線引數真確無誤。修改如下:

[root@localhostcacti]#vim /var/www/html/cacti/include/config.php

$database_type=”mysql”;

$database_default=”cactidb”;

$database_hostname=”lcoalhost”;

$database_username=”cactiuser”;

$database_password=”123.qwe”;

$database_port=”3306″;

$database_ssl=false;

$url_path=”/”;

除此之外,為了在檢測影像中正確顯示中文,需要使用Cacti系統識別本機的中文語言環境

需要修改“/lib/functions.php”檔案。修改如下:

[root@localhost/]#vim /var/www/html/cacti/lib/functions.php

<?php

Setlocale(LC_CTYPE,”zh_CN.UTF-8″);

……//省略部分內容


8、修改httpd服務的主配置檔案,設定好網站根目錄,自動索引頁,預設字符集等相關引數,然後啟動http服務。修改如下:


[root@localhost/]#vim /etc/httpd/conf/httpd.conf

DocumentRoot”/var/www/html/cacti”

<Directory”/var/www/html/cacti”>

OptionsIndexesFollowSymLinks

AllowOverrideNone

Orderallow,deny

Allowfromall

</Directory>

DirectoryIndexindex.phpindex.html

AddDefaultCharsetUTF-8

[root@localhost/]#service httpd start

9、初始化安裝Cacti系統

在瀏覽器中訪問Cacti伺服器的Web服務,根據提示進行cacti初始化的安裝操作。如下圖所示:在瀏覽器中輸入“http://cacti伺服器的地址”根據提示選擇“next”進行下一步安裝,Cacti初始化安裝時會檢測安裝環境,安裝完成後,會出現Cacti登陸介面,預設使用者名稱,密碼都是“admin”,初次登陸會提示更改密碼。


客戶端配置(被控端-SNMPD)

無論是交換機,路由器,還是Linux系統或windows系統,只要正確支援SNMP協議,並允許Cacti伺服器採集資料,就能夠進行集中檢測了。作者在此分別使用Linux系統和Windows系統來演示客戶端的配置操作。

1、Linux客戶端

在linux客戶端,需要安裝net-snmp、lm_sensors等軟體包,並修改snmpd.conf配置檔案,啟動snmpd服務即可。

snmpd.conf配置檔案修改如下:

[root@localhost]#vim /etc/snmp/snmpd.conf

……//省略部分內容

41com2secnot Configuser 192.168.1.1 Public

62accessnotConfigGroup””anynoauthexactallnonenone

85viewallincluded.1

2、windows客戶端

windows客戶端需要安裝SNMP服務

安裝完成以後,通過“伺服器管理器”修改“SNMPService”服務的屬性,指定授權地址(即cacti伺服器的地址),共同體名等(即Public)。

使用Cacti檢測客戶端主機

1、新增被監控端主機

單擊導航欄中“Management”下的“Devices”連結,可以管理被控制端裝置或主機。通過右上角的“Add”連結,可以開啟新增新裝置的頁面。

建立新的被監控裝置以後,將自動連線目標執行SNMP查詢,若查詢成功則可以繼續後面的檢測專案設定,否則應檢測被控端的SNMP設定,網路連線,防火牆限制,共同體名等相關因素以排除故障。成功連線被控端後會看到“SaveSucessful”的提示資訊,頁面下方可看到預設檢測專案,管理員可根據需要檢測的專案進行勾選。

2、生成檢測影像

單擊導航欄中“Create”下的“NewGraphs”連結,進入影像建立頁面,選擇指定被監控主機或裝置,並選擇其中最需要的影像條目。

單擊導航欄中“Management”下的“GraphTrees”連結,在單擊“DefaultTree”,可以對預設的影像檢測樹進行管理。我們可以單擊右邊的“Add”連結,將剛才建立的影像新增至檢測樹彙總。

3、定期採集檢測資料

Cacti系統通過“poller.php”頁面來採集檢測資料,需要使用php程式解釋執行。為了獲得持續穩定的資料,應結合計劃任務定期進行採集。

[root@localhost/]#su – runct//切換為資料採集賬戶

[runct@localhost/]# php /var/www/html/cacti/poller.php//手動執行資料採集

[runct@localhost/]# crontab -e //設定計劃任務

*/5****/usr/bin/php /var/www/html/cacti/poller.php&>/dev/null

[runct@localhost/]#exit

[root@localhost/]#service crond start

[root@localhost/]#chkconfig crond on

4、檢視檢測結果

單擊Cacti管理控制檯左上方的“graphs”標籤,然後展開左側欄的“DefaultTree”樹,選擇被監控主機後即可看到個項檢測影像。

新增Monitor、Thold外掛

Cacti檢測系統支援外掛擴充套件,允許自定義影像模板和資料查詢,從而能夠靈活滿足更加多樣化的檢測需求。下面通過安裝及使用Monitor、Thold外掛,介紹擴充套件Cacti檢測系統功能的基本方法。


1、安裝Monitor和Thold外掛

將下載好的外掛包解壓到/var/www/html/cacti/plugins目錄下即可。


[root@localhost/]#tar zxf monitor-0.8.2.tar.gz  -C /var/www/html/cacti/plugins

[root@localhost/]#tar zxf thold-0.4.3.tar.gz -C /var/www/html/cacti/plugins


2、調整cacti配置以識別外掛


在cacti系統的web控制檯中,單擊導航欄中的“Utilites”下的“UserManagement”連結,修改admin使用者的屬性,選中“PluginManagement”項,單擊“Save”儲存即可。


重新整理cacti控制檯頁面,左側導航欄中“configuration”下將多出一個“PluginManagement”連結。單擊此連結進入外掛管理頁面,通過“Actions”列的按鈕可依次載入Monitor、Settings、Thold外掛,並啟用Thold外掛。


使用狀態監視外掛——Monitor


單擊導航欄中“configuration”下的“setings”連結,切換至“Misc”頁面並選中“ShowlconLegend”以顯示圖例,將檢視“View”設為“Tiles”。

若不希望某個裝置被Monitor外掛檢測,則可以修改被監控主機屬性,取消選中的“MonitorHost”即可。


使用閾值告警外掛——Thold


1、設定接收告警郵件的郵箱地址


單擊導航欄中的“ConfigUration”下的“Settings”連結,切換至“Thresholds”頁面,選中“DeadHostNotifications”以便當機或恢復時傳送通知,同時應在“DeadhostsNotificationsEmail”外指定告警郵箱地址。


2、設定SMTP發信、DNS伺服器等引數。


單擊導航欄中的“ConfigUration”下的“Settings”連結,切換至“Mail/DNS”頁面,將“MailServices”設為“SMTP”,並填寫實際可用的發信地址,SMTP伺服器,SMTP認證使用者和密碼,以及DNS伺服器地址等資訊。


3、設定需要報警的檢測專案


單擊導航欄中“Templates”下的“ThresholdTemplates”連線,切換至預警模板設定頁面,單擊“Add”可以新增預警項,資料模板應與被控裝置使用的模板想匹配。

在設定各種檢測模板時,告警閾值的預設計量單位如下:CPU使用率為百分比(不含%),網路卡流量為Byte/S,硬碟空間為KB,記憶體佔用為KB。


4、為被控主機啟用閾值告警

單擊導航欄中“Create”下的“NewGraphs”連線,選擇指定的被控主機,然後單擊右上方的“Auto-createthresholds”連線,將會自動建立可用的閾值告警專案。


5、檢視,管理閾值警告。

單擊導航欄中“Management”下的“Thresholds”連線,可以對以啟用的閾值告警項進行管理(檢視,新增,刪除等);或者通過cacti管理頁面上方的“Thold”選項卡,可以檢視閾值告警情況,達到告警條件的檢測項將以紅色顯示。



環境:

相關軟體:

Linux AS4 up4

mysql-5.0.22.tar.gz

httpd-2.2.4.tar.gz

php-5.2.4.tar.gz

cgilib-0.5.tar.gz

phpMyAdmin-2.11.1-all-languages.tar.gz

rrdtool-1.2.11.tar.gz

net-snmp-5.2.4.tar.gz

cacti-0.8.6g.tar.gz


安裝配置:

mysql安裝

解壓縮:tar –zvxf mysql-5.0.22.tar.gz

改變目錄:cd mysql-5.0.22.tar.gz


新增組:groupadd –g 20000 mysql


把使用者加入組中:useradd –u 20000 –g mysql mysql


編譯前的配置:

./configure –prefix=/usr/local/mysql –sysconfdir=/etc –localstatedir=/var/lib/mysql


編譯:make

安裝:make install


初始化資料庫:/usr/local/mysql/bin/mysql_install_db


設定目錄許可權:Chown –R mysql /var/lib/mysql


複製配置檔案:Cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf


啟動資料庫:/usr/local/mysql/bin/mysqld_safe –user=root &


修改root密碼:/usr/local/mysql/bin /mysqladmin –u root password bobo365


測試資料庫:/usr/local/mysql/bin/mysql –u root –p


Mysql>

新增到自動啟動:

cp support-files/mysql.server /etc/rc.d/init.d/mysqld


# chkconfig –add mysqld


#chkconfig –level 3 mysqld on


安裝apache

Tar –zvxf httpd-2.2.4.tar.gz

Cd httpd-2.2.4

./configure –prefix=/usr/local/apache –enable-so –enable-rewrite –with-included-apr  (–enable-module=so –enable-module=most –enable-shared=max)

Make

Make install


安全加固:


隱藏和偽裝apache版本:找到關鍵字ServerSignature將其設定為

ServerSignature off

ServerTokens Pord


安裝前編譯ap_release.h檔案,修改

“#define AP_SERVER_BASEPRODUCT”Apache””為“#define AP_SERVER_BASEPRODUCT”Microsoft-IIS/5.0””


編輯os/unix/os.h,修改“define PLATFORM”Unix””為“define PLATFORM”Win32””


禁止顯示動態目錄索引:


Options –Indexes FollowSymLinks


在rc.local上加入一行/usr/local/apache/bin/apachectl –k start,系統啟動時啟動Apache服務



安裝php

(安裝libxml,RedHat AS 4預設安裝libxml包,但版本太低,PHP5需要更高版本的libxml包

rpm -e libxml-devel

rpm -e libxml


http://xmlsoft.org/sources/old/

# tar –zxvf libxml2-2.6.25.tar.gz

# cd libxml2-2.6.25

# ./configure

# make

# make install

 

Tar –zvxf php-5.2.4.tar.gz


Cd php-5.2.4


./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql –with-apxs2=/usr/local/apache/bin/apxs –enable-sockets

(# ./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache2/bin/apxs –with-mysql=/usr/local/mysql –with-gd=/usr/local/libgd –enable-gd-native-ttf –with-ttf –enable-gd-jis-conv –with-freetype-dir=/usr/local/freetype –with-mail –with-jpeg-dir=/usr/local/libjpeg –with-png –with-zlib-dir=/usr/local/zlib –enable-xml –enable-mbstring –enable-sockets)

(./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache/bin/apxs –with-config-file-path=/usr/local/php –enable-sockets –with-mysql=/usr/local/mysql

–with-zlib-dir=/usr/include –with-gd)

Make

Make install


Cp php.ini-dist /usr/local/lib/php/php.ini


修改httpd.conf檔案


AddType application/x-httpd-php .php

AddType application/x-httpd-php –source .phps


測試:<? phpinfo(); ?>


4、設定mysql

[root@Bleach php-4.3.10]# /usr/local/mysql/bin/mysql -u root -pmysql

mysql> create database cactidb;

mysql> grant all on cactidb.* to root;

mysql> grant all on cactidb.* to root@localhost;

mysql> grant all on cactidb.* to cactiuser;

mysql> grant all on cactidb.* to cactiuser@localhost;

mysql> set password for cactiuser@localhost=password(`cactipw`);


注:以上語句輸出 Query OK, 0 rows affected (0.01 sec) 表示成功

mysql> exit

Mysql設定完畢


5、安裝phpMyAdmin


Tar –zvxf phpMyAdmin-2.11.1-all-languages.tar.gz


Mv phpMyAdmin-2.11.1 /var/www/html/phpMyAdmin


Vi config.inc.php


$cfg[`Servers`][$i][`user`] = `root`;


$cfg[`Servers`][$i][`password`] = `bobo365`;


設定資料庫連線。


http://ip/phpMyAdmin測試。


6、安裝rrdtool


(1).安裝cgilib

tar -zxf cgilib-0.5.tar.gz

cd cgilib-0.5

make CC=gcc CFLAGS=”-O3 -fPIC –I.”

cp cgi.h /usr/include/

cp libcgi.a /usr/local/bin/

 1).安裝cgilib

 tar -zxf cgilib-0.5.tar.gz

 cd cgilib-0.5

 make CC=gcc CFLAGS=”-O3 -fPIC -I.”

 mkdir -p /usr/local/cgilib/include

 cp *.h /usr/local/cgilib/include

 mkdir -p /usr/local/cgilib/lib

 cp libcgi* /usr/local/cgilib/lib

(2)安裝libart_lgpl

Rpm –ivh libart_lgpl-2.3.11-2.i386.rpm

Rpm –ivh libart_lgpl-devel-2.3.11-2.i386.rpm

(3)安裝rrdtool

tar -zxf rrdtool-1.2.11.tar.gz

cd rrdtool-1.2.11

./configure –prefix=/usr/local/rrdtool –disable-python –disable-tcl

make

make install


ln –s /usr/local/rrdtool/bin5 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti /poller.php > /dev/null 2>&1


儲存退出:wq

全部設定完畢。

開啟瀏覽器 http://ip/cacti 進入cacti的初始設定頁面


第一次預設登陸賬號:admin 密碼 admin

登陸後在新改個密碼就OK

需要說明的還有路徑

[Copy to clipboard]CODE:

snmpwalk Binary Path : /usr/bin/snmpwalk

snmpget Binary Path: /usr/bin/snmpget

RRDTool Binary Path: /usr/rrdtool-1.0.50/src/rrdtool

PHP Binary Path: /www/php/bin/php

Cacti Log File Path: /www/htdocs/cacti/log/cacti.log

Cactid Poller File Path: /www/htdocs/cacti/poller.php

注:此時graphs還不能顯示圖形,需要將服務重新啟動一下

[Copy to clipboard]CODE:

[root@Bleach scripts]# service snmpd restart

[root@Bleach scripts]# service mysql restart

[root@Bleach scripts]# service httpd restart

 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

如果您是Linux主機的話請先確定你的snmpd.conf有無下面字串


view systemview included .1.3.6.1.2.1.2

如果沒有請自行加入

 

此字串是偵測Interfaces

 

請先確定您的Devices的Data Query有新增SNMP – Interface Statistics

 

到Create → New Graphs → 選擇您要偵測的Host

 

在Data Query [SNMP – Interface Statistics]裡面勾選您要偵測的網路卡介面

選擇右下角的Select a graph type:In/Out Bits或者您想要的單位

好了之後點選右下方的create送出新增 

再到Graph Trees把剛剛的Host或者Graphs新增進去即可查詢  

cacti-0.8.7.tar.gz

cacti-plugin-arch.tar.gz

cacti-spine-0.8.7.tar.gz

 

CACTI的安裝涵蓋了LAMP各個方面,實際環境中完全可以使用成型的CactiEZ中文版直接安裝。

 

安裝完CactiEZ中文版後,授權其他裝置有MYSQL管理許可權:



[root@CactiEZ init.d]#service mysqld stop

[root@CactiEZ init.d]# mysqld_safe –user=mysql –skip-grant-tables –skip-networking &

[root@CactiEZ init.d]# mysql -u root mysql

mysql> update mysql.user set password=password(“bobo365″) where user=”root”;

Query OK, 0 rows affected (0.00 sec)

Rows matched: 3  Changed: 0  Warnings: 0

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> quit

Bye


[root@CactiEZ init.d]# ./mysqld start

Starting mysqld:                                           [  OK  ]


[root@CactiEZ init.d]# mysql -uroot -p

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or g.

Your MySQL connection id is 3

Server version: 5.1.47 Source distribution

mysql> show databases;

+——————–+

| Database           |

+——————–+

| information_schema |

| cacti              |

| mysql              |

| test               |

+——————–+

4 rows in set (0.00 sec)


mysql> 


mysql> GRANT ALL PRIVILEGES ON *.* TO root@192.168.2.243 IDENTIFIED BY `bobo365` WITH GRANT OPTION; 

Query OK, 0 rows affected (0.00 sec)


mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)


mysql> quit


[root@CactiEZ init.d]# ./mysqld restart

120731 12:07:58 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

Stopping mysqld:                                           [  OK  ]

Starting mysqld:                                           [  OK  ]

[1]+  Done                    mysqld_safe –user=mysql –skip-grant-tables –skip-networking


放行80、3306埠

# iptables -I INPUT  -p tcp –dport 80 -jACCEPT ; iptables -I INPUT  -p tcp–dport 3306 -j ACCEPT ;

#service iptables save

 

1安裝cacti依賴的軟體,安裝過程全選Y

#yum  install httpd php php-process php-ldap php-mbstringphp-gd php-pdo php-snmp php-mysql lm_sensors net-snmp net-snmp-utilsnet-snmp-libs rrdtool rrdtool-devel  perl-DBI perl-rrdtool perl-DBD-MySQL wqy-zenhei-fonts


2裝好依賴軟體之後,snmp有3個地方需要配置一下


3 #vim /etc/snmp/snmpd.conf    


第41行:將 com2secnotConfigUser default public 中的 “default” 改為 “127.0.0.1”


提示 :41可直接跳到41行,下面同理


第62行:

將 accessnotConfigGroup “” any noauth exact systemview none none 中的 “systemview” 改為

 “all”


第85行:將 #viewall include .1 80 這一行前面的 # 號去掉


4 配置好snmp以後我們來啟動2個重要的服務


#s

ervice snmpd start ; 

service httpdstart ; 

chkconfig snmpd on ; 

chkconfig httpd on


5安裝並配置cacti


#wget http://www.cacti.net/downloads/cacti-1.0.1.tar.gz


#tar xzvf cacti-1.0.1.tar.gz


#mv cacti-1.0.1 /var/www/html/cacti


6下載和設定mysql資料庫


#wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm  //下載mysql的yum源,以安裝mysql5.7,預設的版本和cacti不相容


# rpm -ivh mysql57-community-release-el6-9.noarch.rpm


# yum install mysql-community-server


7修改MySQL的配置檔案(預設為/etc/my.cnf),


在[mysqld]下新增一行

skip-grant-tables

#service mysqld start; 

chkconfig mysqld on

#mysql

mysql> update mysql.user setauthentication_string=password(`新密碼`) where user=`root` and Host =`localhost`;

mysql> flush privileges;

mysql> quit;

8將/etc/my.cnf檔案還原,重新啟動mysql


#mysql -uroot -p     //輸入剛才設定的密碼


mysql> ALTER USER `root`@`localhost` IDENTIFIED BY `資料庫密碼`; 


//再次執行修改密碼的命令(和之前的密碼相同),新版資料庫的安全要求高


mysql>create database cacti;   //首先建立cacti資料庫,注意別丟了分號

mysql>grant all privileges oncacti.* to cacti@localhost identified by `新密碼` with grant option;    //建立cacti使用者並授權

mysql>use cacti;

mysql>source /var/www/html/cacti/cacti.sql;    //匯入cacti資料庫檔案

mysql>grant select on mysql.time_zone_nameto `cacti`@`localhost` identified by `資料庫密碼`; //給cacti 對mysql.time_zone_name表的查詢許可權(這兩個命令需執行,否則安裝中途會報錯)

mysql> flush privileges;

 

mysql>exit

 

9 #vim /var/www/html/cacti/include/config.php


$database_type = “mysql”;

$database_default = “cacti”;

$database_hostname =”localhost”;

$database_username = “cacti”;   

$database_password = ” 資料庫密碼 “;  

$database_port = “3306”;


執行命令,否則安裝過程會報錯


# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -p mysql


10修改mysql預設引數,以支援cacti版本要求(直接貼上到最後一行)


#vim /etc/my.cnf

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

max_heap_table_size=400M

max_allowed_packet=16777216

tmp_table_size=64M

join_buffer_size=64M

innodb_buffer_pool_size=1912M

innodb_doublewrite=OFF

innodb_flush_log_at_timeout=3

innodb_read_io_threads=32

innodb_write_io_threads=16

# service mysqld restart


11修改目錄的所有者為apache

 # cd /var/www/html/

 # chown -R apache:apache cacti


12:增加cacti 使用者以用來寫入rrd和log目錄的資料,否則就會生成不了圖片

 #useradd cacti

 #cd cacti

 #chown -R cacti rra/ log/

13:新增任務計劃

具體多長時間讓cacti生成一次監控圖表自己決定,這裡以cacti的預設時間5分鐘生成一次為例

 #crontab -e

加入這一行儲存即可

*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1

14在瀏覽器輸入  http://ip/cacti

圖片不太清晰,在倒數第三個圖注意下,其它的預設下一步就行了


被監控伺服器 需要檢視網路卡流量, 磁碟空間等資訊。修改如下。


vi /etc/snmp/snmpd.conf

 

1、找到com2sec notConfigUser  default       public 

改為:com2sec notConfigUser   192.168.1.1(改成監控伺服器的ip)       public 

 

2、找到access  notConfigGroup “”      any       noauth    exact  systemview  none none 

改 為:access  notConfigGroup “”      any       noauth    exact  all  none  none 

 

3、找到#view all    included  .1         80 

將前面的 # 註釋 去掉。

 

#以下為訪問專案,如果想監控磁碟空間,load等需把註釋去掉

#編譯安裝預設已去掉,自帶安裝的需手動把註釋去掉

#  Make sure mountd is running

proc mountd #去掉前面的”#”

#  Make sure there are no more than 4 ntalkds running, but 0 is oktoo.

proc ntalkd 4

#  Make sure at least one sendmail, but less than or equal to 10 arerunning.

proc sendmail 10 1

# Check the / partition and make sure it contains at least 10 megs.

disk / 10000

# Check for loads:

load 12 14 14

本文轉自 chengxuyonghu 51CTO部落格,原文連結:http://blog.51cto.com/6226001001/1899453,如需轉載請自行聯絡原作者


相關文章