博客/工程

如何收集普罗米修斯指标OpenTelemetry收集器和Grafana吗

2022年5月10日6分钟

OpenTelemetry是一组api, sdk,工具,和集成设计等遥测数据的创建和管理跟踪、度量和日志。

的主要组成部分之一OpenTelemetry,简称OTel OpenTelemetry收集器。OpenTelemetry收集器Otel收集器,是一个与厂商无关的代理,可以接收、过程,和出口遥测数据。它支持接收遥测数据以多种格式(如OTLP, Jaeger,普罗米修斯,以及许多商业/专用工具),将数据发送到一个或多个后端。

收集器是一种强大的方式接收来自多个数据源的数据,变换,将其发送到目的地。在这里,我们将研究如何刮普罗米修斯指标OpenTelemetry收集器和送他们到远程写目的地像Grafana云。

为Grafana OpenTelemetry仪表板
为Grafana OpenTelemetry仪表板

如何设置OpenTelemetry Grafana云

设置出口商/应用程序

收集度量标准,应用程序应该通过http公开他们在普罗米修斯指标或OpenMetrics格式。应用程序不能这样做,有出口商暴露指标以正确的格式。

在我们的示例中,我将设置节点出口国在一个Ubuntu服务器上。你也可以下载的二进制和设置它引导有关。

apt安装prometheus-node-exporter美元

这个现在应该运行node-exporter暴露了Linux节点指标在http://localhost: 9100 /指标。

你可以看看跑步所暴露的指标:

$ curl localhost: 9100 /指标

创建一个Grafana云账户

你还需要一个远程端点发送和查看您的指标,和最容易的方法之一来存储普罗米修斯指标是使用Grafana云。你可以跳过这一步,如果你已经有一个远程端点和凭证。

如果你没有一个帐户,您可以很容易地注册一个免费Grafana云账户。一旦创建您的帐户,你会掉进一个Grafana实例,将帮助您开始使用发送指标。

向下滚动并选择普罗米修斯选项:

截图Grafana实例与普罗米修斯Grafana云帐户选项
截图Grafana实例与普罗米修斯Grafana云帐户选项

在配置选项,选择从我的本地普罗米修斯服务器>然后普罗米修斯把指标从一个实例>为API键输入名称,如图所示:

的配置界面截图Grafana发送普罗米修斯Grafana指标
的配置界面截图Grafana发送普罗米修斯Grafana指标

打击创建API密钥。这应该给你配置。请将其复制并保证它的安全。

API Grafana配置普罗米修斯的关键指标
API Grafana配置普罗米修斯的关键指标

现在,虽然我们使用的是OpenTelemetry收集器,它充当一个普罗米修斯服务器和具有相同的配置,这就是为什么我们选择上面的选项。

如何配置OpenTelemetry收藏家

现在我们有收集指标从送他们去的地方,让我们继续和设置OTel收集器。

你可以下载二进制文件或分布对于大多数架构/ OS以下链接:https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.48.0

在本指南中,我使用Ubuntu作为一个例子:

wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.46.0/otelcol_0.48.0_linux_amd64.deb dpkg -我otelcol_0.48.0_linux_amd64.deb美元

我们先检查收集器是否成功地通过检查运行日志:

journalctl - u otelcol美元。服务- f

这将显示日志的收集器,它应该像这样:

截图的日志Otel收集器
截图的日志Otel收集器

让现在找出所有的日志都是通过查看配置文件:

/etc/otelcol/config.yaml$ cat /etc/otelcol/config.yaml extensions: health_check: pprof: endpoint: 0.0.0.0:1777 zpages: endpoint: 0.0.0.0:55679 receivers: otlp: protocols: grpc: http: opencensus: # Collect own metrics prometheus: config: scrape_configs: - job_name: 'otel-collector' scrape_interval: 10s static_configs: - targets: ['0.0.0.0:8888'] jaeger: protocols: grpc: thrift_binary: thrift_compact: thrift_http: zipkin: processors: batch: exporters: logging: logLevel: debug service: pipelines: traces: receivers: [otlp, opencensus, jaeger, zipkin] processors: [batch] exporters: [logging] metrics: receivers: [otlp, opencensus, prometheus] processors: [batch] exporters: [logging] extensions: [health_check, pprof, zpages]

所以Otel收集器的管道有3个步骤:

接收器- >处理器- >出口商

它收集遥测数据通过接收器和处理器应用转换阶段之前发送给不同的输出通过出口商。

