1.1 Cacti的起源與發展現狀
本節介紹了Cacti的基本情況,包括Cacti的基本概念、Cacti從誕生到發展的階段過程,對于文章中出現的一些功能和概念,大家只要有一個初步印象即可,我們會在后文中詳細介紹,本章的主要目的是帶大家進入Cacti的世界,以便后續展開相關的話題。
1.1.1 什么是Cacti
Cacti是一個針對數據中心的網絡層、平臺層、數據層以及業務層全流程進行監控的運維管理平臺。它也是基于RRDTool(Round Robin Database Tool)開源項目的一個前端展示平臺。2001年9月23日,發布了它的第一個版本。圖1-1為Cacti的支撐組件及相互關系。

圖1-1 Cacti的支撐組件及相互關系
作為一個面向系統管理員的平臺,Cacti對接SNMP(Simple Network Management Protocol)、MySQL、RRDTool、Apache等組件,通過調度這些組件進行數據的收集、分析、存儲、可視化等工作。
Cacti以實時、定時等多種方式運維和展現數據中心各個層級、各個區域的設備的工作狀態,同時按照事先制定好的運維策略,Cacti可以通過報警、郵件通知等方式及時通知用戶數據中心發生的各個關鍵事件。
總體來說,Cacti大致完成以下幾個方面的工作:
基于Web網頁的RRD文件和RRA數據的管理工作。
基于RRD文件的圖形配置和生成。
數據采集需要使用外部腳本與命令行的支持以及SNMP經典方式的支持。
基于SNMP的易用性配置。
多樣化的用戶權限認證與管理。
Cacti目前在國際上被公認為是最開放、最有發展潛力的開源運維系統。
1.1.2 Cacti的起源與發展
故事要從2001年的某一天說起。
一個叫Ian Berry的中學生還在學習如何使用PHP和MySQL進行編程及功能的實現,那時候他業余時間為一個名不見經傳的互聯網運營商開發項目,他希望借助這個項目不僅可以精進自己的編程功力,還可以創建一個新的監控顯示方法,既要比RRDTool容易使用、比MRTG靈活,又要更加容易擴展和調整。
天賦異稟的Ian在自己的不懈努力下,通過使用PHP語言,完成了第一個開源程序的版本。在隨后的幾年中,開源社區的開發愛好者們越發關注這只“帶刺兒的仙人掌”,并在大家的共同推動下,0.8.6版本在2004年9月13日正式發布。0.8.6版本甚至可以認為是Cacti發展歷史上的里程碑,它褪去了幼稚與粗糙,在全球開發者的細心呵護下開始展露自己成熟之后的迷人魅力,它的執行效率越來越高,經過優化的源代碼使得Cacti變得越來越靈活,越來越易于擴展。
圖1-2為Cacti目前的開發團隊,右三為創始人Ian Berry,自古英雄出少年??!

圖1-2 截至2011年8月份,Cacti的開發團隊
按照原來Roadmap的計劃,1.0.0版本將會在2013年年底正式發布,但是這個開源項目太火了,大家開始不斷地建立自己的分支版本,不斷在各個版本基礎上開發帶有附加特性的新的子版本,這導致1.0.0版本一直難以統一。預見到這個狀況可能發生,Ian開始在2012年6月份,集中力量重組研發資源配置,開始在提高研發效率、縮短研發周期方面花力氣,相信1.0.0版本不會等待太長時間,并且它一定會是Cacti的一個新里程碑……
- Flask Web全棧開發實戰
- Python 3.7網絡爬蟲快速入門
- Python Data Analysis(Second Edition)
- Apache Mahout Clustering Designs
- Hands-On Functional Programming with TypeScript
- Julia for Data Science
- 打開Go語言之門:入門、實戰與進階
- Visual Basic程序設計習題與上機實踐
- Vue.js應用測試
- Xcode 6 Essentials
- FPGA嵌入式項目開發實戰
- 創意UI Photoshop玩轉移動UI設計
- Android Game Programming by Example
- Mastering Drupal 8
- Python從入門到項目實踐(超值版)