久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

手把手實現(xiàn)企業(yè)級開源監(jiān)控軟件cacti nagios ntop整合(圖解)

 sslit 2012-05-30
此文凝聚筆者不少心血請尊重筆者勞動,,轉(zhuǎn)載請注明出處,。http://freeze.blog.51cto.com/
 
做一名運維工程師,監(jiān)控恐怕是日常生活中必不可少的活了,,在企業(yè)中的監(jiān)控,,大多是用開源軟件來實現(xiàn)的,(為什么要用開源,?省錢唄..呵 呵) 而且開源軟件也有著非常優(yōu)秀的表現(xiàn),,其中著名的有cacti,nagios,ntop,Ganglia,等等..而cacti+nagios+ntop的 結合應用,,能為企業(yè)做到更細微的保證,。下面筆者先逐一介紹下:
 
一、cacti的簡介

網(wǎng)絡管理(如主機負載,、網(wǎng)絡流量等的監(jiān)控)是系統(tǒng)管理崗工作人員日常工作的一個重要組成部分,,許多廠商為此提供了各自的解決方案。早期開源網(wǎng)管 軟件中比較著名的其中之一的MRTG,,是一款使用perl開發(fā)的,,通過SNMP協(xié)議實現(xiàn)管理工作站與設備代理進程間的通訊,以完成對設備的管理和運行狀態(tài) 的監(jiān)視,。MRTG安裝配置簡單,、圖形界面直觀,因為廣受當時網(wǎng)絡管理人員的喜愛,,也為筆者早期的網(wǎng)絡管理工作立下了汗馬功勞,。

但MRTG也有許多固有的缺點,如:使用文本式的數(shù)據(jù)庫,,數(shù)據(jù)不能重復使用,;只能按日、周,、月,、年來查看數(shù)據(jù),;每圖只能畫兩個DS(一條線、一個塊),;每取一次數(shù)據(jù)即需要繪圖一次,,浪費系統(tǒng)資源;同時,,它也沒有提供管理功能,。

有鑒于此,MRTG的作者后來另外又開發(fā)了一個工具,,即rrdtool,。rrdtool是一個性能優(yōu)良的數(shù)據(jù)記錄器同時也是一個功能強大的繪圖引擎,。 它使用rrd的數(shù)據(jù)存儲格式,,使用得數(shù)據(jù)可以重復使用;在繪圖方面,,它可以定義任意時間段進行繪圖,,能繪出多個DS,。但它也有自己的缺點:雖然提供了強大 的數(shù)據(jù)存儲及繪圖功能,,但rrdtool卻沒有提供類似于MRTG中集成的數(shù)據(jù)采集功能,;同時,它提供了過多的參數(shù),,以至于在命令行界面使用起來極為不 便,;此外,rrdtool也沒有提供管理功能,。于是cacti應運而生,。


簡單來說,Cacti就是rrdtool的一個forefront,,它內(nèi)置了快速的獲數(shù)據(jù)取工具,、優(yōu)秀的繪圖模板以及許多設計精良的數(shù)據(jù)獲取腳 本,從而可以通過結合rrdtool強大的數(shù)據(jù)抓取,、數(shù)據(jù)存儲和繪圖功能,,輕松實現(xiàn)主機負載、網(wǎng)絡流量等信息的走勢圖的繪制,。目前其最新的軟件版本是 0.8.7g,。
 

cacti是用php語言實現(xiàn)的一個軟件,它的運行需要網(wǎng)站服務器(如apache)及PHP環(huán)境的支持,。同時,,cacti還需要Mysql配合PHP程序存儲一些變量數(shù)據(jù)并對變量數(shù)據(jù)進行調(diào)用,如:主機名、主機ip,、snmp團體名,、端口號、模板信息等變量,。

rrdtool的對主機負載,、網(wǎng)絡流量等信息的統(tǒng)計需要通過SNMP協(xié)議實現(xiàn)。經(jīng)過SNMP抓取到的數(shù)據(jù)存儲于由rrdtool生成的rrd文 件中,,這些文件通常位于cacti的rra目錄中,。rrdtool對數(shù)據(jù)的更新和存儲就是對rrd文件的處理,rrd文件是大小固定的歸檔文件 (Round Robin Archive),,它能夠存儲的數(shù)據(jù)筆數(shù)在創(chuàng)建時就已經(jīng)定義,。
這副圖片簡述了cacti的工作原理.
 
 Cacti的實例應用
