使用 collectd 检索自定义指标 - Amazon CloudWatch

使用 collectd 检索自定义指标

您可以使用 CloudWatch 代理以及 collectd 协议(该协议仅在 Linux 服务器上受支持)从应用程序或服务中检索其他指标。collectd 是一种通用的开源解决方案,其中的插件可以收集各种应用程序的系统统计数据。通过将 CloudWatch 代理可以收集的系统指标与 collectd 中的其他指标结合起来,您可以更好地监控、分析系统和应用程序并进行故障排除。有关 collectd 的更多信息,请参阅 collectd - 系统统计数据收集守护程序

您可以使用 collectd 软件将指标发送到 CloudWatch 代理。对于 collectd 指标,CloudWatch 代理充当服务器,而 collectd 插件充当客户端。

collectd 软件不会自动安装在每个服务器上。在运行 Amazon Linux 2 的服务器上,请按照下列步骤安装 collectd

sudo amazon-linux-extras install collectd

有关在其他系统上安装 collectd 的信息,请参阅 collectd 下载页面

要收集这些自定义指标,请将 "collectd": {} 行添加到代理配置文件的 metrics_collected 部分。您可以手动添加此行。如果您使用向导创建配置文件,向导会为您完成此操作。有关更多信息,请参阅创建 CloudWatch 代理配置文件

还将提供可选参数。如果您使用的是 collectd 并且未将 /etc/collectd/auth_file 用作 collectd_auth_file,则必须设置其中一些选项。

  • service_address:CloudWatch 代理应该侦听的服务地址。格式为 "udp://ip:port。默认为 udp://127.0.0.1:25826

  • name_prefix:附加到每个 collectd 指标名称开头的前缀。默认为 collectd_。最大长度为 255 个字符。

  • collectd_security_level:设置网络通信的安全级别。默认值为 encrypt (加密)

    encrypt (加密) 指定只接受加密的数据。sign (签名) 指定只接受已签名且加密的数据。none (无) 指定接受所有数据。如果为 collectd_auth_file 指定值,则会尽可能解密加密数据。

    有关更多信息,请参阅 collectd Wiki 中的客户端设置可能的交互

  • collectd_auth_file 设置用户名映射到密码的文件。这些密码用于验证签名和解密已加密的网络数据包。如果给定,则会验证签名的数据并解密加密的数据包。否则,会接受签名的数据而不检查签名,并且加密的数据不能被解密。

    默认为 /etc/collectd/auth_file

    如果 collectd_security_level 设置为 none (无),则这是可选的。如果将 collectd_security_level 设置为 encryptsign (签名),则必须指定 collectd_auth_file

    对于身份验证文件的格式,每行是一个用户名,后跟一个冒号和任意数量的空格,再后跟密码。例如:

    user1: user1_password

    user2: user2_password

  • collectd_typesdb:包含数据集描述的一个或多个文件的列表。即使列表中只有一个条目,列表也必须用括号括起来。列表中的每个条目都必须用双引号括起来。如果有多个条目,请用逗号分隔。Linux 服务器上的默认值为 ["/usr/share/collectd/types.db"]。macOS 电脑上的默认值取决于 collectd 的版本。例如,["/usr/local/Cellar/collectd/5.12.0/share/collectd/types.db"]

    有关更多信息,请参阅https://www.collectd.org/documentation/manpages/types.db.html

  • metrics_aggregation_interval:CloudWatch 将指标聚合为单个数据点的频率(秒)。默认值为 60 秒。范围为 0 至 172,000。将它设置为 0 会禁用 collectd 指标的聚合。

下面是代理配置文件的 collectd 部分的示例。

{ "metrics":{ "metrics_collected":{ "collectd":{ "name_prefix":"My_collectd_metrics_", "metrics_aggregation_interval":120 } } } }

查看由 CloudWatch 代理导入的已收集指标

将 collected 指标导入到 CloudWatch 后,您可以以时间序列图形的形式查看这些指标,并创建可监视这些指标的告警,并在它们超出指定的阈值时通知您。以下程序介绍了如何以时间序列图形的方式查看 collected 指标。有关设置告警的更多信息,请参阅 使用 Amazon CloudWatch 告警

在 CloudWatch 控制台中查看 collected 指标
  1. 访问 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  2. 在导航窗格中,选择指标

  3. 为该代理收集的指标选择命名空间。默认情况下,该命名空间为 CWAgent,但您可能已经在 CloudWatch 代理配置文件中指定了不同的命名空间。

  4. 选择指标维度(例如 Per-Instance Metrics(每个实例的指标))。

  5. All metrics 选项卡显示命名空间中该维度的所有指标。您可执行以下操作:

    1. 要为指标绘制图表,请选中该指标旁的复选框。要选择所有指标,请选中表的标题行中的复选框。

    2. 要对表进行排序,请使用列标题。

    3. 要按资源进行筛选,请选择资源 ID,然后选择 Add to search

    4. 要按指标进行筛选,请选择指标名称,然后选择 Add to search

  6. (可选)要将此图表添加到 CloudWatch 控制面板,请选择 Actions(操作),然后选择 Add to dashboard(添加到控制面板)