你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 InfluxData Telegraf 代理收集 Linux 虚拟机的自定义指标

本文介绍如何在 Linux 虚拟机上部署和配置 InfluxData Telegraf 代理以将指标发送到 Azure Monitor。

注意

InfluxData Telegraf 是一个开放源代码代理,不受 Azure Monitor 的正式支持。 有关 Telegraf 连接器的问题,请参阅此处的 Telegraf Github 页面:InfluxData

InfluxData Telegraf 代理

Telegraf 是一种插件驱动型代理,可以从 150 多个不同的源收集指标。 根据在 VM 上运行的具体工作负荷,可将该代理配置为使用专用输入插件来收集指标。 工作负荷的示例包括 MySQL、NGINX 和 Apache。 然后,代理可以使用输出插件向所选的目标写入数据。 Telegraf 代理直接集成了 Azure Monitor 自定义指标 REST API。 它支持 Azure Monitor 输出插件。 使用此插件时,代理可以在 Linux VM 上收集特定于工作负荷的指标,然后将其作为自定义指标提交到 Azure Monitor。

显示 Telegraph 代理概述的关系图。

连接到 VM

与要在其中安装 Telegraf 的 VM 建立 SSH 连接。 选择虚拟机概述页上的“连接”按钮。

虚拟机概述页的屏幕截图,其中突出显示了连接按钮。

在“连接到虚拟机”页面中,保留默认选项,以使用 DNS 名称通过端口 22 进行连接。 在“使用 VM 本地帐户登录”中,会显示一个连接命令。 选择相应的按钮来复制该命令。 下面的示例展示了 SSH 连接命令的样式:

ssh azureuser@XXXX.XX.XXX

将 SSH 连接命令粘贴到某个 Shell(例如 Azure Cloud Shell 或 Bash on Ubuntu on Windows)中来创建连接,或者使用所选 SSH 客户端来创建连接。

安装和配置 Telegraf

若要将 Telegraf Debian 包安装到 VM 上,请从 SSH 会话运行以下命令:

添加存储库:

# download the package to the VM
curl -s https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/lsb-release
sudo echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo curl -fsSL https://repos.influxdata.com/influxdata-archive_compat.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg add

安装包:

   sudo apt-get update
   sudo apt-get install telegraf

Telegraf 的配置文件定义 Telegraf 的操作。 默认情况下,示例配置文件安装在 /etc/telegraf/telegraf.conf 路径。 示例配置文件列出了所有可能的输入和输出插件。但是,我们将运行以下命令,创建自定义配置文件并让代理来使用它。

# generate the new Telegraf config file in the current directory
telegraf --input-filter cpu:mem --output-filter azure_monitor config > azm-telegraf.conf

# replace the example config with the new generated config
sudo cp azm-telegraf.conf /etc/telegraf/telegraf.conf

注意

上述代码仅启用两个输入插件:cpumem。 可以根据计算机上运行的工作负荷随意添加更多输入插件。 例如 Docker、MySQL 和 NGINX。 有关输入插件的完整列表,请参阅其他配置部分。

最后,为了让代理开始使用新配置,我们将运行以下命令,强制代理在停止后再启动:

# stop the telegraf agent on the VM
sudo systemctl stop telegraf
# start and enable the telegraf agent on the VM to ensure it picks up the latest configuration
sudo systemctl enable --now telegraf

现在,代理会从每个指定的输入插件收集指标,然后将它们发到 Azure Monitor。

在 Azure 门户中绘制 Telegraf 指标

  1. 打开 Azure 门户

  2. 导航到新的“监视器”选项卡,然后选择“指标”。

  3. 在资源选择器中选择自己的 VM。

  4. 选择 Telegraf/CPU 命名空间,然后选择 usage_system 指标。 可以按此指标上的维度选择筛选器,也可以对维度进行拆分。

    显示指标图标的屏幕截图,其中选择了 telegraph 指标。

其他配置

以上演练介绍了如何配置 Telegraf 代理,以便从一些基本的输入插件收集指标。Telegraf 代理支持 150 多个输入插件,部分插件支持其他配置选项。 InfluxData 发布了一个受支持插件的列表以及有关如何配置它们的说明。

另外,在本演练中,我们还使用 Telegraf 代理发出了在其上部署了代理的 VM 的相关指标。 Telegraf 代理也可用作其他资源的指标的收集器和转发器。 若要了解如何将代理配置为发出其他 Azure 资源的指标,请参阅 Azure Monitor Custom Metric Output for Telegraf(针对 Telegraf 的 Azure Monitor 自定义指标输出)。

清理资源

不再需要资源组、虚拟机和所有相关的资源时,可将其删除。 为此,请选择虚拟机的资源组,然后选择“删除”。 确认要删除的资源组的名称。

后续步骤