1)網(wǎng)絡設置
2)主機系統(tǒng)

(1)網(wǎng)絡接口流量(進與出的帶寬)
(2)監(jiān)控CPU的負載、內(nèi)存等等
(3)監(jiān)控磁盤的空間,、進程數(shù)等等
.........................................等等
3)cacti常見的監(jiān)測對象
(1)服務器資源:CPU,、內(nèi)存、磁盤,、進程、連接數(shù)等
(2)服務器類型:WEB,、Mail,、FTP、數(shù)據(jù)庫,、中間件
(3)網(wǎng)絡接口:流量,、轉(zhuǎn)發(fā)速度、丟包率
(4)網(wǎng)絡設備性能,、配置文件(對比與備份),、路由數(shù)
(5)安全設備性能、連接數(shù),、攻擊數(shù)
(6)設備運行狀態(tài):風扇,、電源、溫度
(7)機房運行環(huán)境:電流,、電壓,、溫濕度

 
好了 簡單介紹完cacti后,下面我們一起來看下nagios.
二.nagios的簡介
Nagios是一款用于系統(tǒng)和網(wǎng)絡監(jiān)控的應用程序,。它可以在你設定的條件下對主機和服務進行監(jiān)控,,在狀態(tài)變差和變好的時候給出告警信息 

Nagios最初被設計為在Linux系統(tǒng)之上運行,然而它同樣可以在類Unix的系統(tǒng)之上運行
Nagios更進一步的特征包括:
 
1)監(jiān)控網(wǎng)絡服務(SMTP,、POP3,、HTTPNNTPPING等)
2)監(jiān)控主機資源(處理器負荷,、磁盤利用率等)
3)簡單地插件設計使得用戶可以方便地擴展自己服務的檢測方法
4
)并行服務檢查機制
5
)具備定義網(wǎng)絡分層結構的能力,,用"parent"主機定義來表達網(wǎng)絡主機間的關系,這種關系可被用來發(fā)現(xiàn)和明晰主機宕機或不可達狀態(tài)
6
)當服務或主機問題產(chǎn)生與解決時將告警發(fā)送給聯(lián)系人(通過EMail,、短信,、用戶定義方式)
 可以通過飛信,等方式實現(xiàn)時,,既可傳遞給管理員,,可高效的保證服務器的維護。

7
)具備定義事件句柄功能,,它可以在主機或服務的事件發(fā)生時獲取更多問題定位
8
)自動的日志回滾
9
)可以支持并實現(xiàn)對主機的冗余監(jiān)控
10
)可選的WEB界面用于查看當前的網(wǎng)絡狀態(tài),、通知和故障歷史、日志文件等
 
 

Nagios通常由一個主程序(Nagios),、一個插件程序(Nagios-plugins)和四個可選的ADDON(NRPE,、NSCA、 NSClient++和NDOUtils)組成,。Nagios的監(jiān)控工作都是通過插件實現(xiàn)的,,因此,Nagios和Nagios-plugins是服務器端工作所必須的組件,。而四個ADDON中
(1)NRPE:用來在監(jiān)控的遠程Linux/Unix主機上執(zhí)行腳本插件以實現(xiàn)對這些主機資源的監(jiān)控
(2)NSCA:用來讓 被監(jiān)控的遠程Linux/Unix主機主動將監(jiān)控信息發(fā)送給Nagios服務器(這在冗余監(jiān)控模式中特別要用到)
(3)NSClient++:用來監(jiān)控 Windows主機時安裝在Windows主機上的組件
(4)NDOUtils:則用來將Nagios的配置信息和各event產(chǎn)生的數(shù)據(jù)存入數(shù)據(jù)庫,,以實現(xiàn) 這些數(shù)據(jù)的快速檢索和處理
這四個ADDON(附件)中,NRPE和NSClient++工作于客戶端,,NDOUtils工作于服務器端,,而NSCA則需要同時安裝在服務器端和客戶端
 
 
在用一幅圖片宏觀上展示nagios在企業(yè)級應用的位置
 
 
 
