手把手實現企業級開源監控軟件cacti+nagios+ntop整合(圖解)

 此文凝聚筆者不少心血請尊重筆者勞動,轉載請註明出處。http://freeze.blog.51cto.com/

做一名運維工程師,監控恐怕是日常生活中必不可少的活了,在企業中的監控,大多是用開源軟件來實現的,(爲什麼要用開源?省錢唄..呵呵) 而且開源軟件也有着非常優秀的表現,其中著名的有cacti,nagios,ntop,Ganglia,等等..而cacti+nagios+ntop的結合應用,能爲企業做到更細微的保證。下面筆者先逐一介紹下:
 
一、cacti的簡介

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

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

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


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

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

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

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

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

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

7
)具備定義事件句柄功能,它可以在主機或服務的事件發生時獲取更多問題定位
8
)自動的日誌回滾
9
)可以支持並實現對主機的冗餘監控
10
)可選的WEB界面用於查看當前的網絡狀態、通知和故障歷史、日誌文件等
 
 

Nagios通常由一個主程序(Nagios)、一個插件程序(Nagios-plugins)和四個可選的ADDON(NRPE、NSCA、 NSClient++和NDOUtils)組成。Nagios的監控工作都是通過插件實現的,因此,Nagios和Nagios-plugins是服務器端工作所必須的組件。而四個ADDON中
(1)NRPE:用來在監控的遠程Linux/Unix主機上執行腳本插件以實現對這些主機資源的監控
(2)NSCA:用來讓 被監控的遠程Linux/Unix主機主動將監控信息發送給Nagios服務器(這在冗餘監控模式中特別要用到)
(3)NSClient++:用來監控 Windows主機時安裝在Windows主機上的組件
(4)NDOUtils:則用來將Nagios的配置信息和各event產生的數據存入數據庫,以實現 這些數據的快速檢索和處理
這四個ADDON(附件)中,NRPE和NSClient++工作於客戶端NDOUtils工作於服務器端,而NSCA則需要同時安裝在服務器端和客戶端
 
 
 
在用一幅圖片宏觀上展示nagios在企業級應用的位置
 
 
 
有朋友疑問,既然cacti,和nagios都是網絡監控工具,選用其一不是減少很多麻煩,在這裏筆者建議兩者結合使用,還要結合後文所提到的ntop,以作者的理解,簡單闡述下cacti和nagios的優缺點:
cacti:在監控方面有良好的繪圖,cacti在流量和圖型塑造上要強於nagios,但是在故障分析上有些略遜,而且報警機制也有待完善,這時nagios就派上用場了。
nagios :適合監視大量服務器上面的大批服務是否正常, 重點並不在圖形化的監控, 其集成的很多功能例如報警,都是 cacti 沒有或者很弱的。但在繪圖以及圖型塑造方面精細度比cacti要弱。
通過兩者比較,可以很清晰的瞭解各自的用途。
下面筆者在簡單介紹下ntop
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章