本節書摘來自華章計算機《cacti實戰》一書中的第1章,第1.1節,作者:劉钊,張躍著, 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
本節介紹了cacti的基本情況,包括cacti的基本概念、cacti從誕生到發展的階段過程,對于文章中出現的一些功能和概念,大家隻要有一個初步印象即可,我們會在後文中詳細介紹,本章的主要目的是帶大家進入cacti的世界,以便後續展開相關的話題。
1.1.1 什麼是cacti
cacti是一個針對資料中心的網絡層、平台層、資料層以及業務層全流程進行監控的運維管理平台。它也是基于rrdtool(round robin database tool)開源項目的一個前端展示平台。2001年9月23日,釋出了它的第一個版本。圖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,自古英雄出少年啊!
按照原來roadmap的計劃,1.0.0版本将會在2013年年底正式釋出,但是這個開源項目太火了,大家開始不斷地建立自己的分支版本,不斷在各個版本基礎上開發帶有附加特性的新的子版本,這導緻1.0.0版本一直難以統一。預見到這個狀況可能發生,ian開始在2012年6月份,集中力量重組研發資源配置,開始在提高研發效率、縮短研發周期方面花力氣,相信1.0.0版本不會等待太長時間,并且它一定會是cacti的一個新裡程碑……