有朋友疑問,既然cacti,和nagios都是網(wǎng)絡監(jiān)控工具,,選用其一不是減少很多麻煩,,在這里筆者建議兩者結合使用,還要結合后文所提到的ntop,,以作者的理解,,簡單闡述下cacti和nagios的優(yōu)缺點:
cacti:在監(jiān)控方面有良好的繪圖,cacti在流量和圖型塑造上要強于nagios,,但是在故障分析上有些略遜,,而且報警機制也有待完善,這時nagios就派上用場了,。
nagios :適合監(jiān)視大量服務器上面的大批服務是否正常, 重點并不在圖形化的監(jiān)控, 其集成的很多功能例如報警,都是 cacti 沒有或者很弱的,。但在繪圖以及圖型塑造方面精細度比cacti要弱。
通過兩者比較,,可以很清晰的了解各自的用途,。
下面筆者在簡單介紹下ntop
三.Ntop簡介
一.     MRTG基于SNMP獲取信息,,對于端口的流量,MRTG能提供精確統(tǒng)計,,但對于三層以上的信息則無從得知了,。而這正是NTOP的強項。 NTOP能夠更加直觀地將網(wǎng)絡使用量的情況和每個節(jié)點計算機的網(wǎng)絡帶寬使用詳細情況顯示出來,。NTOP是一種網(wǎng)絡嗅探器,,嗅探器在協(xié)助監(jiān)測網(wǎng)絡數(shù)據(jù)傳輸、 排除網(wǎng)絡故障等方面有著不可替代的作用,??梢酝ㄟ^分析網(wǎng)絡流量來確定網(wǎng)絡上存在的各種問題,如瓶頸效應或性能下降,;也可以用來判斷是否有黑客正在攻擊網(wǎng)絡 系統(tǒng),。如果懷疑網(wǎng)絡正在遭受攻擊,通過嗅探器截獲的數(shù)據(jù)包可以確定正在攻擊系統(tǒng)的是什么類型的數(shù)據(jù)包,,以及它們的源頭,,從而可以及時地做出響應,或者對網(wǎng) 絡進行相應的調(diào)整,,以保證網(wǎng)絡運行的效率和安全,。
 二.   管理人員通過NTOP還可以很方便地確定出哪些通信量屬于某個特定的網(wǎng)絡協(xié)議、占主要通信量的是哪個主機,、 各次通信的目標是哪個主機,、數(shù)據(jù)包發(fā)送時間、各主機間數(shù)據(jù)包傳遞的間隔時間等,。這些信息為網(wǎng)管員判斷網(wǎng)絡問題及優(yōu)化網(wǎng)絡性能,提供了十分寶貴的信息,。
  NTOP提供以下一些功能:
 ?、?自動從網(wǎng)絡中識別有用的信息;
 ?、?將截獲的數(shù)據(jù)包轉(zhuǎn)換成易于識別的格式,;
  ③ 對網(wǎng)絡環(huán)境中的通信失敗進行分析,;
 ?、?探測網(wǎng)絡環(huán)境下的通信瓶頸;
 ?、?記錄網(wǎng)絡通信時間和過程,;
  ⑥ 自動識別客戶端正在使用的操作系統(tǒng),;
 ?、?可以在命令行和Web兩種方式下運行,。

 
  簡單介紹完ntop后,筆者在網(wǎng)上找了一張圖片,,很清晰的解釋了ntop的工作位置,,從工作位置也可以看出ntop的主要功能.
 
 
 
通過筆者簡單介紹,也可以看出來ntop作為監(jiān)控工具與前兩者cacti和nagios的區(qū)別,,ntop在監(jiān)控方面,,它的角度是從分析網(wǎng)絡流量來確定網(wǎng)絡上存在的各種問題,說白了就類似個抓包監(jiān)控工具,,只不過通過歸納繪圖實現(xiàn)更多的功能,。
筆者這樣解釋相信不少朋友已經(jīng)明白這三款開源界的元老級監(jiān)控軟件的各自職責,筆者建議朋友們在總結下各自的功能,,達到更深刻的理解.也算筆者給朋友們留個話題,,好了,接下來開始全源碼實現(xiàn)這三者的整合和應用,。
筆者所用的系統(tǒng)是rhel5.4版本,,內(nèi)核版本號為2.6.18
 首先先編譯安裝cacti.
在開始之前老規(guī)矩,先安裝編譯環(huán)境,,要想實現(xiàn)cacti的網(wǎng)絡監(jiān)控,,還要借助其他一些如mysql,httpd,php等來其原理請參照筆者上一篇博文LEMP架構,為了節(jié)省時間,,筆者在這里就用yum來裝這些包了,。
配置好yum環(huán)境后
 yum install httpd php php-mysql mysql mysql-server php-snmp net-snmp-utils -y
 
