2015-09-05 86 views
3

所以我有一套分佈式微服務,例如。 ElasticsearchMongoDB的Postgres的,一個應用,阿帕奇卡夫卡集羣等。我想建立一個監測工具,在那裏我可以有各種他們周圍統計的儀表板。例如,對於run-time,CPU %,number of processes等人。這些以及明顯的當前狀態會告訴我服務是否正在運行。分佈式微服務的監控工具

從未做過這樣的工具,所以可以做一些幫助。有沒有已經爲此做了什麼?如果沒有,製作這樣的東西有什麼好的做法?

+0

您可能希望將標題從微服務更改爲進程。微服務進入單獨設計軟件或SOA的獨立領域。 – meson10

回答

2

看看Sensu。 Sensu是一款非常先進的監控工具。把它想成分佈式的nagios。所以你在每臺機器上都安裝一個Sensu代理,可用於上面提到的每個進程的插件。您也可以使用您選擇的語言編寫自己的插件,只要它們是有效的可執行文件即可。 Bash,perl,Python,ruby都可以工作。 代理將數據發佈到rabbitmQ,其中數據由Sensu服務器讀取。 對於儀表板,您可以簡單地安裝uchiwa,這可能是最好的Sensu儀表板。 這可以讓你做更多的事情,因爲Sensu服務器通過rabbitmQ請求來自所有Sensu代理的更新。所以你可以在這些機器上像使用自己的事件觸發器一樣使用它。就像你可以遠程啓動和關閉進程一樣。

另一個值得注意的工具是Riemann,http://riemann.io/。雖然Sensu更關心通過代理髮送數據,但Riemann的全部都是關於接收端的數據流處理。所以你可以有Sensu代理商和黎曼接收器。使用Riemann,您可以構建真正的高級度量警報規則。

然後是Icinga。這也是先進的Nagios,但不如Sensu那麼全面。

最後,如果您不想通過設置和維護所有這些過程,您可以使用像datadog這樣的託管服務。但是在那裏你會爲你監控的每一臺主機付費。

0

對於Python你可以使用psutil具有一系列的設施監測硬件等

  • cpu_times
  • virtual_memory
  • swap_memory
  • 過程監控
  • 網絡監控,

還有glances可以在客戶端/服務器Web模式下運行。在網絡瀏覽器中瀏覽我的機器時瀏覽的快照。

Glances in a browser

已經建立從psutil是GRR Rapid Response其是事件響應框架集中在遠程現場取證和包括客戶端的CPU,存儲器,IO使用和自我施加的限制的詳細遠程監控..

1

您可以看看www.vamp.io,這是一個基於JVM的開源框架,用於管理基於容器和(微)服務的體系結構。

它還包括監視和儀表板功能的GUI。 Vamp使用ElasticSearch存儲流經系統的指標,因此如果需要,您還可以輕鬆創建自己的定製Kibana儀表板。有一個功能強大的指標API可供您使用:http://vamp.io/documentation/using-vamp/metrics-and-events/

現在我們正在進入beta階段,但Vamp已經在一些SaaS提供商的規模生產中使用。

聲明:我是Vamp公司Magnetic.io的創始人之一。