天天看點

《Cacti實戰》——1.2 為什麼要使用Cacti

本節書摘來自華章計算機《cacti實戰》一書中的第1章,第1.2節,作者:劉钊,張躍著, 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

在it行業,任何産品或者解決方案都不可能适用于所有的使用者和場景,針對cacti自身的特點,本節首先介紹它比較合适的使用場景。接着介紹目前市面上常用的同類産品,cacti的優勢和劣勢,最後總結歸納出使用cacti的理由。

1.2.1 cacti的使用場景

通過筆者這些年的考察,會發現在如下幾個場景中,cacti具有得天獨厚的優勢。

1.?中小型企業

通常情況下,企業,特别是中小型的企業,對于it資訊系統的建設成本比較敏感,通常這樣的企業又不乏有技術、有想法的工程師,利用開源軟體既可以得到符合自己情況的系統,又能節省一大筆系統建設成本,是以在中小型企業的機房,經常會看到cacti的身影。

2.?大型資料中心

大型資料中心的監控系統往往非常複雜,并不是某一家就可以提供end-to-end的解決方案,在這種情況下,cacti可以肩負起整體監控系統的網絡流量、單台主機工作負載以及非it化的生僻裝置的監控任務,并通過開放的api接口接受其他監控系統的整合,協同工作。

3.?緊急的項目搶險

不同于常用的使用場景,cacti不僅可以作為一般企業it系統監控和資料中心的日常運作維護管理,在某些特殊場景中,它還可以發揮獨特的作用。緊急的項目搶險就是一個非常好的例子,筆者在項目的運作維護中,經常會接到這樣的電話:

“我的資料庫系統怎麼從今天早上起變得這麼慢?!”

“先别急,這之前的幾天你們對資料庫系統做過什麼沒有?”

“沒有啊……什麼都沒做啊……好好的就突然慢下來了!”(通常我們的客戶都是這樣回答的……)

“系統日志和監控資料發給我看一下吧,我來試着定位問題。”

“系統日志怎麼導出來啊?監控系統前幾天消防演習,機櫃關機的時候給停掉了,趕緊過來,别那麼多廢話了!”(客戶暴怒了……)

通常這種情況下,我們都會再帶着一套cacti系統,接駁目标裝置,cacti系統會自動展現監控裝置的情況,沒準兒我們會發現網絡的傳輸速度正常,資料庫主機的計算壓力也不大,記憶體也沒有吃滿到交換檔案的地步,存儲性能也ok,就是語句執行起來時間很長,試着檢視了一下計劃任務,發現問題:不知哪路“神仙”把rebuild index的維護計劃給删掉了,導緻大量的新增記錄沒有索引,聯合查詢的時候非常慢。問題得到準确定位!

通過cacti采集資料,對資料可視化來定位問題,既快速,又簡單明了。

cacti,挺好的,我們一直用它,倍兒有面子!

總結起來,cacti對于1000台伺服器以下的資料中心監控,具有廣泛的普适性,它良好的界面設計、開放的系統架構,可以承擔起監控的重任。目前筆者看到cacti已經在電信、石油、政府、教育、醫療等多個行業的客戶機房使用。相信大家在日常的工作中也會經常看到,cacti默默地為我們工作。

1.2.2 cacti與同類運維工具的對比

目前在業内,有非常多的同類軟體,針對商用産品,不做太多評價,畢竟開源項目的高度可定制化,随心所欲地按照使用者需求修改功能,這一點是商業産品不具備的。單純從開源項目來看,與cacti在同一水準線上的産品有如下幾個:

1.?nagios

nagios是一款開源的免費網絡監視工具,能有效監控windows、linux和unix的主機狀态,交換機、路由器等的網絡設定,以及監控列印機的什麼等。在系統或服務狀态異常時,發出郵件或短信報警,第一時間通知技術人員,在狀态恢複後,發出正常的郵件或短信通知。

nagios的優勢在于可以對資料中心中大量的伺服器,以及在其上運作的資料服務進行監控,以快速定位問題,進行報警。

相比cacti,nagios在網絡流量、實時監控以及資料可視化方面的功能很弱。

2.?zabbix

zabbix是一個基于web界面的、提供分布式系統監視以及網絡監視功能的企業級開源解決方案。zabbix的界面如圖1-3所示。

《Cacti實戰》——1.2 為什麼要使用Cacti

zabbix能監視各種網絡參數,保證伺服器系統的安全營運,并提供靈活的通知機制,使系統管理者快速定位和解決存在的各種問題。zabbix由兩部分構成:zabbix server與可選元件zabbix agent。