安裝完成后讓服務都啟動并調(diào)整之間的連接關系.
service mysqld start       # 啟動mysql服務
chkconfig mysqld on      #使其開機自動啟動
 啟動完mysql后,如果出現(xiàn)以下畫面,,并能通過mysql進入,,說明成功安裝。
 
之后編輯httpd服務的配置文件,,使其支持mod_status.so模塊.,
只要在/etc/httpd/conf/httpd.conf的配置文件中找到
LoadModule  status_module  modules/mod_status.so
有這一項表示已經(jīng)支持狀態(tài)檢測模塊,,所以無需額外添加,直接啟動web服務即可.
service httpd start                   #啟動http服務
chkconfig httpd on                 #開機自動啟動httpd 服務
啟動OK后,,編輯
vim /var/www/html/index.php                 在其中添加以下內(nèi)容#
<?php
phpinfo();
?>
#                  保存退出
用web瀏覽器訪問,,如果出現(xiàn)以下畫面,則表示http支持動態(tài)php.并能與php成功連接.
 
 
接著測試與mysql的連接,,先給mysql設置個管理員密碼
mysqladmin -uroot password '123456'                            #密碼設置為123456
編輯剛才的web頁面
vim /var/www/html/index.php   
把里面的內(nèi)容改為
<?php
$link=mysql_connect("localhost","root","123456");
if(!$link) echo "FAILD!";
else echo "OK!";
?>
刷新剛才的web瀏覽器頁面,,如果出現(xiàn)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
1.配置mysql 
接著登錄mysql,,創(chuàng)建cacti的數(shù)據(jù)庫,,并為其指定cactier用戶和密碼(123456),。數(shù)據(jù)庫名字可根據(jù)需要指定,這里指定為cactidb,,創(chuàng)建并授權:
 登錄數(shù)據(jù)庫
 
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';
 ##說明 筆者指定了一個網(wǎng)段的授權,是將來做監(jiān)控時數(shù)據(jù)庫和監(jiān)控工具不在同一臺主機上,,網(wǎng)段可根據(jù)自己需要進行授權,。
mysql> flush privileges;                               
 
2.配置SNMP

 
(4)配置SNMP

在net-snmp的主配置文件/etc/snmp/snmpd.conf中,默認的community為public,,建議將public修改為您需的密碼項,,筆者在此就不做修改了,使用默認密碼public

接著,,啟動snmp進程
service snmpd restart   #如果修改過snmpd.conf 則需要重啟服務
 

 
呵呵,,是不是等不及了,終于該到cacti的編譯安裝了,準備工作已經(jīng)全部做好,,下面就開始對cacti的安裝配置

首先要去cacti官網(wǎng)下載cacti的gz源碼包,,目前最新的版本是0.8.7.g
 
從官方網(wǎng)站的說明and a webserver that supports PHP such as Apache or IIS.就知道以上的準備工作是必須要做的.
重要說明:如果用0.8.7g版本的cacti,在后面整合nagios時可能出現(xiàn)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數(shù)據(jù)庫文件導入,,會提示輸入密碼輸入前面設置的root 的密碼即可 
 
編輯cacti的主配置文件,,為其指定對應的數(shù)據(jù)庫參數(shù):
vim /var/www/html/cacti/include/config.php

將下列各參數(shù)的值修改為您前面所設定的:
$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文件 在空白行添加以下內(nèi)容
*/5 * * * * cactier php /var/www/html/cacti/poller.php  > /dev/null &
#每5分鐘以cactier去抓取數(shù)據(jù)繪圖,,這個時間5分鐘應該是最小間隔了,,筆者不建議修改為更小值。
 
記的要把selinux 關閉,,不然不能從web頁面訪問的,,關閉方法如下
setenforce 0                              #只是臨時關閉
好了,下面就可以用web瀏覽器訪問cacti進行配置管理了,。
筆者所用虛擬機ip為192.168.0.39                            ## IP根據(jù)自己實際情況可做相應修改
從瀏覽器直接訪問以下地址 即可看到cacti配置畫面
http://192.168.0.39/cacti/install/                   
如果看到以下畫面,則可以進行之后的配置
       點擊下一步,。
 
 
