開源監控軟件之爭
首先,提醒一下大家。下面的內容,有可能會被認為是廣告,因為我推薦的是我自己做的一款產品:Cloud Insight. 但是,在對比Zabbix 和Nagios 的時候,我覺得有些東西還是值得拿出來討論一下的。第一個就是上文 Wenx 提到的:沒有更好,只有更適合吧。是否需要使用 Zabbix 或者 Nagios 都是可以拿出來討論討論的。在人員不夠、經驗不足、時間很緊的情況下,有必要使用 Zabbix 或 Nagios 這樣很重的解決方案嗎?Zabbix 和 Nagios 相繼出現在 1998 年和 1999 年,經過歷史的發展和迭代,以及社區中很多程序員的貢獻,已經發展得很強大了。我們 OneAPM 公司初期也是使用 Zabbix 來做所有云主機和物理主機的監控。但是后期遇到了很多大的麻煩:
- 用 Zabbix 和 Nagios 真的很依賴運維工程師的實際水平和 Docker Mesos 這些新技術的支持。
- 需要自己去找腳本來試驗,真的很麻煩。
- 數據是只讀的,運維工程師真的就只是看看,出啥問題了,最后還是重啟,甚至需要從騰訊云換到阿里云等等這種麻煩的手段。
既然監控是為了解決實際的問題,如果想要找到自己最適合的運維監控工具,我推薦一些還在觀望 Zabbix 和 Nagios 的初創團隊,可以試一試Cloud Insight。
All in One
這個概念就像 esty 當年發布 statsd 寫的文章一樣: Measure Anything, Measure Everything 。系統監控工具如果能夠做到 All in One,那真的可以解決人力和時間成本上的問題。說到這個就得提提 statsd。statsd 是 Flickr 公司首創,后來由 Esty 公司重構的一個輕量級的指標采集模塊。也就是說操作系統、不同數據庫、不同的中間件 ,都可以通過它來采集指標,并且上傳至 Graphite 這些用于可視化 & 存儲的組件中。不了解的人,可以讀讀 Measure Anything, Measure Everything。現在很多公司都開始使用了這樣的工具,來搭建自己的運維監控系統了。國外也出現了基于 statsd 的公司:Boundary Datadog 等等。以下是他們的網址:
國外這些公司就是為了提供一個一體化的解決方案: 如何集成不同的操作系統、數據庫、中間件監控的問題,你不需要擔心,用就行了。
數據只讀和數據管理
就像上文提到的,數據只讀是 Zabbix 一個比較大的痛點:根本發現不了什么問題。所以國內的淘寶、小米都開始使用時間序列數據庫,來解決這個事情;
- 淘寶使用 OpenTSDB 案例: OpenTSDB監控系統的研究和介紹
- 小米開源項目: Open-Falcon|互聯網企業級監控系統
能夠對數據對切片、聚合,并且使用一些數值計算,能夠更快地解決問題。拿 Docker 來說,不同的 Container 的 CPU 消耗,這個需求就很常見。標簽信息在時間序列數據庫中的作用,就是為了解決這個需求。那么計算是什么意思呢?相信動態門限的告警、對某些數值浮動較小的數 值求 log 這些需求在實際運維場景中也是很常見的。
而這些時間序列數據庫都可以幫你做到。
Cloud Insight
Cloud Insight 就是國內利用 statsd 和 OpenTSDB 實現的一個一體化的解決方案(免費但不開源)。樓主提出這個問題, 我猜想是公司內部有人對于 Zabbix 和 Nagios 不是很熟悉,不知道前方有什么坑。 那么,在人員的經驗不足的前提下,也沒有時間去試錯。所以建議使用下 Cloud Insight 進行快速試錯,也看看新的技術發展是否能夠更好地滿足自己的需求。最后是上幾張產品截圖:
總的來說,不建議創業團隊或者初創公司,在人員不足的情況下,使用 Zabbix 和 Nagios(成本實在太高)。倒是可以使用國外的這種方法:
輕量級的探針采集數據(Statsd)+ 時間序列數據庫(運算)+ 展現端(Grafanna)
或者使用Cloud Insight,來解決。
開源監控軟件越來越在互聯網技術領域占據重要位置,開源監控軟件之間的戰爭也早已打響,如果還在觀望究竟 Zabbix 和 Nagios 哪個更好,并且對這件事猶豫不決一籌莫展,不妨眼觀六路,了解一下國內的淘寶、小米都開始使用時間序列 數據庫監控 方法,嘗試一下 OpenTSDB、Open-Falcon 或者學習成本和使用成本都很低,功能卻很強大的新產品Cloud Insight 也未嘗不可。