创建 CloudWatch 代理配置文件 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

创建 CloudWatch 代理配置文件

在任何服务器上运行 CloudWatch 代理之前,必须创建一个或多个 CloudWatch 代理配置文件。

代理配置文件是一个 JSON 文件,它指定了该代理要收集的指标、日志和跟踪信息,包括自定义指标。您可以使用向导创建该文件,或者从 Scratch 自行创建该文件。您还可以最初使用向导创建配置文件,然后手动对其进行修改。如果手动创建或修改该文件,该过程更复杂一些,但您可以更好地控制收集的指标,并且可以指定不通过向导提供的指标。

每次更改代理配置文件时,您必须重新启动该代理以使更改生效。要重新启动该代理,请按照(可选)修改 CloudWatch 代理的通用配置和命名配置文件中的说明进行操作。

在创建配置文件后,可以将其手动保存为 JSON 文件,然后在服务器上安装代理时使用该文件。或者,如果您打算在服务器上安装代理时使用 Systems Manager,则可以将该文件存储在 Systems Manager Parameter Store 中。

CloudWatch 代理支持使用多个配置文件。有关更多信息,请参阅 创建多个 CloudWatch 代理配置文件

CloudWatch 代理收集的指标、日志和跟踪记录会产生费用。有关定价的更多信息,请参阅 Amazon CloudWatch 定价

创建多个 CloudWatch 代理配置文件

在 Linux 服务器和 Windows 服务器上,您可以将 CloudWatch 代理设置为使用多个配置文件。例如,您可以使用一个常见的配置文件,该文件收集您始终要从基础设施中的所有服务器收集的一组指标、日志和跟踪信息。然后,您可以使用其他配置文件,这些配置文件从某些应用程序或在某些情况下收集指标。

要对此进行设置,请首先创建要使用的配置文件。将在同一台服务器上一起使用的任何配置文件必须具有不同的文件名。您可以将配置文件存储在服务器或 Parameter Store 中。

使用 fetch-config 选项启动 CloudWatch 代理,并指定第一个配置文件。要将第二个配置文件附加到正在运行的代理,请使用相同的命令,但使用 append-config 选项。将收集任一配置文件中列出的所有指标、日志和跟踪信息。以下示例命令使用配置存储作为文件来演示此场景。第一行使用 infrastructure.json 配置文件启动代理,第二行附加 app.json 配置文件。

以下示例命令适用于 Linux。

/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/tmp/infrastructure.json
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -m ec2 -s -c file:/tmp/app.json

以下示例命令适用于 Windows Server。

& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\infrastructure.json"
& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a append-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\app.json"

以下示例配置文件展示了此功能的一个用法。第一个配置文件用于基础设施中的所有服务器,第二个配置文件仅收集来自特定应用程序的日志,并附加到运行该应用程序的服务器。

infrastructure.json

{ "metrics": { "metrics_collected": { "cpu": { "resources": [ "*" ], "measurement": [ "usage_active" ], "totalcpu": true }, "mem": { "measurement": [ "used_percent" ] } } }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log", "log_group_name": "amazon-cloudwatch-agent.log" }, { "file_path": "/var/log/messages", "log_group_name": "/var/log/messages" } ] } } } }

app.json

{ "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/app/app.log*", "log_group_name": "/app/app.log" } ] } } } }

附加到配置的任何配置文件彼此之间以及与初始配置文件之间都必须具有不同的文件名。如果您将 append-config 用于与代理已在使用的配置文件具有相同文件名的配置文件,则附加命令将覆盖第一个配置文件中的信息,而不是附加到它。即使这两个具有相同文件名的配置文件位于不同的文件路径中,也是这样。

上述示例显示使用了两个配置文件,但对您可以附加到代理配置的配置文件数量并没有限制。您还可以混合使用位于服务器上的配置文件和位于 Parameter Store 中的配置。