如果上面全是[FOUND],則可以點擊Finish 完成,,中間的路徑可能與圖片不同。
Finish后就會出現(xiàn)登陸畫面
 
 
用戶名admin 密碼admin 即可登陸 (第一次登陸后會強行讓修改密碼)
進入后點擊graphs 會顯示流量圖
 
 
如果不出現(xiàn)圖片執(zhí)行以下命令讓其手動繪圖即可.  
su -  cactier
php  /var/www/html/cacti/poller.php > /dev/null 2>&1
exit
數(shù)據(jù)部分啟動較慢,,請耐心等待,,如顯示如上圖片數(shù)據(jù),則成功安裝配置,。
##cacti的具體使用筆者不做過多介紹,,有意者可去官方網(wǎng)站閱讀官方文檔,。
 
 
下面是源碼安裝配置nagios
Nagios通常由一個主程序(Nagios)、一個插件程序(Nagios-plugins)和四個可選的ADDON(NRPE,、NSCA,、 NSClient++和NDOUtils)組成。Nagios的監(jiān)控工作都是通過插件實現(xiàn)的,,因此,,Nagios和Nagios-plugins是服務器端工作所必須的組件
下面在服務端安裝Nagios和Nagios-plugins.
 先下載源碼包,目前官方的最新版本如下圖
 
插件版本
 
下載之.筆者放在了 /root/nagios目錄下 
nagios  需要一些基礎支持套件才能運行,,如apache,,gcc,glibc,,gd庫等,。
useradd -m nagios        #添加一個名為nagios的用戶來運行nagios          
groupadd nagios                              #添加nagios用戶組,用以通過web頁面提交外部控制命令
usermod -a -G nagios daemon             #將運行apache用戶daemon加入nagios組
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
make install
make install-init  
make install-config
make install-commandmode
             #安裝完成沒有報錯開始以下配置
vim  /usr/local/nagios/etc/objects/contacts.cfg 
##修改nagiosadmin這行其中的郵件地址為你的email地址,,以將報警郵件發(fā)到你的郵箱
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
下面修改httpd.conf ,,筆者是yum裝的apache ,配置文件的路徑為如下所示:
vim /etc/httpd/conf/httpd.conf
在空白地方添加一下兩行
# nagios  default settings
Include conf/extra/nagios.conf
以上過程配置結束以后需要重新啟動httpd:
# service httpd restart
 如果可以正常啟動,,下面就可以開始編譯、安裝nagios-plugins
nagios的所有監(jiān)控工作都是通過插件完成的,,因此,,在啟動nagios之前還需要為其安裝官方提供的插件。

tar zxvf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
./configure --with-nagios-user=nagios --with-nagios-group=nagios
 make
 make install
 ##下面是一些配置
(1)把nagios添加為系統(tǒng)服務并將之加入到自動啟動服務隊列:
chkconfig --add nagios
 chkconfig nagios on

(2)檢查其主配置文件的語法是否正確:
 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

(3)如果上面的語法檢查沒有問題,,接下來就可以正式啟動nagios服務了:
service nagios start

(4)配置selinux
如果您的系統(tǒng)開啟了selinux服務,,則默認為拒絕nagios web cgi程序的運行。您可以通過下面的命令來檢查您的系統(tǒng)是否開啟了selinux:
getenforce

如果上面命令的結果顯示開啟了selinux服務,,您可以通過下面的命令暫時性的將其關閉:
setenforce 0

如果您想在以后完全關閉selinux,,可以通過編輯/etc/sysconfig/selinux文件,將其中的selinux后面的值“force”修改為“disable”即可,。

##當然,,您也可以通過以下方式將nagios的CGI程序運行于SELinux/targeted模式而不用關閉selinux:
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin
chcon -R -t httpd_sys_content_t /usr/local/nagios/share
 
(5)通過web界面查看nagios:
http://your_nagios_IP/nagios

登錄時需要指定前面設定的web認證賬號和密碼。

注意:為了nagios系統(tǒng)的安全,,建議您使用信息摘要強認證模式(如MD5),,強制使用web的TSL/SSL安全通訊模式,并且通過訪問控制列表設定能訪問nagios的web界面的客戶端地址,。
登錄后看到以下畫面則表示成功安裝,。
 
 
##說明##
3.2.2版本的nagios有個bug .安裝完在/usr/local/nagios/sbin目錄下沒有原來的statusmap.cgi執(zhí)行腳本
點擊左邊的current status 中的Map會顯示找不到頁面,,解決方法只能從老版本中拷貝一個statusmap.cgi到/usr/local/nagios/sbin目錄下了,并賦予執(zhí)行權限,。
 

