Prometheus - Docker/JVM 监控

Posted

技术标签:

【中文标题】Prometheus - Docker/JVM 监控【英文标题】:Prometheus - Docker/JVM Monitoring 【发布时间】:2016-05-29 14:15:59 【问题描述】:

我打算使用 Prometheus 来监控 Docker 容器中的 JVM。我们使用 javaagent for JMX exporter 实现了这一点。我的问题是如何动态地发现和更新我的 prometheus.yml,以便在启动/关闭 docker 容器时监控 JVM 的抓取目标。我在 docker 容器中运行 tomcat。有什么建议吗?

提前致谢并感谢您的宝贵时间。 卡提克

【问题讨论】:

【参考方案1】:

这取决于您通常如何进行服务发现。例如,如果您使用 Consul,您可以在 Prometheus 中使用 Consul SD 来查找您的导出器,可能使用 Gliderlab 的 Registrator 之类的东西。 http://www.slideshare.net/brianbrazil/prometheus-and-docker-docker-galway-november-2015 幻灯片 18 和 20 应该可以帮助您指明正确的方向。

除了 Consul,在您的情况下,另一个主要选择是使用 Zookeeper Serverset 或让您的配置管理写出 yaml/json 目标文件以供 Prometheus 使用。

【讨论】:

嗨,当我从 Consul 检索所有服务时,我需要根据 prometheus 配置文件中的正则表达式过滤服务,但它不接受它。需要列出要连接的完整服务名称,或者需要将其留空以连接所有服务。如何在 _consul_sd_config 的服务字段中实现此功能? 将该字段留空以获取所有内容,然后在 relabel_configs 中使用 drop 或 keep 操作进行过滤。【参考方案2】:

您可能想看看 SPM 客户端 docker 容器。它具有用于监控在 Docker 中运行的许多不同应用程序的代理 - Elasticsearch、Solr、Tomcat、mysql 等:https://github.com/sematext/docker-spm-client

【讨论】:

以上是关于Prometheus - Docker/JVM 监控的主要内容,如果未能解决你的问题,请参考以下文章

prometheus比zabbix好在哪点

Linux集群监控部署: prometheus 普罗米修斯 + Grafana(超详细)

大厂竟然都是这么做系统监控的,我们的方式太原始了~

Docker——JVM 感知容器的 CPU 和 Memory 资源限制

Docker——JVM 感知容器的 CPU 和 Memory 资源限制

网监后台管理系统设计思路