使用 collectd 检索自定义指标 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用 collectd 检索自定义指标

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

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

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

sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo yum install -y 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://collectd.org/documentation/manpages/types.db.5.shtml

  • 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. 在导航窗格中,选择 Metrics (指标)

  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(添加到控制面板)