如果此時Nagios進程已啟動,,則需要停止并重新啟動nagios:
# killall -SIGHUP nagios
# rm -f /usr/local/nagios/var/nagios.lock
# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
可進入nagios的web管理頁面查看log,如果出現(xiàn)以下字樣,,則表示正常運行,。
 

說明:
i)此處停止Nagios必須通過向Nagios發(fā)送SIGHUP信號的方式進行;
ii)建議此時查看nagios日志文件中是否表明ndomod的模塊加載是否正常,,以及其是否能正常連接到data sink,;查看日志,可以使用如下命令實現(xiàn):# tail -30 /usr/local/nagios/var/nagios.log
 

排錯信息:
i)  如果ndomod模塊沒能正常加載的話,,建議重新檢查nagios的配置文件中是否添加了所需的broker module條目,;
ii) 同時,如果ndomod沒有正常連接到data sin,,建議查看ndo2db.cfg文件中關于mysql連接項目的指定是否正確,;
iii)確認一下在編譯NDOUtils時是否指定了關于mysql庫文件位置的選項;
 
好了 nagios已經(jīng)成功安裝,,下面編譯,、安裝ntop
 
在官網(wǎng)找了副圖片,簡單的介紹了ntop的工作流程,。
 
圖片右邊顯示的是目前官方最新的ntop版本 為4.0.1下載之
1,、下載安裝所需要的環(huán)境:

需要事先下載并安裝GeoIP和GetIP-devel兩個rpm包;
yum -y --nogpgcheck localinstall GeoIP-*.el5.i386.rpm

接著是ettercap相關的rpm包(ettercap,ettercap-common,,需要下載,,這里沒指定具體的版本號,你可以根據(jù)自己的實際情況進行安裝):
yum -y --nogpgcheck localinstall ettercap-*.rpm


而后安裝開發(fā)環(huán)境,,尤其是以下幾個rpm包:
yum install libpcap libpcap-devel gdbm gdbm-devel zlib zlib-devel


2,、安裝ntop

 useradd -M -s /sbin/nologin -r ntop

 tar zxvf ntop-4.0.1.tar.gz
 cd ntop-4.0.1
 ./autogen.sh
make
make install
chown -R ntop:ntop /usr/local/share/ntop
chown -R ntop:root /usr/local/var/ntop

3、配置并啟動ntop

首先為ntop的admin用戶設置密碼:
ntop -A

接下來啟動ntop:
ntop -i eth0 -d -L -u ntop

使之開機自動啟動:
echo 'ntop -i eth0 -d -L -u ntop &> /dev/null' >> /etc/rc.d/rc.local
用web頁面訪問http://yourIP:3000 如果出現(xiàn)以下?lián)Q面 則表示運行正常
 
 
 
★★下面是對這三者的整合.把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
在其中最后一項打鉤,,并保存
 
好了,,現(xiàn)在cacti就支持其他插件功能了,下面把ntop和nagios加進去就可以了
先整合ntop.
  1. 首先去下載cacti的ntop插件,,而后解壓至cacti的插件目錄:  
  2. # tar zxvf ntop-0.1.tar.gz -C /var/www/html/cacti/plugins/  
  3.  
  4. 接著配置cacti的主配置文件,啟用此插件:  
  5. # vim  /var/www/html/cacti/include/config.php  
  6. 添加如下內(nèi)容:  
  7. $plugins[] = 'ntop';  
  8.  
  9. 接下來到cacti的控制臺中"settings"中配置此插件,,將其指向?qū)嶋H的ntop服務器所在的URL,;然后再到cacti控制臺的"user Management"中的admin用戶中啟用此插件即可,。  
 設置完成后如圖所示:
發(fā)現(xiàn)上面是不是多了一個標簽Ntop,有些版本web瀏覽器不會顯示里面內(nèi)容,筆者建議用firefox,,效果圖如下,。
 下面是對nagios與cacti的整合
安裝Nagios Plugin for Cacti(NPC)插件http://trac2./npc
作用:將nagios的數(shù)據(jù)通過ndo2db導入到mysql數(shù)據(jù)庫,然后cacti讀取數(shù)據(jù)庫信息將nagios的結果通過NPC展示出來,。
 