你可以看到最后的定义下的管道管道部分的配置文件。默认配置有两个管道配置,一个用于跟踪和一个用于度量。和度量管道是这样的:

指标:接收器:[otlp opencensus,普罗米修斯]处理器:(批)出口商:[记录]

这基本上意味着我们可以通过接收指标OTLP,OpenCensus普罗米修斯,批处理处理器之前批次一起几个指标发给日志出口商(基本上日志发送到stdout)。

给我们不需要任何跟踪、OTLP或OpenCensus,我们可以简化配置如下:

接收器:#收集的度量普罗米修斯:配置:scrape_configs: - job_name:“otel-collector”scrape_interval: 10 s static_configs: -目标:[‘0.0.0.0:8888]处理器:批处理:出口商:日志:logLevel:调试服务:管道:指标:接收器:[普罗米修斯]处理器:(批)出口商:[记录]

一旦你更新配置文件/etc/otelcol/config.yaml上面的配置,让我们重新启动收集器,以确保一切都很好:)

systemctl重启otelcol美元。服务otelcol.service systemctl美元地位

现在做的,让我们看看普罗米修斯的配置:

普罗米修斯:配置:scrape_configs: job_name:“otel-collector”scrape_interval: 10 s static_configs: -目标:[' 0.0.0.0:8888 ']

普罗米修斯接收器支持普罗米修斯配置文件开箱即用的,非常一些限制

的默认配置擦伤收集器本身指标收集器是如何执行的。增加更多的资源来刮很简单,就是这么简单添加更多的目标/工作:

普罗米修斯:配置:scrape_configs: job_name:“otel-collector”scrape_interval: 10 s static_configs: -目标:[' 0.0.0.0:8888 ']- job_name:“节点”scrape_interval: 10 s static_configs: -目标:(' localhost: 9100)

现在,我们有了自己的出口商说,让我们开始发给Grafana云。为此,我们需要一个普罗米修斯远程写出口国:

出口商:prometheusremotewrite:端点:https://USER: password

现在这就是Grafana云配置。例如,对于我的端点是这样的:

出口商:prometheusremotewrite:端点:https://361398: eyjrijoiytnlztfiotc2nja2odjlogy1zgrlngjknwmwodrkmdy2m2u2mte3niisim4ioijtzxryawnzlwtlesisimlkijo2mtu4odj9@prometheus -刺激- 01 -欧盟-西方- 0. grafana.net/api/prom/push

(别担心,我撤销API键。))

当你添加出口国,也更新管道,最后配置将看起来像:

接收器:#收集的度量普罗米修斯:配置:scrape_configs: - job_name:“otel-collector”scrape_interval: 10 s static_configs: -目标:[' 0.0.0.0:8888 ']- job_name:“节点”scrape_interval: 10 s static_configs: -目标:[' localhost: 9100]处理器:批处理:出口商:日志:logLevel:调试prometheusremotewrite:端点:https://361398 eyjrijoiytnlztfiotc2nja2odjlogy1zgrlngjknwmwodrkmdy2m2u2mte3niisim4ioijtzxryawnzlwtlesisimlkijo2mtu4odj9@prometheus——刺激- 01 -欧盟-西方- 0. - grafana.net/api/prom/push服务:管道:指标:接收器:[普罗米修斯]处理器:(批)出口商:[prometheusremotewrite]

一旦你更新/etc/otelcol/config.yaml与上述(确保您使用正确的用户,密码,和URL),重启和垃圾收集器运行验证成功:

systemctl重启otelcol美元。服务otelcol.service systemctl美元地位

现在在你Grafana Grafana云实例,您应该看到指标开始流入。我们进口这受欢迎节点出口国仪表板想象这些指标。

方向进口仪表板在Grafana云节点出口国
方向进口仪表板在Grafana云节点出口国
上传按钮导入仪表板Grafana云节点出口国
上传按钮导入仪表板Grafana云节点出口国

这将加载仪表板。给它几分钟,你应该看到数据的面板填充您的Linux节点执行!

在未来,我们将介绍如何部署收集器与运营商以及如何刮Kubernetes Kubernetes指标。我们还将研究如何更好地使用收集器内的不同的普罗米修斯组件!

Grafana云是最简单的方法开始使用指标、日志、痕迹和仪表板。我们有一个慷慨的自由永远层和每个用例的bob体育手机二维码计划。现在免费注册!