CloudWatch代理版本:1.3.411.60
**目标:**获取Windows EC2示例的本地主机名,作为配置的每个指标的一个维度(列),这样就可以按示例的ComputerName进行过滤
根据创建CloudWatch代理配置文件的AWS文档,
omit_hostname -可选。默认情况下,主机名作为代理收集的度量的维发布。将此值设置为true可防止主机名作为维发布。默认值为false。
链接到文档:https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html
在这种情况下,在应用配置的json文件后,我成功地在CloudWatch中看到了配置的指标,但没有显示具有主机名称的维度/列。
当我查看日志时,我看到代理成功检索到示例的localhost名称HOST-123456(实际名称已编辑)
2020/05/11 22:59:23 I! I! Detected the instance is EC2
2020/05/11 22:59:23 Reading json config file path: C:\ProgramData\Amazon\AmazonCloudWatchAgent\\amazon-cloudwatch-agent.json ...
Valid Json input schema.
No csm configuration found.
Configuration validation first phase succeeded
2020/05/11 22:59:23 I! Config has been translated into TOML C:\ProgramData\Amazon\AmazonCloudWatchAgent\\amazon-cloudwatch-agent.toml
2020-05-11T22:59:27Z I! cloudwatch: get unique roll up list [[AutoScalingGroupName]]
2020-05-11T22:59:27Z I! Starting AmazonCloudWatchAgent (version 1.237768.0)
2020-05-11T22:59:27Z I! Loaded outputs: cloudwatchlogs cloudwatch
2020-05-11T22:59:27Z I! Loaded inputs: win_perf_counters windows_event_log
2020-05-11T22:59:27Z I! Tags enabled: host=HOST-123456
2020-05-11T22:59:27Z I! Agent Config: Interval:30s, Quiet:false, Hostname:"HOST-123456", Flush Interval:1s
2020-05-11T22:59:27Z I! cloudwatch: publish with ForceFlushInterval: 1m0s, Publish Jitter: 43s
在它首先读取的.json文件(我配置的文件)中,我显式地声明了省略主机名的false布尔值,尽管这是默认配置(我已经得到了相同的结果,省略了它,只让默认配置自己)
"agent": {
"metrics_collection_interval": 30,
"logfile": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log",
"omit_hostname": false
},
在代理将.json转换为的.toml文件中,我看到主机名值为空,
[agent]
collection_jitter = "0s"
debug = false
flush_interval = "1s"
flush_jitter = "0s"
hostname = ""
interval = "30s"
logfile = "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log"
metric_batch_size = 1000
metric_buffer_limit = 10000
omit_hostname = false
precision = ""
quiet = false
round_interval = false
在outputs.cloudwatch部分的下面,我看到有一个名为tagexclude的特定键,其中包含“host”(和metricPath,我不知道它是什么)
[outputs]
[[outputs.cloudwatch]]
force_flush_interval = "60s"
namespace = "PerfMon"
region = "us-west-1"
rollup_dimensions = [["AutoScalingGroupName"]]
tagexclude = ["host", "metricPath"]
我还没有成功地在谷歌上搜索到更深入的见解,所以我希望有人可以告诉我发生了什么事。任何见解都非常感谢。
注意:由于其他原因,EC2示例的AWS中的默认名称字段填充了EC2驻留的ASG的名称,因此无法使用该字段。
1条答案
按热度按时间7dl7o3gd1#
这是一个老问题,但对于未来的读者,我怀疑OP在Cloudwatch代理配置文件中使用了
append_dimensions
,这禁用了发布hostname
指标。请注意www.example.com中突出显示的部分https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html#CloudWatch-Agent-Configuration-File-Metricssection:
append_dimensions -可选。将Amazon EC2指标维度添加到代理收集的所有指标中。这还会导致代理不将主机名作为维度发布。
append_dimensions仅支持的键值对显示在下面的列表中。任何其他键值对都将被忽略。
AutoScalingGroupName维度。
如果要将维附加到具有任意键-值对的度量,请在该特定类型的度量的字段中使用append_dimensions参数。
如果指定的值取决于Amazon EC2元数据,并且您使用代理,则必须确保服务器可以访问Amazon EC2的端点。有关这些端点的详细信息,请参阅Amazon Web Services General Reference中的Amazon Elastic Compute Cloud(Amazon EC2)。