zabbix server可以通過snmp、zabbix agent、ping、端口監視等方法提供對網絡狀态的監視,資料收集等功能,它可以運作在linux、solaris、hp-ux、aix、free bsd、open bsd、os x等平台上。

zabbix agent需要安裝在被監控的目标伺服器上,它主要收集硬體資訊或與作業系統有關的記憶體、cpu等資訊。它可以運作在linux、solaris、hp-ux、aix、free bsd、open bsd、os x、tru64/osf1、windows nt 4.0、windows 2000/2003/xp/vista等作業系統之上。

zabbix的優勢在于資料的輸入/輸出,但是在資料可視化方面做得不如cacti。

3.?zenoss core

zenoss core是開源企業級it管理軟體,它允許it管理者依靠單一的web控制台來監控網絡架構的狀态和健康度。

zenoss core來源于zenoss開源項目,zenoss的體系架構非常龐大,當然具備的功能也比較完善,這一點是相對于cacti來說的,這是cacti的弱點。

但是zenoss的體系架構足夠複雜,也導緻在二次開發和實際使用過程中,系統管理者必須花很長的時間,耗費很大的精力來學習,修改過後的zenoss,由于功能子產品的強耦合性,導緻系統在上線之前需要進行大量的測試與驗證,耗費人力、物力是在所難免的。

簡單易用是cacti對比zenoss最大的優勢。

4.?opennms

opennms是一個企業級基于java /xml的分布式網絡和系統運維管理平台。它可以顯示網絡中各種終端和伺服器的狀态和配置,為管理網絡提供有效的資訊。opennms的界面如圖1-4所示。

《Cacti實戰》——1.2 為什麼要使用Cacti

opennms是用java語言開發的,可以真正做到跨平台。這個項目是由一群經驗豐富的網絡管理專家設計開發的,針對網絡管理者平時關注的對象模組化,有很好的粒度把控和很好的擴充性。他們還借鑒了linux系統設計的一些概念。它的系統開發、設計最大程度地遵循國際通信标準。opennms從設計之初就被定義為一個分布式系統,可以通過配置來滿足各種複雜的網絡管理要求。

我們必須承認在現階段,opennms是市場上占有率最高的開源系統運維軟體,跨平台的設計、完善的裝置庫、友好的界面都是它成功的因素。但是在實際使用過程中,我們發現針對opennms的二次開發需要具備java、jsp、servlet、spring、mvc等技術基礎,開發的難度比較大,并且安裝配置過程也非常麻煩。

幾款開源軟體的總體評估情況如表1-1所示。

《Cacti實戰》——1.2 為什麼要使用Cacti

1.2.3 使用cacti的理由

cacti的外觀設計、架構設計很簡單,而且松散耦合,深究其内涵,我們發現它對進階功能的擴充支援也很到位,特别适合中小型企業、院校機構、政府機關等潛在使用者使用。通過一段時期的實際項目部署,也發現它确實簡化了使用者工作、增強了運維性能。總結起來,使用cacti的理由也許會有以下幾點。

1.?友好的體驗

cacti的安裝和配置、資料組織、界面展現均通過web來實作,通過滑鼠點選即可完成。cacti互動體驗非常友好,還有具有強大的資料管理功能。cacti登入之後的主界面如圖1-5所示。

《Cacti實戰》——1.2 為什麼要使用Cacti

因為cacti基于rrdtool進行運維資料的管理,是以rrdtool天生的優勢(資料采集效率高、可以顯示負值、一個圖形中可以接駁多個資料源、資料的存儲友善,等等)能很好地繼承下來。

2.?低負載的運作

cacti的資料存儲與可視化是分開的,這樣可以有效降低cacti伺服器的負載,提高運維伺服器的性能。

通常可以把cacti需要的各個元件安裝在不同的伺服器上來均衡cacti系統的資源開銷。例如,資料中心本身就已經部署了mysql伺服器,那麼建立一個cacti資料庫即可,還可以将cacti的主體程式與rrdtool圖像檔案分開存放來降低系統的計算資源,等等。

3.?高自由度的定制

cacti調用的元件均為開源、高度的可定制化屬性,使用者可以根據自己的需要制作模闆,不會遇到裝置無法相容的問題。

同時,cacti加載擴充插件和模闆的方法及其簡單,使用者能最快速地享受到擴充插件帶給系統的好處。水位線預警功能插件的配置界面如圖1-6所示。

《Cacti實戰》——1.2 為什麼要使用Cacti