向MetricFire发送指标数据
首先
监控IT资源是大中型企业日常业务的一部分,但中小企业也从监控系统、内存容量、可用性和性能方面受益。这样的主动性目的是为了确保流畅的流程。例如,IT管理员需要在几天前就知道磁盘容量不足的情况,这样IT管理员可以采取措施应对。
有许多监控工具可供选择,但Prometheus、Graphite和Grafana是受欢迎的开源监控工具。将这些工具与MetricFire等解决方案进行整合,将构建出一整套出色的监控平台。
传统的监控工具通常重点关注基础设施资源,如内存和CPU的使用情况,但仅凭此已不再足够。现在需要基于指标和更广泛的可观测性,以获得对应用程序、服务器和平台更全面的视图。
Prometheus、Grafana、以及Graphite是几个优秀的开源工具,可用于指标收集和可视化,但如果需要自己设置堆栈,那将是一项繁琐的任务。这就是MetricFire发挥作用的地方。除了基础设施的成本和维护外,我们还提供出色的功能。
MetricFire 是什么?
MetricFire提供了上述三个开源工具的托管和维护服务,因此您可以通过令人愉悦的Grafana界面轻松可视化指标。对于能够集成各种监控相关工具的监控平台的需求空前高涨,最近出现了许多新的热门基础设施技术,如Docker、Kubernetes等。所有这些都是可扩展的,并且由于整合了官方工具和第三方工具,功能数量和监控负载都有增加的趋势。MetricFire能够将系统的指标收集到一个仪表盘上,并提供可扩展的解决方案。
为了简化数据收集和可视化监控,全一致的平台如MetricFire是至关重要的。此外,MetricFire对于基础监控技术和平台是持中立态度的。
如果您尚未拥有帐号,您可以选择免费注册14天,并解锁所有功能。注册后,MetricFire支持人员将立即给您来电,以便找到解决方案。
将指标发送到MetricFire的方法
在本教程中,我们将介绍如何将指标发送到MetricFire并开始监视的方法。
要向MetricFire提供数据,有以下两种方法可以选择。
-
- Hosted Graphite agent
- CollectDとStatsD
一旦确认了上述的两种方法,我们将对如何设置Prometheus实例以收集指标进行说明,并在教程最后解释保护这些指标发送到MetricFire过程的技巧。
使用Hosted GraphiteAgent发送指标
如果使用Hosted Graphite,将指标传送到MetricFire平台有三种方法。
-
- MetricFireのエージェントを使用する
-
- コードの使用
- エージェント+Hosted Graphiteアドオン
使用MetricFire的代理
在最初的方法中,我们将使用终端。在服务器上运行cURL命令,将自动设置所需的组件。该命令还会开始将数据发送到MetricFire实例。请注意,该命令包含与每个MetricFire帐户不同的API密钥。
登录仪表盘后,点击[如何发送度量]按钮即可获取API密钥。复制安装命令并在服务器上执行,即可连接到MetricFire仪表盘。
这是使用基于Debian的系统的示例。
curl -s https://XXXXXXXXXXXXXXXX@www.hostedgraphite.com/agent/installer/deb/ | sudo sh
请注意,根据下面的截图所述,您可以通过点击“代理人”,然后添加新的代理人,以获得相同的命令。
从代码中提取的指标
在MetricFire的仪表板中,点击代码选项后,会显示可立即使用的各种编程语言(如Python、Java、Bash)的代码片段。
一旦可以使用源代码,您就可以以应用程序的形式轻松使用它,并开始将指标发送到MetricFire。
代理商 + 托管的Graphite附加组件
第三个选项非常有趣,可能是最简单的选项之一。在这个选项中,您可以使用Hosted Graphite附加组件和代理,使代理可以自动将数据输入到默认的Grafana仪表板中。
通常情况下,使用插件可以简单点击按钮即可从第三方服务获取数据。另外,还有可以生成示例仪表板集的插件,您可以在几分钟内查看详细仪表板所需的信息。
アドオンは、Graphiteエージェントによってエクスポートされた基本システムメトリックのダッシュボードを提供します。 MetricFireのダッシュボードで、[アドオン]セクションに移動し、[ホスティングされたGraphiteエージェント(ベース)]オプションをクリックして、このアドオンを有効にします。 [ダッシュボードを再生成]ボタンをクリックして、このアドオンでGrafanaを構成します。 Grafanaダッシュボードを再生成しようとすると、次のメッセージが表示される場合があります。
This will create/overwrite a dashboard in Grafana called Hosted Graphite Agent (Base). Are you sure?
已经按照以上的方法准备就绪。系统会显示安装代理程序到发送指标的系统中,并且执行提供的指令后,系统会开始将数据发送到MetricFire。如果想要确切地了解系统/服务器的配置,请检查以下服务的状态。
sudo systemctl status hg-agent
只要在服务器上运行着hg-agent,它就会开始向MetricFire仪表盘提供数据。
那么,让我们来检查一下发送指标的不同方法。
使用StatsD或collectd发送指标
Collectd和StatsD是两个广泛使用的用于发送度量数据的工具。它们本质上相似,但根据发送的数据类型不同。Collectd主要用于收集和发送与系统相关的度量(例如CPU,内存,磁盘等),而StatsD则用于发送与应用程序相关的统计数据。
这两者都使用守护进程进行执行。它们持续在后台执行并处理将指标收集并发送到MetricFire仪表板的作业。StatsD是由Node.js编写的,而collectd是使用C语言开发的,但与MetricFire的集成过程基本相同。
为了将指标发送到外部系统,您需要按照特定的格式进行。StatsD提供了丰富的指标类型。StatsD最常见的指标类型包括仪表、计数器、定时器、直方图、计量器和集合。只要设置好与MetricFire的连接后,这些指标类型就可以正常使用。如需详细信息,请查看此处。
将这两种方法整合在一起非常简单。只需登录MetricFire账户并进入“附加组件”部分,就会发现在“数据源附加组件”部分下方显示了可以同时使用StatsD和collectd的附加组件。
当启用扩展时,将显示重要的使用注意事项。请记住这些信息,以配置系统以使用StatsD。
例:在帳戶中啟用了StatsD功能。
-
- StatsD形式のデータをstatsd.hostedgraphite.com:8125に送信します
-
- Hosted Graphite APIキー(XXXXXXXXXXXXXXXXXX)でデータのプレフィックスを付けます。
- ほとんどのクライアントは、「プレフィックス」または「名前空間」オプションを受け入れて、APIキーを含めることができます。
启用StatsD后,您可以开始计划收集和发送指标数据。按照本教程的步骤,您可以使用这些信息来配置Grafana仪表板。
Prometheus的安装设置
Prometheus 是一個強大的開源度量收集和儲存系統。它可以收集系統和用戶定義的度量,並將其儲存到可擴展的時間序列資料庫中。隨著時間的推移,它越來越受歡迎,被許多知名的雲計算和軟體工程公司所采用。
如果你正在进行数据收集并将其作为时序数据库使用,那么MetricFire将能够强大地帮助你。通过配置Prometheus将数据收集并发送到MetricFire实例,以及启用Prometheus的导出插件,你可以扩展Prometheus的功能。
– 节点导出器
– 黑匣子导出器
– MySQL导出器
– RabbitMQ导出器
– Nginx虚拟主机状态导出器
虽然Prometheus在过去几年里有着广泛的功能,但仍然存在一些缺失的功能,其中之一是TLS支持。如果需要启用TLS加密,那就需要在Prometheus之前设置一个代理工具。
在中国本地化的繁体字中,以下是对上述问题的原生汉语的简单描述:
要安装和配置Prometheus有3种方法。一种方法是使用Prometheus官方文件中提供的源代码安装方法,另一种方法是使用系统软件包管理器来安装Prometheus。第三种方法是使用容器化的Prometheus。在Dockerhub上有非常好的打包好的Docker镜像可用,但使用这种方法可能会导致不稳定性和数据持久性问题,如果忘记了细节。
在Ubuntu上,最简单的方法是使用软件包管理器(如apt、snap、yum等)。
启动和运行完全功能的Prometheus实例所需的步骤如下。首先,您需要将apt-key添加到Ubuntu系统中。
GET https://s3-eu-west-1.amazonaws.com/deb.robustperception.io/41EFC99D.gpg | apt-key add -
执行更新,并确认您喜欢的软件包管理器已收到新的更改。
apt-get update
这个命令用来与默认组件一起安装Prometheus。
apt-get install prometheus prometheus-node-exporter prometheus-pushgateway prometheus-alertmanager
我将确认Prometheus正在运行。
当您启动浏览器并输入http://localhost:9090时,您将在浏览器中看到PrometheusWeb接口。您可以使用位于/etc/prometheus.yml的配置文件来配置Prometheus的端口设置或其他重要的运行时参数,或者将同一文件复制并粘贴到新文件中以备后用。
global:
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
在启动Prometheus之前,需要在同一个配置文件中设置”remote_write”功能和”remote_read”功能。
# Settings related to the remote write feature.
remote_write:
[ - <remote_write> ... ]
# Settings related to the remote read feature.
remote_read:
[ - <remote_read> ... ]
在MetricFire的特定情况下,需要使用令牌携带下一个远程地址。
# Settings related to the remote write feature.
remote_write:
- https://api.metricfire.com/write
- bearer_token: <YOUR BEARER TOKEN>
# Settings related to the remote read feature.
remote_read:
- https://api.metricfire.com/read
- bearer_token: <YOUR BEARER TOKEN>
在MetricFire仪表盘上,点击”Add-Ons”,然后进入Prometheus,您可以获取令牌。
最终的组成如下所示。
global:
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
remote_read:
- url: https://api.metricfire.com/read
bearer_token: <YOUR BEARER TOKEN>
remote_write:
- url: https://api.metricfire.com/write
bearer_token: <YOUR BEARER TOKEN>
保存YAML文件。
通过使用已创建的配置,您可以启动 Prometheus。
./prometheus --config.file=<CONFIGURATION FILE>
第二步是执行机器指标的导出器节点导出器。如果使用源代码安装Prometheus,则需要使用“node_exporter”二进制文件。但是,如果使用系统软件包管理器安装,则名称可能会有所变化。例如,在基于Debian的系统上使用prometheus-node-exporter。一旦Node Exporter运行,可以通过在/metrics端点上运行cURL命令来确认指标是否被导出。
curl http://localhost:9100/metrics
机器需要向MetricFire提供指标。您可以确保这些数据已保存和汇总到仪表盘上。
将发送到MetricFire的数据保护起来。
让我们来看看如何保护数据发送至MetricFire的过程。
托管的Graphite代理
将度量安全发送的最简单方法是使用HostedGraphite代理。
一旦安装,它会自动通过HTTPS传输到Hosted Graphite。
如果您已经使用了普通文本TCP或UDP Carbon格式接口等其他方法,您可以继续通过TCP over TLS和HTTPS以相同的格式发送度量数据。下面的段落将给出一些例子。
使用TTPS来安全发送数据。
为了实现这个目标,可以使用cURL命令提供MetricFire的HTTPS端点。
curl https://<API_KEY>@www.hostedgraphite.com/api/v1/sink --data-binary "metrics.tar"
需要将(をAPIキーに置き換える必要があります。)翻译成中文。
你可能已经注意到了,这个过程与你在这个教程的开头部分看到的是相同简单的。只需要将HTTP替换为HTTPS。
HTTPS的替代方案:在TLS上的TCP
在HTTPS通信中会有额外的开销,而TCP over TLS可以提供更高级别的安全性。如果选择了TCP,则可以使用以下命令来配置主机系统。
echo "API-KEY.metrics.tar" | ncat --ssl carbon.hostedgraphite.com 20030
由于MetricFire在端口20030上配置了TCP over TLS终端节点,所以上述命令中指定了该特定端口。
其他可考虑的选项包括代理、中继和非阻塞度量。
另一个选项是使用诸如Stunnel之类的工具,在不更改程序代码的情况下向现有服务器添加TLS加密功能。这对于不希望配置应用程序来管理TLS连接的情况非常有用。
我忘记说了一件重要的事,如果您已经在现有的Graphite基础设施中运行Carbon Relay Demon,那么可以通过现有的Carbon Relay安全地转发流量。
此外,如果您需要从多个服务器向MetricFire发送数据,请注意TCP可能会阻塞并进行同步。在这种情况下,您可以使用UDP。语言指南可以帮助您为各种编程语言设置HTTP(S)、TCP和UDP。
总结
在这个教程中,我们介绍了如何向MetricFire服务发送数据,并确认了保护数据传输的方法。我们还确认了StatsD、collectd和Prometheus的安装和配置步骤。MetricFire捆绑了高质量的开源技术,如Grafana、Prometheus和Graphite,使它们易于使用和维护。
我们简化了复杂的度量收集和可视化过程,使企业可以专注于核心业务。
立即获取免费试用,并点击此处开始。另外,请预约演示,在视频通话中加入MetricFire团队。我们始终很高兴能支持用户,以便充分利用平台。