2014-09-22 70 views
0

我有一個服務器集羣。常見的任務我手冊代碼是:是否有一個集羣的Java監控/警報框架?

  1. 收集與metrics庫的各種統計(失敗,成功,次)。
  2. 聚合了那些組合了跨集羣。
  3. 根據條件檢查彙總統計跨羣集並根據發送警報。 (而不是讓每個服務器發送一個警報,增加被輪詢的全局度量,然後到graphite)。
  4. 如果一個特定的節點首先發送了一個警報並且基於來自其他節點的警報(再次跨羣集場景),那麼我將決定發送哪個警報(所以如果我有100個服務器,它們不是每個都發送單獨的警報,但是單一)。

我看着幾個框架,但他們都不是我看到實現這一目標:在這裏我想如我跨集羣場景metricsjavamelodynetflix servonetflix zuul

但他們都不支持彙總統計隨着時間的推移,並且只有在某些條件適用的情況下發送警報(作爲避免重複提示跨服務器的方法)。我需要爲此構建自己的框架嗎?或者已經有東西存在?如果我的用例聽起來很特殊以至於我只需要編碼,那麼我就有更多這樣的類似用例,這讓我想到爲什麼不存在這樣的框架,在我開始編碼之前,我想找到我剛剛複製了一些其他框架)。

回答

1

你看過使用Graphite還是OpenTSDB與Riemann的組合?您可以在Graphite中聚合您的信息(帶或不帶statsd)或將所有內容轉儲到OpenTSDB並使用Riemann進行事件處理? Riemann的配置在Clojure中,但我相信你可以使用多種語言的客戶端庫(除非你想用Esper/Siddhi自己處理事件)。另一種選擇可能是看看Rocksteady(它使用Graphite/Esper)。 Graphite是一個Python/Django應用程序(有多個statsd分支 - 不僅僅是NodeJS &中的分支,您可以簡單地使用度量來代替)。 OpenTSDB是HBase上的Java(如果你想存儲時間序列信息)。對於事件處理,你也可以選擇查看風暴(並且使用Esper/Siddhi作爲Storm中的一個螺栓)。

+0

是zabbix的功能https://www.zabbix.com/documentation/2.0/manual/config/items/itemtypes/aggregate和https://www.zabbix.com/documentation/2.0/manual/appendix/triggers /與黎曼的功能相媲美? – Jas 2014-09-29 17:59:33