资源
工程

电报操作员DT内部

这篇博文的目的是为您提供如何在Kubernetes (K8S)环境中使用Telegraf操作符和普罗米修斯监视JMX指标的详细说明.

动机

这样做的目的是解决当巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的系统发生事件导致无法连接到Kafka代理时出现的问题. 巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司试图将事件写入Kafka. 然而,Kafka的生产者是不受监控的,这让巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司很难理解这个问题. 在事件回顾之后, 我主动监控了生产环境中的Kafka生产者.

挑战

巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司正在使用的应用程序是一个scala(基于jvm)应用程序. 在网上快速搜索一下就会发现,在JVM的情况下,Kafka生产者通过 JMX.

巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司在K8S上的监控设置基于 普罗米修斯  作为指标db. 另外,巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司使用标准的布局 ServiceMonitor 公开巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的指标. 这允许普罗米修斯操作符刮掉它们. 因此, 挑战在于找出如何为巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的K8S应用程序向普罗米修斯公开JMX指标.

解决方案

巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司为这个技术挑战找到了几个解决方案. 然而,两个仍然是主要的合理解决方案:

  • 普罗米修斯 JMX Metrics出口商
  • 使用的品种度量代理的K8S电报操作员

普罗米修斯 JMX指标导出器

一个收集器,可以配置地为prometheus抓取和公开JMX目标的mbean.

使用jolokia度量代理的K8S电报运营商

Telegraf是一个插件驱动的服务器代理,用于从数据库收集和发送指标和事件, 系统, 和物联网传感器.

telegraf operator是一个应用程序,用于在Kubernetes集群中创建和管理单独的telegraf实例. 而jolokia是用于远程JMX访问的基于代理的方法.

巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司使用电报操作员,因为发现它更方便配置. 更重要的是, telegraf 除了JMX metrics插件之外,还支持各种插件. 具有其他功能,例如监视用非基于JVM的编程语言编写的应用程序和监视 系统指标.

示意图流是巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的JVM应用程序运行 的品种 代理. 该代理收集JMX指标,将它们公开到专用端口. 电报操作员负责创建一个 双轮马车的容器巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的每个应用程序pod中. 该容器从jolokia代理中抓取JMX指标,并以适当的格式向普罗米修斯公开这些指标.

实现过程

首先,巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司希望应用程序容器能够访问jolokia代理jar文件. 巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司使用init容器是因为它们在应用程序容器启动之前运行, 并允许巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司获取jolokia代理jar文件. 为此,巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司必须将以下内容添加到巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的服务部署YAML中: 首先,巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司希望应用程序容器能够访问jolokia代理jar文件. 巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司使用init容器是因为它们在应用程序容器启动之前运行, 并允许巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司获取jolokia代理jar文件. 为此,巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司必须将以下内容添加到巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的服务部署YAML中:

在这里,巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司将jolokia jar下载到本地文件系统,并将其放置在/opt/jolokia上,以便巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的服务容器可以访问该路径上的代理.

您可以替换命令部分并从首选对象存储中获取文件.

最后,巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司使用jolokia代理运行应用程序来定义 JAVA_TOOL_OPTIONS 关于YAML:

注意,巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司将端口8778配置为jolokia代理公开其指标的端口.

步骤2:在K8S集群上部署电报操作员

K8S的telegraf operator是一个开源项目,您可以在这里找到:http://github.com/influxdata/telegraf-operator

巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司希望在巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的K8S环境中部署电报操作员. 通过使用dev.从github存储库中找到Yml文件并运行:

注意巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司是如何在K8S集群上使用Telegraf操作员pod创建新的Telegraf -operator名称空间的.

现在巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司使用类定义一个包含电报操作员输出配置的K8S密钥.Yml文件如下:

巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司需要知道巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司在stringData下定义了一个' prometheus '类, 将普罗米修斯格式的指标写入端口9273. 稍后,巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司将展示如何使用它. 让巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司将其添加到K8S集群中:

This is how you would do it using kubectl; However, 巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的生产环境, 巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司基于YAML文件创建了舵图,以便将它们集成到K8S部署中.

第三步:设置巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的服务与电报运营商一起工作

既然您想要定义应用程序,那么就使用telegraf操作符来公开指标. 在应用程序部署的YAML文件中,添加了以下内容:

添加电报.influxdata...注释到巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的YAML中,表示Telegraf操作符, 将sidecar容器添加到使用此部署启动的每个pod中. 另外, 配置Telegraf的的品种插件,巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的的品种 JMX指标在端口8778上暴露:

接下来,巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司定义了的品种插件将作为度量标准暴露的JMX bean,配置如下:

你可以用你想要的Kafka生产者指标或任何你喜欢的MBean替换MBean!

最后,巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司使用了类中的普罗米修斯类定义.允许巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的JMX指标配置以普罗米修斯格式通过电报公开:

第四步:这是有效的!

就是这样!

一旦你完成部署, 巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的应用程序以普罗米修斯格式在端口9273上公开其JMX指标. 尝试并检查:9273/metrics. 你应该看到这样的内容:

kafka_producer_request_rate {client_id =、主机= jolokia_代理_url = " http://localhost: 8778 /品种/}0.2811884900178086

现在巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司剩下要做的就是定义一个ServiceMonitor来使用prometheus抓取指标,巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司就可以开始了, 巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的K8S应用程序JMX指标将在prometheus上.

Summary

巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司介绍了如何在K8S集群上使用普罗米修斯监视JMX指标,使用通过init容器获得的jolokia代理运行JVM应用程序的设置, 部署telegraf操作员,用于抓取的品种指标并将其暴露给prometheus.

额外的链接

作者
最近的帖子

萨尔·伯格贝斯特著

Saar是巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的前后端开发人员. 他加入了R&2017年,他以学生开发人员的身份进入D部门,之后在特拉维夫大学(Tel Aviv University)完成学业后成为全职员工.

探索更多的

请与巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司联系,看看巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司能如何帮助贵公司

请求一个演示-家

巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司使用cookie来操作巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的网站并用于营销目的. 查看巴黎人网址1590线路检测-appleappstore排行榜-巴黎人网址1590线路检测有限公司的 隐私政策 or 不要出售我的个人信息政策 欲知详情.
接受
拒绝