1.2 為什么要使用Cacti
在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所示。

圖1-3 Zabbix的界面
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所示。

圖1-4 OpenNMS的界面
OpenNMS是用Java語言開發的,可以真正做到跨平臺。這個項目是由一群經驗豐富的網絡管理專家設計開發的,針對網絡管理員平時關注的對象建模,有很好的粒度把控和很好的擴展性。他們還借鑒了Linux系統設計的一些概念。它的系統開發、設計最大程度地遵循國際通信標準。OpenNMS從設計之初就被定義為一個分布式系統,可以通過配置來滿足各種復雜的網絡管理要求。
我們必須承認在現階段,OpenNMS是市場上占有率最高的開源系統運維軟件,跨平臺的設計、完善的設備庫、友好的界面都是它成功的因素。但是在實際使用過程中,我們發現針對OpenNMS的二次開發需要具備Java、JSP、Servlet、Spring、MVC等技術基礎,開發的難度比較大,并且安裝配置過程也非常麻煩。
幾款開源軟件的總體評估情況如表1-1所示。
表1-1 幾款開源軟件的總體評估

1.2.3 使用Cacti的理由
Cacti的外觀設計、架構設計很簡單,而且松散耦合,深究其內涵,我們發現它對高級功能的擴展支持也很到位,特別適合中小型企業、院校機構、政府機關等潛在用戶使用。通過一段時期的實際項目部署,也發現它確實簡化了用戶工作、增強了運維性能。總結起來,使用Cacti的理由也許會有以下幾點。
1.友好的體驗
Cacti的安裝和配置、數據組織、界面展現均通過Web來實現,通過鼠標點擊即可完成。 Cacti交互體驗非常友好,還有具有強大的數據管理功能。Cacti登錄之后的主界面如圖1-5所示。

圖1-5 Cacti的界面展示
因為Cacti基于RRDTool進行運維數據的管理,所以RRDTool天生的優勢(數據采集效率高、可以顯示負值、一個圖形中可以接駁多個數據源、數據的存儲方便,等等)能很好地繼承下來。
2.低負載的運行
Cacti的數據存儲與可視化是分開的,這樣可以有效降低Cacti服務器的負載,提高運維服務器的性能。
通常可以把Cacti需要的各個組件安裝在不同的服務器上來均衡Cacti系統的資源開銷。例如,數據中心本身就已經部署了MySQL服務器,那么新建一個Cacti數據庫即可,還可以將Cacti的主體程序與RRDTool圖像文件分開存放來降低系統的計算資源,等等。
3.高自由度的定制
Cacti調用的組件均為開源、高度的可定制化屬性,用戶可以根據自己的需要制作模板,不會遇到設備無法兼容的問題。
同時,Cacti加載擴展插件和模板的方法及其簡單,用戶能最快速地享受到擴展插件帶給系統的好處。水位線預警功能插件的配置界面如圖1-6所示。

圖1-6 Cacti擴展之后的水位線預警功能
- jQuery Mobile Web Development Essentials(Third Edition)
- Python科學計算(第2版)
- Vue.js快速入門與深入實戰
- 精通搜索分析
- Ext JS 4 Web Application Development Cookbook
- PySide 6/PyQt 6快速開發與實戰
- Haskell Data Analysis Cookbook
- Tableau 10 Bootcamp
- Linux C編程:一站式學習
- SQL Server實用教程(SQL Server 2008版)
- TMS320LF240x芯片原理、設計及應用
- Qlik Sense? Cookbook
- Learning Jakarta Struts 1.2: a concise and practical tutorial
- Java程序設計教程
- HTML5游戲開發實戰