用于分布式微服务的监控工具

时间:2015-09-05 13:33:47

标签: python mongodb postgresql ubuntu monitoring

所以我有一套分布式微服务,例如。 Elasticsearch MongoDB Postgres Flask 应用程序, Apache Kafka 群集等我想建立一个监控工具,我可以在其中找到各种统计数据的仪表板。例如,run-timeCPU %number of processes等。这些以及明显的当前状态会告诉我服务是否正在运行。

之前从未制作过这样的工具,所以可以提供一些帮助。有没有为此做过的事情?如果没有,制作这样的东西有什么好的做法?

3 个答案:

答案 0 :(得分:2)

看看Sensu。 Sensu是一种非常先进的监控工具。把它想象成分布式的nagios。因此,您需要在每台具有大号的机器上安装Sensu代理。可用于上述每个进程的插件。您也可以使用您选择的语言编写自己的插件,只要它们是有效的可执行文件即可。 Bash,perl,Python,ruby什么都行。 代理将数据发布到rabbitmQ,其中由Sensu服务器读取数据。 对于仪表板,您只需安装uchiwa,这可能是最好的Sensu仪表板。 这使您可以执行超出监控的功能,因为Sensu服务器通过rabbitmQ从所有Sensu代理请求更新。所以你可以像在这些机器上使用自己的事件触发器一样使用它。就像你可以远程启动和关闭进程一样。

另一个值得注意的工具是黎曼,http://riemann.io/

虽然Sensu更多的是通过代理发送数据,但Riemann完全是关于接收端的流处理。所以你可以拥有Sensu代理和Riemann接收器。使用黎曼,您可以构建真正高级的度量标准警报规则。

然后是Icinga。这也是先进的nagios,但不像Sensu那样全面。

最后,如果您不想完成设置和维护所有这些的过程,您可以使用像datadog这样的托管服务。但是你会支付你监控的每个主机的费用。

答案 1 :(得分:1)

您可以查看www.vamp.io,这是一个基于JVM的开源框架,用于管理基于容器和(微)服务的体系结构。

它还包括监控和带仪表板功能的GUI。 Vamp使用ElasticSearch存储流经系统的指标,因此您也可以根据需要轻松创建自己的自定义Kibana仪表板。您可以使用强大的指标API:http://vamp.io/documentation/using-vamp/metrics-and-events/

我们现在正在进入测试阶段,但Vamp已经在一些SaaS提供商的大规模生产中使用。

免责声明:我是Vamp背后的公司Magnetic.io的创始人之一。

答案 2 :(得分:0)

对于python,你可以使用psutil,它有一堆监视硬件的工具等。

  • cpu_times
  • virtual_memory
  • swap_memory
  • 流程监控
  • 网络监控,

还有glances可以在客户端/服务器Web模式下运行。在网络浏览器中在我的机器上运行的扫视快照。

Glances in a browser

已经从psutil构建的是GRR Rapid Response,这是一个专注于远程实时取证的事件响应框架,包括对客户端CPU,内存,IO使用和自我限制的远程详细监控。