Cacti是一套基於PHP,MySQL,SNMP及RRDTool開發的網絡流量監測圖形分析工具。它經過snmpget來獲取數據,使用 RRDtool繪畫圖形,並且你徹底能夠不須要了解RRDtool複雜的參數。它提供了很是強大的數據和用戶管理功能,能夠指定每個用戶能查看樹狀結構、host以及任何一張圖,還能夠與LDAP結合進行用戶驗證,同時也能本身增長模板,功能很是強大完善。php
Cacti三層架構:數據展示層、數據存儲層、數據採集層,其具體以下:html
數據採集層:經過SNMP或自定義腳本進行數據採集python
數據存儲層:經過cacti模板等數據存放至MYSQL中mysql
數據展示層:經過WEB方式呈現出來linux
Cacti應用場景ios
1)網絡設備web
(1)接口流量(進與出的帶寬)sql
(2)監控CPU的負載、內存等等shell
(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、POP三、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界面能夠查看當前網絡狀態,通知,問題歷史,日誌文件等
三、結合實際應用選型軟件
分析:
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)
一、構建支持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平臺。
二、安裝net-snmp-utils軟件包
Cacti平臺經過SNMP協議採集監測數據,所以須要用到snmpget,snmpwalk等SNMP數據採集工具,以下:使用yum一併安裝。
[root@localhost/]#yum -y install net-snmp* lm_sensors
三、安裝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
四、部署Cacti源碼包
將下載好的Cacti源碼包釋放至Web服務器的網頁目錄。
[root@localhost/]# tar zxf cacti-0.8.7g.tar.bz
[root@localhost/]# mv cacti-0.8.7g/ /var/www/html/cacti
五、添加一個程序用戶,用來讀取檢測的數據。
[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/
六、創建數據庫,並導入表。
先建立用於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
七、調整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");
......//省略部份內容
八、修改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
九、初始化安裝Cacti系統
在瀏覽器中訪問Cacti服務器的Web服務,根據提示進行cacti初始化的安裝操做。以下圖所示:在瀏覽器中輸入「http://cacti服務器的地址」根據提示選擇「next」進行下一步安裝,Cacti初始化安裝時會檢測安裝環境,安裝完成後,會出現Cacti登錄界面,默認用戶名,密碼都是「admin」,初次登錄會提示更改密碼。
客戶端配置(被控端-SNMPD)
不管是交換機,路由器,仍是Linux系統或windows系統,只要正確支持SNMP協議,並容許Cacti服務器採集數據,就可以進行集中檢測了。做者在此分別使用Linux系統和Windows系統來演示客戶端的配置操做。
一、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
二、windows客戶端
windows客戶端須要安裝SNMP服務
安裝完成之後,經過「服務器管理器」修改「SNMPService」服務的屬性,指定受權地址(即cacti服務器的地址),共同體名等(即Public)。
使用Cacti檢測客戶端主機
一、添加被監控端主機
單擊導航欄中「Management」下的「Devices」連接,能夠管理被控制端設備或主機。經過右上角的「Add」連接,能夠打開添加新設備的頁面。
建立新的被監控設備之後,將自動鏈接目標執行SNMP查詢,若查詢成功則能夠繼續後面的檢測項目設置,不然應檢測被控端的SNMP設置,網絡鏈接,防火牆限制,共同體名等相關因素以排除故障。成功鏈接被控端後會看到「SaveSucessful」的提示信息,頁面下方可看到默認檢測項目,管理員可根據須要檢測的項目進行勾選。
二、生成檢測圖像
單擊導航欄中「Create」下的「NewGraphs」連接,進入圖像建立頁面,選擇指定被監控主機或設備,並選擇其中最須要的圖像條目。
單擊導航欄中「Management」下的「GraphTrees」連接,在單擊「DefaultTree」,能夠對默認的圖像檢測樹進行管理。咱們能夠單擊右邊的「Add」連接,將剛纔建立的圖像添加至檢測樹彙總。
三、按期採集檢測數據
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
四、查看檢測結果
單擊Cacti管理控制檯左上方的「graphs」標籤,而後展開左側欄的「DefaultTree」樹,選擇被監控主機後便可看到個項檢測圖像。
添加Monitor、Thold插件
Cacti檢測系統支持插件擴展,容許自定義圖像模板和數據查詢,從而可以靈活知足更加多樣化的檢測需求。下面經過安裝及使用Monitor、Thold插件,介紹擴展Cacti檢測系統功能的基本方法。
一、安裝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
二、調整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
一、設置接收告警郵件的郵箱地址
單擊導航欄中的「ConfigUration」下的「Settings」連接,切換至「Thresholds」頁面,選中「DeadHostNotifications」以便宕機或恢復時發送通知,同時應在「DeadhostsNotificationsEmail」外指定告警郵箱地址。
二、設置SMTP發信、DNS服務器等參數。
單擊導航欄中的「ConfigUration」下的「Settings」連接,切換至「Mail/DNS」頁面,將「MailServices」設爲「SMTP」,並填寫實際可用的發信地址,SMTP服務器,SMTP認證用戶和密碼,以及DNS服務器地址等信息。
三、設置須要報警的檢測項目
單擊導航欄中「Templates」下的「ThresholdTemplates」鏈接,切換至預警模板設置頁面,單擊「Add」能夠添加預警項,數據模板應與被控設備使用的模板想匹配。
在設置各類檢測模板時,告警閾值的默認計量單位以下:CPU使用率爲百分比(不含%),網卡流量爲Byte/S,硬盤空間爲KB,內存佔用爲KB。
四、爲被控主機啓用閾值告警
單擊導航欄中「Create」下的「NewGraphs」鏈接,選擇指定的被控主機,而後單擊右上方的「Auto-createthresholds」鏈接,將會自動建立可用的閾值告警項目。
五、查看,管理閾值警告。
單擊導航欄中「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(); ?>
四、設置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設置完畢
五、安裝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';
設置數據庫鏈接。
六、安裝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
一、找到com2sec notConfigUser default public
改成:com2sec notConfigUser 192.168.1.1(改爲監控服務器的ip) public
二、找到access notConfigGroup "" any noauth exact systemview none none
改 爲:access notConfigGroup "" any noauth exact all none none
三、找到#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