Cacti的實例應用
1)網絡設置
3)cacti常見的監測對象2)主機系統 (1)網絡接口流量(進與出的帶寬) (2)監控CPU的負載、內存等等 (3)監控磁盤的空間、進程數等等 .........................................等等 (1)服務器資源:CPU、內存、磁盤、進程、連接數等 (2)服務器類型:WEB、Mail、FTP、數據庫、中間件 (3)網絡接口:流量、轉發速度、丟包率 (4)網絡設備性能、配置文件(對比與備份)、路由數 (5)安全設備性能、連接數、***數 (6)設備運行狀態:風扇、電源、溫度 (7)機房運行環境:電流、電壓、溫溼度 |
1)監控網絡服務(SMTP、POP3、HTTP、NNTP、PING等)
2)監控主機資源(處理器負荷、磁盤利用率等) 3)簡單地插件設計使得用戶可以方便地擴展自己服務的檢測方法 4)並行服務檢查機制 5)具備定義網絡分層結構的能力,用"parent"主機定義來表達網絡主機間的關係,這種關係可被用來發現和明晰主機宕機或不可達狀態 6)當服務或主機問題產生與解決時將告警發送給聯繫人(通過EMail、短信、用戶定義方式) 可以通過飛信,等方式實現時,既可傳遞給管理員,可高效的保證服務器的維護。
7)具備定義事件句柄功能,它可以在主機或服務的事件發生時獲取更多問題定位 8)自動的日誌回滾 9)可以支持並實現對主機的冗餘監控 10)可選的WEB界面用於查看當前的網絡狀態、通知和故障歷史、日誌文件等 |
(1)NRPE:用來在監控的遠程Linux/Unix主機上執行腳本插件以實現對這些主機資源的監控
(2)NSCA:用來讓 被監控的遠程Linux/Unix主機主動將監控信息發送給Nagios服務器(這在冗餘監控模式中特別要用到)
(3)NSClient++:用來監控 Windows主機時安裝在Windows主機上的組件
(4)NDOUtils:則用來將Nagios的配置信息和各event產生的數據存入數據庫,以實現 這些數據的快速檢索和處理
這四個ADDON(附件)中,NRPE和NSClient++工作於客戶端,NDOUtils工作於服務器端,而NSCA則需要同時安裝在服務器端和客戶端
NTOP提供以下一些功能:
① 自動從網絡中識別有用的信息;
② 將截獲的數據包轉換成易於識別的格式;
③ 對網絡環境中的通信失敗進行分析;
④ 探測網絡環境下的通信瓶頸;
⑤ 記錄網絡通信時間和過程;
⑥ 自動識別客戶端正在使用的操作系統;
⑦ 可以在命令行和Web兩種方式下運行。
|
yum install httpd php php-mysql mysql mysql-server php-snmp -y
安裝完成後讓服務都啓動並調整之間的連接關係.
service mysqld start # 啓動mysql服務
chkconfig mysqld on #使其開機自動啓動
啓動完mysql後,如果出現以下畫面,並能通過mysql進入,說明成功安裝。
之後編輯httpd服務的配置文件,使其支持mod_status.so模塊.,
只要在/etc/httpd/conf/httpd.conf的配置文件中找到
LoadModule status_module modules/mod_status.so
有這一項表示已經支持狀態檢測模塊,所以無需額外添加,直接啓動web服務即可.
service httpd start #啓動http服務
chkconfig httpd on #開機自動啓動httpd 服務
啓動OK後,編輯
vim /var/www/html/index.php 在其中添加以下內容#
<?php
phpinfo(); ?> # 保存退出
用web瀏覽器訪問,如果出現以下畫面,則表示http支持動態php.並能與php成功連接.
接着測試與mysql的連接,先給mysql設置個管理員密碼
mysqladmin -uroot password '123456' #密碼設置爲123456
編輯剛纔的web頁面
vim /var/www/html/index.php
把裏面的內容改爲
<?php $link=mysql_connect("localhost","root","123456"); if(!$link) echo "FAILD!"; else echo "OK!"; ?> 刷新剛纔的web瀏覽器頁面,如果出現OK!字樣,則表示成功連接.
|
其中主要用到的是rrdtool-1.2.27-3.el5.i386.rpm 和rrdtool-devel-1.2.27-3.el5.i386.rpm和rrdtool-php-1.2.27-3.el5.i386.rpm這三個包,其餘的包是其他擴展功能和其他腳本語言結合的.筆者就不過多演示了.
安裝以上三個包
cd /root/rrdtool/ #筆者rpm包所在的地方,可以做修改
yum -y localinstall --nogpgcheck rrdtool-1.2.27-3.el5.i386.rpm
yum -y localinstall --nogpgcheck rrdtool-devel-1.2.27-3.el5.i386.rpm
yum -y localinstall --nogpgcheck rrdtool-php-1.2.27-3.el5.i386.rpm
|
登錄數據庫
mysql -uroot -p
##會提示你輸入密碼,筆者在前面設置的密碼爲 123456
mysql> create database cactidb;
mysql> GRANT all privileges ON cactidb.* TO cactier@localhost IDENTIFIED BY '123456';
mysql> GRANT all privileges ON cactidb.* TO [email protected] IDENTIFIED BY '123456';
mysql> GRANT all privileges ON cactidb.* TO [email protected] IDENTIFIED BY '123456';
##說明 筆者指定了一個網段的授權,是將來做監控時數據庫和監控工具不在同一臺主機上,網段可根據自己需要進行授權。
mysql> flush privileges;
|
(4)配置SNMP
在net-snmp的主配置文件/etc/snmp/snmpd.conf中,默認的community爲public,建議將public修改爲您需的密碼項,筆者在此就不做修改了,使用默認密碼public
接着,啓動snmp進程
service snmpd restart #如果修改過snmpd.conf 則需要重啓服務
|
首先要去cacti官網下載cacti的gz源碼包,目前最新的版本是0.8.7.g 從官方網站的說明and a webserver that supports PHP such as Apache or IIS.就知道以上的準備工作是必須要做的.
重要說明:如果用0.8.7g版本的cacti,在後面整合nagios時可能出現bug,筆者推薦用0,8.7e版本的,筆者演示用的是0.8.7g原理一樣.
下載完成後就可以解壓縮了,筆者放在了/root/目錄下
cd /root
tar zxvf cacti-0.8.7g.tar.gz
mv cacti-0.8.7g /var/www/html/cacti
##因爲cacti的配置是在web頁面下進行的,所以筆者直接把cacti-0.8.7g 移至/var/www/html/cacti
cd /var/www/html/cacti
mysql -uroot -p cactidb < cacti.sql
##將cacti.sql數據庫文件導入,會提示輸入密碼輸入前面設置的root 的密碼即可
編輯cacti的主配置文件,爲其指定對應的數據庫參數:
vim /var/www/html/cacti/include/config.php
將下列各參數的值修改爲您前面所設定的:
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactier";
$database_password = "123456";
$database_port = "3306";
修改完成後保存退出。
添加cactier用戶 並給其設置密碼
useradd cactier
passwd cactier cd /var/www/html/cacti/
chown -R cactier rra/ log/ #指定rra/ log/的屬組屬主爲cactier用戶
vim /etc/crontab
##編輯crontab文件 在空白行添加以下內容
*/5 * * * * cactier php /var/www/html/cacti/poller.php > /dev/null &
#每5分鐘以cactier去抓取數據繪圖,這個時間5分鐘應該是最小間隔了,筆者不建議修改爲更小值。
記的要把selinux 關閉,不然不能從web頁面訪問的,關閉方法如下
setenforce 0 #只是臨時關閉
好了,下面就可以用web瀏覽器訪問cacti進行配置管理了。
筆者所用虛擬機ip爲192.168.0.39 ## IP根據自己實際情況可做相應修改
從瀏覽器直接訪問以下地址 即可看到cacti配置畫面
如果看到以下畫面,則可以進行之後的配置
點擊下一步。
如果上面全是[FOUND],則可以點擊Finish 完成,中間的路徑可能與圖片不同。
Finish後就會出現登陸畫面
用戶名admin 密碼admin 即可登陸 (第一次登陸後會強行讓修改密碼)
進入後點擊graphs 會顯示流量圖
如果不出現圖片執行以下命令讓其手動繪圖即可.
su - cactier
php /var/www/html/cacti/poller.php > /dev/null 2>&1
exit
數據部分啓動較慢,請耐心等待,如顯示如上圖片數據,則成功安裝配置。
##cacti的具體使用筆者不做過多介紹,有意者可去官方網站閱讀官方文檔。
|
Nagios通常由一個主程序(Nagios)、一個插件程序(Nagios-plugins)和四個可選的ADDON(NRPE、NSCA、 NSClient++和NDOUtils)組成。Nagios的監控工作都是通過插件實現的,因此,Nagios和Nagios-plugins是服務器端工作所必須的組件
下面在服務端安裝Nagios和Nagios-plugins.
先下載源碼包,目前官方的最新版本如下圖 插件版本 下載之.筆者放在了 /root/nagios目錄下 nagios 需要一些基礎支持套件才能運行,如apache,gcc,glibc,gd庫等。 cd /root/nagios #該目錄是你下載的nagios源碼包所在位置 tar zxvf nagios-3.2.2.tar.gz #解壓 cd nagios-3.2.2 注意下面--with-httpd-conf 的路徑,取決與你apache的,如果是yum安裝的apache,則路徑爲: /configure --with-command-group=nagios --with-httpd-conf=/etc/httpd/conf/extra/ ##如果沒有報錯,就進行一下步驟 make all vim /usr/local/nagios/etc/objects/contacts.cfg ##修改nagiosadmin這行其中的郵件地址爲你的email地址,以將報警郵件發到你的郵箱 make install-webconf htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin ##設置登陸web界面時HTTP驗證的賬號密碼如果apache是用源碼編譯安裝的話,該指令改爲如下所示: #/usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin vim /etc/httpd/conf/httpd.conf 在空白地方添加一下兩行 如果可以正常啓動,下面就可以開始編譯、安裝nagios-plugins ##下面是一些配置
useradd -m nagios #添加一個名爲nagios的用戶來運行nagios
groupadd nagios #添加nagios用戶組,用以通過web頁面提交外部控制命令
usermod -a -G nagios daemon #將運行apache用戶daemon加入nagios組
make install
make install-init
make install-config
make install-commandmode #安裝完成沒有報錯開始以下配置
下面修改httpd.conf ,筆者是yum裝的apache ,配置文件的路徑爲如下所示:
# nagios default settings
Include conf/extra/nagios.conf
mysql -uroot -p
注:以上config目錄中的ndo2db.cfg和ndomod.cfg在ndoutils-1.4b9中是以ndo2db.cfg-sample和ndomod.cfg-sample命名的,如果您使用的是這個版本的ndoutils,請在複製時做出如上相應的修改;
db_name=ndodb
圖片右邊顯示的是目前官方最新的ntop版本 爲4.0.1下載之 1、下載安裝所需要的環境: make 3、配置並啓動ntop 用web頁面訪問http://yourIP:3000 如果出現以下換面 則表示運行正常
|
★★下面是對這三者的整合.把nagios和ntop 整合到cacti中
先讓cacti支持插件功能
筆者在上文所安裝的cacti版本爲0.8.7g,支持插件的補丁就選用cacti-plugin-0.8.7g-PA-v2.8.tar.gz 下載後進行解壓縮 tar zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz cd cacti-plugin-arch cp -R * /var/www/html/cacti/ mysql -uroot -p cactidb <pa.sql patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff 打完補丁後圖片有時不會顯示,這是需要修改下/var/www/html/cacti/include目錄下的config.php文件 修改$url_path後面的值: $url_path = "/cacti/"; 修改完成直接web頁面登陸,http://yourIP/cacti 選擇左下的User Managenment 之後點擊admin 在其中最後一項打鉤,並保存 好了,現在cacti就支持其他插件功能了,下面把ntop和nagios加進去就可以了
先整合ntop.
- 首先去下載cacti的ntop插件,而後解壓至cacti的插件目錄:
- # tar zxvf ntop-0.1.tar.gz -C /var/www/html/cacti/plugins/
- 接着配置cacti的主配置文件,啓用此插件:
- # vim /var/www/html/cacti/include/config.php
- 添加如下內容:
- $plugins[] = 'ntop';
- 接下來到cacti的控制檯中"settings"中配置此插件,將其指向實際的ntop服務器所在的URL;然後再到cacti控制檯的"user Management"中的admin用戶中啓用此插件即可。
設置完成後如圖所示:
發現上面是不是多了一個標籤Ntop,有些版本web瀏覽器不會顯示裏面內容,筆者建議用firefox,效果圖如下。
下面是對nagios與cacti的整合
安裝Nagios Plugin for Cacti(NPC)插件(http://trac2.assembla.com/npc) 先下載npc源碼包 ,官網不知爲何不讓下載了,直接google搜索npc-2.0.4.tar.gz,有個論壇有下載的。 tar zxvf npc-2.0.4.tar.gz mv npc /var/www/html/cacti/plugins/ vi /var/www/html/cacti/include/config.php ## 在該文件中的"$plugins = array()"後增加如下一行內容 tar zxvf json-1.2.1.tgz && cd json-1.2.1 #npc需要json來支持某些功能 /usr/bin/phpize ./configure make make install 之後用web測試 ,index.php(前文有測試方法)如果有圖片所示的這一項,則表示正常json正常安裝 ## 如果phpize 沒有此指令,請yum安裝php-devel包 說明:如果您是使用RPM方式安裝php,那麼一些動態的擴展是自動被加入的,這些動態擴展 在:/etc/php.d/*.ini這些文件,這裏確認一下json.ini文件有這一行內容:extension=json.so;同時還要確認一下 /usr/lib/php/modules目錄下有沒有json.so文件,如果沒有的話,要手動複製一份到這個目錄,這樣才能確保json.ini起作用。 全部裝完在cacti中設置如圖所示
作用:將nagios的數據通過ndo2db導入到mysql數據庫,然後cacti讀取數據庫信息將nagios的結果通過NPC展示出來。
下載完成後來到所npc-2.0.4.tar.gz 所在的目錄
$plugins[] = 'npc';
//$plugins[] = 'npc';
這樣先註釋掉,纔可以安裝上npc的.否則,不能在web頁面的插件管理頁面看到npc插件.
應當將ndo2db.cfg裏面的
db_name=cacti;
db_prefix=npc_;