一,、nagios需要的包

 1.下載并安裝ndoutils 

  1. wget http:///projects/nagios/files/ndoutils-1.x/ndoutils-1.4b9/ndoutils-1.4b9.tar.gz/download  
  2. tar zxvf ndoutils-1.4b9.tar.gz   
  3. cd ndoutils-1.4b9  
  4. ./configure --prefix=/var/www/html/nagios --enable-mysql --disable-pgsql --with-mysql-inc=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql  
  5. make  
2.準備配置文件

  1. cp -v src/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo} /var/www/html/nagios/bin  
  2. cd db  
  3. ./installdb -ucacti -pcacti -hlocalhost -d cacti  
  4. cd ..  
  5. cp -v config/{ndo2db.cfg-sample,ndomod.cfg-sample} /var/www/html/nagios/etc  
  6. mv /var/www/html/nagios/etc/ndo2db.cfg-sample /var/www/html/nagios/etc/ndo2db.cfg  
  7. mv /var/www/html/nagios/etc/ndomod.cfg-sample /var/www/html/nagios/etc/ndomod.cfg  
  8. chmod 644 /var/www/html/nagios/etc/ndo*  
  9. chown nagios:nagios /var/www/html/nagios/etc/*  
  10. chown nagios:nagios /var/www/html/nagios/bin/*  
3.修改nagios.cfg配置文件以適應當前環(huán)境
  1. vim /var/www/html/nagios/etc/nagios.cfg  
  2.    # 在文件中添加:  
  3.      broker_module=/var/www/html/nagios/bin/ndomod-3x.o config_file=/var/www/html/nagios/etc/ndomod.cfg  
  4.    # 檢查   
  5.      event_broker_options=-1     ## 為Nagios開啟event broker 
 
4.修改ndo2db.cfg以適應當前環(huán)境

  1. vim /var/www/html/nagios/etc/ndo2db.cfg  
  2.  # 確保下列內(nèi)容為唯一項  
  3.      socket_type=tcp  
  4.      db_servertype=mysql  
  5.      db_host=localhost  
  6.      db_port=3306  
  7.    
  8.      db_name=cactidb  
  9.    
  10.      db_prefix=nagios_  
  11.      db_user=cactier 
  12.      db_pass=123456 
5.修改ndomod.cfg以適應當前環(huán)境 

  1. vim /var/www/html/nagios/etc/ndomod.cfg  
  2.    # 確保下列項的唯一內(nèi)容為  
  3.     output_type=tcpsocket  
  4.     output=127.0.0.1  
6.為ndo2db添加啟動進程

  1. cp ./daemon-init /etc/init.d/ndo2db  
  2. vim /etc/init.d/ndo2db 
  3.    # 檢查里面的路徑確保不會出現(xiàn)“//",并將Ndo2dbBin修改成下面的值:  
  4.      Ndo2dbBin=/var/www/html/nagios/bin/ndo2db-3x  
  5. chmod +x /etc/init.d/ndo2db   
7.啟動守護進程與nagios 
 
service ndo2db start 
 
tail -20 /var/log/messages    ## 查看其中是否有錯誤出現(xiàn),。如無報錯請繼續(xù) 
service nagios start
二:安裝ncp,,以在Cacti中展現(xiàn)Nagios
  1. 1.先安裝cacti擴展模塊 
  2. wget http://www./downloads/pia/cacti-plugin-0.8.7h-PA-v3.0.tar.gz  
  3. tar xvf cacti-plugin-0.8.7h-PA-v3.0.tar.gz   
  4. cp -R cacti-plugin-arch/* /var/www/html/cacti/  
  5. cd /var/www/html/cacti/  
  6. mysql -ucactier -p123456 cactidb < pa.sql   
  7. patch -p1 -N < cacti-plugin-0.8.7h-PA-v3.0.diff 
   
 ## 為cacti配置文件打補丁的時候注意在為include/config.php打補丁的時候有可能它將 include/config.php.dist給打補丁了,我們只需要手動加入下面的內(nèi)容即可,。 

  1. vim include/config.php  
  2.    # 修改(或新加入)為  
  3.     $url_path = "/cacti/";  
  4. 從web進入cacti,,啟用cacti plugin擴展 
 
2.安裝npc

  1. tar zxvf npc-2.0.4.tar.gz  
  2. mv npc /var/www/html/cacti/plugins/  
  3. vim /var/www/html/cacti/include/config.php  
  4.     # 加入:  
  5.      $plugins[] = 'npc';  
3.安裝 npc支持:json

  1. wget http://pkgs./repo/pkgs/php-pecl-json/json-1.2.1.tgz/d8904d2f004ceec85eeacf524cd25539/json-1.2.1.tgz  
  2. tar zxvf json-1.2.1.tgz   
  3. cd json-1.2.1  
  4. phpize   ## 如果發(fā)現(xiàn)沒有Phpize文件,則是因為php-devel包沒有安裝導致的   
  5. ./configure   
  6. make && make install  
  
php -i | grep php.ini  ## 查看是否有導入信息 
4.打開php.ini文件添加對json的支持
 
vim /etc/php.ini 
 
   # 添加 
extension=json.so 
5.為apache添加php支持,。

  1. vim /etc/httpd/conf/httpd.conf   
  2.    # 添加一行:  
  3.      AddType application/x-httpd-php .php .phtml  
  4.    # 修改原DirectoryIndex內(nèi)容為:  
  5.      DirectoryIndex index.html index.html.var index.php  
  6.   
  7. usermod -G cactier apache  
  8. service httpd restart    ## 重啟apache以讓php生效  
  9. php -m   ## 查看是否有json被加載  
6.修改配置文件以讓npc讀取到新的數(shù)據(jù),。

  1. vim /var/www/html/nagios/etc/ndo2db.cfg  
  2.      db_prefix=npc_  
6.1
從Web進入Cacti,確保正確使用npc選項,。
 
6.2 修改mysql中的表結構:

  1. ./mysql -ucactier -p cactidb  
  2. mysql> use cactidb; 
  3. mysql> alter table npc_eventhandlers add long_output TEXT NOT NULL default '' after output;  
  4. mysql> alter table npc_hostchecks add long_output TEXT NOT NULL default '' after output;  
  5. mysql> alter table npc_hoststatus add long_output TEXT NOT NULL default '' after output;  
  6. mysql> alter table npc_notifications add long_output TEXT NOT NULL default '' after output;  
  7. mysql> alter table npc_servicechecks add long_output TEXT NOT NULL default '' after output;  
  8. mysql> alter table npc_servicestatus add long_output TEXT NOT NULL default '' after output;  
  9. mysql> alter table npc_statehistory add long_output TEXT NOT NULL default '' after output;  
  10. mysql> alter table npc_systemcommands add long_output TEXT NOT NULL default '' after output;  
7.重啟ndo2db進程,,重新加載配置文件重啟nagios服務。
 
service ndo2db restart 
service nagios restart 
8.在Web上配置NPC以使之正常讀取工作,。
在Settings->npc中 ,,勾上Remote Commands
Nagios Command File Path= /var/www/html/nagios/var/rw/nagios.cmd
Nagios URL=你的地址(http://ocalhost/nagios/)
接下來刷新npc就可以看到數(shù)據(jù)啦:
#測試:
之后用web測試 ,index.php(前文有測試方法)如果有圖片所示的這一項,,則表示正常json正常安裝
 
## 如果phpize 沒有此指令,,請yum安裝php-devel包
說 明:如果您是使用RPM方式安裝php,那么一些動態(tài)的擴展是自動被加入的,,這些動態(tài)擴展 在:/etc/php.d/*.ini這些文件,,這里確認一下json.ini文件有這一行內(nèi)容:extension=json.so;同時還要確認一下 /usr/lib/php/modules目錄下有沒有json.so文件,,如果沒有的話,,要手動復制一份到這個目錄,這樣才能確保json.ini起作 用,。
 
全部裝完在cacti中設置如圖所示
 
 

cacti+nagios

 
#排錯:
如果不出npc
可嘗試npc先將相應插件文件放到plugin,然后需要:

vi /var/www/html/cacti/include/config.php     ## 在該文件中的"$plugins = array()"后增加如下一行內(nèi)容
//$plugins[] = 'npc'; 
這樣先注釋掉,才可以安裝上npc的.否則,不能在web頁面的插件管理頁面看到npc插件.

應當將ndo2db.cfg里面的
db_name=cactidb;
db_prefix=npc_;

#如果連接不上,,注意配置文件中鏈接mysql的賬號密碼是否一致。

 
這篇也忙活好多天,,筆者用的大多都是最新版本,,總是碰見bug ,糾結啊,如有錯誤的地方請指出,筆者盡快修改,,多謝各位朋友多多支持,,
此文凝聚筆者不少心血請尊重筆者勞動,轉(zhuǎn)載請注明出處,。http://freeze.blog.51cto.com/

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多