企業(yè)級(jí)監(jiān)控軟件
cacti:www.cacti.net 繪圖 沒(méi)有報(bào)警 (仙人掌)
nagios:www.nagios.org 報(bào)警機(jī)制比較完善纬向,不能繪圖
zabbix:www.zabbix.com 繪圖炫 監(jiān)控 報(bào)警 自我修復(fù)
ganglia:
==========================================================
系統(tǒng)監(jiān)控需求:
對(duì)于linux內(nèi)核所提供的一些程序查看服務(wù)器的狀態(tài)信息不方便,所以出現(xiàn)一些監(jiān)控軟件燃领,這些監(jiān)控軟件不僅可以監(jiān)控linux主機(jī),windows主機(jī)直奋,也可以監(jiān)控網(wǎng)絡(luò)設(shè)備检疫,如:交換機(jī),路由器鸵贬,硬件防火墻入侵檢測(cè)系統(tǒng)等俗他。早期出現(xiàn)的監(jiān)控軟件叫cacti,用于監(jiān)控網(wǎng)絡(luò)設(shè)備的阔逼,后來(lái)發(fā)現(xiàn)它的展示圖像功能很好兆衅,所以就用他來(lái)監(jiān)控主機(jī)了,cacti能將服務(wù)器狀態(tài)信息以圖像的方式展示出來(lái)嗜浮。隨著應(yīng)用的發(fā)展羡亩,軟件不能只局限于看到服務(wù)器的狀態(tài)信息,還需要設(shè)定監(jiān)控值觸發(fā)報(bào)警機(jī)制危融,而cacti本身沒(méi)有報(bào)警的功能畏铆,需要借助于插件來(lái)實(shí)現(xiàn),但是插件不是很完善吉殃,會(huì)出現(xiàn)誤報(bào)的情況辞居,所以后來(lái)出現(xiàn)了nagios和zabbix軟件。nagios軟件能搜集數(shù)據(jù)蛋勺,展示圖像瓦灶,本身自帶報(bào)警功能且配置簡(jiǎn)單,報(bào)警較為準(zhǔn)確抱完,支持郵件報(bào)警贼陶、短信報(bào)警(需購(gòu)買(mǎi)短信網(wǎng)關(guān))。zabbix能搜集數(shù)據(jù)乾蛤,展示圖像每界,且支持的報(bào)警方式有很多。目前最為流行的監(jiān)控軟件是zabbix家卖,很多IDC機(jī)房監(jiān)控服務(wù)器狀態(tài)信息和網(wǎng)絡(luò)設(shè)備狀態(tài)信息都用的是zabbix眨层。
監(jiān)控軟件需要具備的功能:
1、收集數(shù)據(jù)上荡。 1.shell 2.SNMP 3.專(zhuān)用agent
2趴樱、保存數(shù)據(jù)馒闷。數(shù)據(jù)收集過(guò)來(lái)之后是需要保存起來(lái)的
3、圖像展示叁征。通過(guò)數(shù)據(jù)進(jìn)行查看沒(méi)有圖像看的直接
4纳账、報(bào)警系統(tǒng)。
收集數(shù)據(jù)首選是專(zhuān)用的捺疼,但是使用SNMP協(xié)議相對(duì)于其他的有優(yōu)勢(shì)疏虫,它可以監(jiān)聽(tīng)物理設(shè)備,對(duì)于交換機(jī)和路由器上是不能裝軟件的啤呼,但是默認(rèn)情況下SNMP協(xié)議是開(kāi)啟的卧秘,所以可以通過(guò)SNMP協(xié)議來(lái)監(jiān)控他們。
SNMP協(xié)議
簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議早期出現(xiàn)在網(wǎng)絡(luò)里面官扣,任何廠(chǎng)家的網(wǎng)絡(luò)設(shè)備都支持該協(xié)議翅敌,故各個(gè)監(jiān)控軟件也都支持SNMP協(xié)議,從而可以獲取被監(jiān)控端Linux主機(jī)惕蹄、windows主機(jī)和網(wǎng)絡(luò)設(shè)備上的數(shù)據(jù)蚯涮。
SNMP目前有三個(gè)版本:v1 v2 v3。v1使用community團(tuán)體名進(jìn)行認(rèn)證卖陵,支持trap陷阱遭顶;v2比v1多了一些功能;v3增加了安全機(jī)制赶促。通過(guò)SNMP協(xié)議搜集數(shù)據(jù)液肌,監(jiān)控端稱(chēng)之為NMS,被監(jiān)控端稱(chēng)之為AGENT鸥滨。雙方在搜集數(shù)據(jù)的時(shí)候依賴(lài)于社區(qū)(為了保證雙方是值的信任的節(jié)點(diǎn))嗦哆,其實(shí)就是在監(jiān)控端和被監(jiān)控端設(shè)置同一個(gè)明文密碼,密碼通過(guò)允許你監(jiān)控我婿滓,我可以把數(shù)據(jù)傳送給你老速。SNMP默認(rèn)團(tuán)體名為public是ro的,還有一種團(tuán)體名是private讀寫(xiě)的(意味著監(jiān)控端可以修改被監(jiān)控端的數(shù)據(jù)信息凸主,不建議使用橘券,網(wǎng)絡(luò)設(shè)備上有private,linux里面沒(méi)有)卿吐。
SNMP協(xié)議啟用之后旁舰,產(chǎn)生161/udp端口,監(jiān)控端可以和161端口通訊獲取數(shù)據(jù)信息嗡官。默認(rèn)情況SNMP每隔一段時(shí)間輪詢(xún)一下被監(jiān)控端箭窜,如果被監(jiān)控端數(shù)量比較龐大,那么監(jiān)控端的壓力會(huì)增大衍腥,監(jiān)控頁(yè)面上獲取的數(shù)據(jù)會(huì)有延遲磺樱,而trap是用來(lái)實(shí)現(xiàn)被動(dòng)監(jiān)控的纳猫,由被監(jiān)控端主動(dòng)把信息傳遞到監(jiān)控端。
使用協(xié)議之后采用MIBs庫(kù)獲得數(shù)據(jù)竹捉,最早期的時(shí)候用于管理社會(huì)上的機(jī)制的芜辕。例如要管理全球的學(xué)生信息、圖書(shū)館的書(shū)块差,教育程度的分布等等
MIB庫(kù)侵续,管理信息庫(kù):
中國(guó) 1 北京 1 一中 1
美國(guó) 2 杭州 2 二中 2
存放OID和監(jiān)控對(duì)象名稱(chēng)的對(duì)應(yīng)關(guān)系文件。通過(guò)SNMP協(xié)議獲取某一臺(tái)主機(jī)的狀態(tài)數(shù)據(jù)實(shí)際上就是在獲取那臺(tái)主機(jī)上所支持的MIB庫(kù)里面的信息憨闰,MIB支持獲取操作系統(tǒng)的信息询兴,網(wǎng)卡,cpu的信息起趾。
windows主機(jī)啟用SNMP協(xié)議:
windows控制面板——程序和功能——打開(kāi)或關(guān)閉windows功能——里面就由簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(SNMP)——勾選上就可以
linux主機(jī)啟用SNMP協(xié)議:裝net-snmp net-snmp-utils軟件
常見(jiàn)監(jiān)控解決方案
早期,網(wǎng)絡(luò)環(huán)境中的設(shè)備數(shù)量尚且不多的時(shí)候警儒,人們需要監(jiān)控的僅僅是幾臺(tái)服務(wù)器训裆、一些交換機(jī)以及少量的其他設(shè)備。首先就需要有方法將人們關(guān)心的各項(xiàng)數(shù)據(jù)從設(shè)備中提取出來(lái)蜀铲,然后再考慮如何集中化的展示出來(lái)边琉。
為了滿(mǎn)足提取各項(xiàng)數(shù)據(jù)的需求,互聯(lián)網(wǎng)工程工作小組(IETF,Internet Engineering Task Force)定義并發(fā)布了簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(SNMP)记劝。該協(xié)議能夠支持網(wǎng)絡(luò)管理系統(tǒng)变姨,用以監(jiān)控連接到網(wǎng)絡(luò)上的各種設(shè)備。Linux系統(tǒng)當(dāng)然也支持該協(xié)議厌丑。人們可以使用SNMP協(xié)議獲取主機(jī)CPU定欧、內(nèi)存、磁盤(pán)怒竿、網(wǎng)卡流量等數(shù)據(jù)砍鸠,很多商業(yè)網(wǎng)絡(luò)設(shè)備如路由器、交換機(jī)等基本也支持SNMP協(xié)議耕驰。
最初爷辱,人們用腳本將獲取到的SNMP數(shù)據(jù)存入數(shù)據(jù)庫(kù)中,然后再使用一種名為MRTG的軟件根據(jù)獲取的數(shù)據(jù)繪制圖表來(lái)分析數(shù)據(jù)的變化朦肘。MRTG(Multi Router Traffic Grapher)饭弓,顧名思義,這款軟件最初是設(shè)計(jì)用于監(jiān)控網(wǎng)絡(luò)鏈路流量負(fù)載的媒抠。它可以用過(guò)SNMP獲取到設(shè)備的流量信息弟断,并根據(jù)這些信息繪制成圖表并保存為PNG格式的圖片,再將這些PNG圖片以HTML頁(yè)面的方式顯示給用戶(hù)领舰。
不過(guò)夫嗓,MRTG展示的頁(yè)面和圖表曲線(xiàn)相對(duì)簡(jiǎn)陋迟螺,它在一張圖片中最多只能繪制兩個(gè)數(shù)據(jù)的變化曲線(xiàn),并且由于是PNG格式的靜態(tài)圖片舍咖,所以無(wú)法針對(duì)某一時(shí)間進(jìn)行細(xì)化展示矩父。為了解決這個(gè)問(wèn)題,人們又開(kāi)發(fā)了RRDTOOL工具排霉。
RRDTOOL(Round Robin Database Tool)是一個(gè)強(qiáng)大的繪圖引擎窍株。RRDTOOL可以使用自己的環(huán)狀數(shù)據(jù)庫(kù)(RRD)來(lái)記錄繪圖數(shù)據(jù),也可以使用關(guān)系型數(shù)據(jù)庫(kù)攻柠,例如MySQL來(lái)紀(jì)錄數(shù)據(jù)球订。利用RRDTOOL我們就可以將獲取到的SNMP數(shù)據(jù)通過(guò)RRDTOOL進(jìn)行實(shí)時(shí)繪圖,這么一來(lái)瑰钮,想看什么時(shí)候的數(shù)據(jù)冒滩,只要調(diào)取那個(gè)時(shí)間的監(jiān)控?cái)?shù)據(jù),讓RRDTOOL幫我們畫(huà)一張圖出來(lái)就可以直觀(guān)又清晰的查看了浪谴。目前开睡,幾乎所有的開(kāi)源監(jiān)控軟件都在使用RRDTOOL作為圖形繪制引擎。不過(guò)苟耻,直接使用RRDTOOL繪圖操作起來(lái)很麻煩篇恒。同時(shí),現(xiàn)如今的數(shù)據(jù)中心動(dòng)輒成百上千的設(shè)備凶杖,一個(gè)個(gè)的去提取胁艰、繪制、監(jiān)控顯然是不現(xiàn)實(shí)的事情智蝠。況且腾么,不同的設(shè)備監(jiān)控的對(duì)象和方法也不同。有些數(shù)據(jù)依靠SNMP也提取不到(例如MySQL查詢(xún)緩存命中率)杈湾。我們迫切的需要一個(gè)可以支持多種不同的監(jiān)控手段哮翘,同時(shí)具有分類(lèi)組織圖形并且可以按照分類(lèi)頁(yè)面的方式展示這些圖形的工具。另外毛秘,考慮到企業(yè)組織結(jié)構(gòu)越來(lái)越復(fù)雜饭寺,參與監(jiān)控的人員往往屬于不同的部門(mén)或者工作組,不同的人也應(yīng)該限定具有不同層級(jí)的監(jiān)控瀏覽權(quán)限叫挟。除此之外艰匙,還有很多各種各樣雜七雜八的需求不一而足。所以抹恳,現(xiàn)如今的監(jiān)控軟件不可以再像MRTG那樣僅僅畫(huà)張圖就了事员凝,還需要考慮更加豐富的功能侠畔。
Cacti 是一套基于PHP油狂、MySQL店枣、SNMP 及RRDTool 開(kāi)發(fā)的監(jiān)測(cè)圖形分析工具辟狈。它提供了非常強(qiáng)大的數(shù)據(jù)和用戶(hù)管理功能,可以指定每一個(gè)用戶(hù)能查看樹(shù)狀結(jié)構(gòu)糖埋、主機(jī)以及任何一張圖宣吱,還可以與輕量級(jí)目錄服務(wù)(LDAP)結(jié)合進(jìn)行用戶(hù)驗(yàn)證,同時(shí)也能自己編寫(xiě)模板瞳别,功能非常強(qiáng)大完善界面友好征候。可是隨著設(shè)備的不斷增多祟敛,Cacti 的運(yùn)行機(jī)制就不能滿(mǎn)足我們的需求了疤坝。Cacti 是使用輪詢(xún)的方式由主服務(wù)器向設(shè)備發(fā)送數(shù)據(jù)請(qǐng)求來(lái)獲取設(shè)備上狀態(tài)數(shù)據(jù)信息的,如果設(shè)備不斷增多馆铁,這個(gè)輪詢(xún)的過(guò)程就非常的耗時(shí)跑揉,輪詢(xún)的結(jié)果就不能即時(shí)的反應(yīng)設(shè)備的狀態(tài)了。
Cacti 監(jiān)控關(guān)注的是對(duì)數(shù)據(jù)的展示埠巨,卻不關(guān)注數(shù)據(jù)異常后的反饋畔裕。如果凌晨3 點(diǎn)的時(shí)候設(shè)備的某個(gè)數(shù)據(jù)出現(xiàn)異常,除非監(jiān)控人員在屏幕前發(fā)現(xiàn)這個(gè)異常變化乖订,否則是沒(méi)有任何報(bào)警機(jī)制能夠讓我們道出現(xiàn)了異常。這個(gè)時(shí)候我們就需要一種可以根據(jù)我們預(yù)設(shè)閥值報(bào)警的工具具练。自動(dòng)化監(jiān)控報(bào)警服務(wù)有很多乍构,其中商業(yè)應(yīng)用比較昂貴且多以硬件為主,開(kāi)源自動(dòng)化監(jiān)控報(bào)警服務(wù)中最著名的也是應(yīng)用最廣泛的是Nagios扛点。
Nagios 是一款開(kāi)源的免費(fèi)網(wǎng)絡(luò)監(jiān)控報(bào)警服務(wù)哥遮,能有效監(jiān)控Windows、Linux 和Unix 的主機(jī)狀態(tài)陵究,交換機(jī)眠饮、路由器和防火墻等網(wǎng)絡(luò)設(shè)置,打印機(jī)铜邮、網(wǎng)絡(luò)投影仪召、網(wǎng)絡(luò)攝像等設(shè)備。在系統(tǒng)或服務(wù)狀態(tài)異常時(shí)發(fā)出郵件或短信報(bào)警第一時(shí)間通知運(yùn)維人員松蒜,在狀態(tài)恢復(fù)后發(fā)出正常的郵件或短信通知扔茅。Nagios 有完善的插件功能,可以方便的根據(jù)應(yīng)用服務(wù)擴(kuò)展功能秸苗。Nagios 可以使用服務(wù)-代理(Server-Agent)方式獲取主機(jī)信息召娜,也可以使用SNMP 方式獲取設(shè)備信息。使用服務(wù)器-代理(Server-Agent)方式在每個(gè)主機(jī)上運(yùn)行代理軟件惊楼,主機(jī)上的代理軟件主動(dòng)提交數(shù)據(jù)信息玖瘸,可以避免服務(wù)器輪詢(xún)帶來(lái)的延遲和非實(shí)時(shí)性等問(wèn)題秸讹。
Nagios 已經(jīng)可以支持由數(shù)萬(wàn)臺(tái)服務(wù)器或上千臺(tái)網(wǎng)絡(luò)設(shè)備組成的云技術(shù)平臺(tái)的監(jiān)控,它可以充分發(fā)揮自動(dòng)化運(yùn)維技術(shù)特點(diǎn)在設(shè)備和人力資源減少成本雅倒。只是Nagios 無(wú)法將多個(gè)相同應(yīng)用集群的數(shù)據(jù)集合起來(lái)璃诀,也不能監(jiān)控到集群中特殊節(jié)點(diǎn)的遷移和恢復(fù)。一個(gè)新的監(jiān)控服務(wù)根據(jù)這個(gè)需求被設(shè)計(jì)出來(lái)屯断,它就是Ganglia文虏。
Ganglia 是UC Berkeley 發(fā)起的一個(gè)開(kāi)源集群監(jiān)視項(xiàng)目,設(shè)計(jì)用于測(cè)量數(shù)以千計(jì)的節(jié)點(diǎn)殖演。Ganglia 的核心包含gmond氧秘、gmetad 以及一個(gè)Web 前端。主要是用來(lái)監(jiān)控系統(tǒng)性能趴久,如:CPU 丸相、內(nèi)存、硬盤(pán)利用率彼棍,I/O 負(fù)載灭忠、網(wǎng)絡(luò)流量情況等,通過(guò)曲線(xiàn)很容易見(jiàn)到每個(gè)節(jié)點(diǎn)的工作狀態(tài)座硕,對(duì)合理調(diào)整弛作、分配系統(tǒng)資源,提高系統(tǒng)整體性能起到重要作用华匾,目前是監(jiān)控HADOOP 的官方推薦服務(wù)映琳。
Ganglia 分為服務(wù)器端、客戶(hù)端和一個(gè)Web 前端蜘拉,其中g(shù)metad 是服務(wù)器端萨西,gmond 是客戶(hù)端。服務(wù)器端只有一個(gè)旭旭,而被監(jiān)控服務(wù)器均安裝客戶(hù)端谎脯。Ganglia 采用Internet IPv4 類(lèi)D 地址中的的組播進(jìn)行數(shù)據(jù)請(qǐng)求。gmetad 發(fā)送一個(gè)請(qǐng)求到一個(gè)組播地址持寄,由于使用組播方式gmetad 只需發(fā)送一次請(qǐng)求包即可完成對(duì)所有g(shù)mond 的輪詢(xún)源梭。然后gmond 通過(guò)這個(gè)請(qǐng)求將采集到的數(shù)據(jù)返回給gmetad,gmetad 將數(shù)據(jù)保存在數(shù)據(jù)庫(kù)中稍味,通過(guò)RRDTool 繪制圖表咸产,然后通過(guò)Web 界面展示分類(lèi)的頁(yè)面。