使用 AWS CLI 的 CloudWatch 网络监控示例 - AWS Command Line Interface

使用 AWS CLI 的 CloudWatch 网络监控示例

以下代码示例演示了如何通过将 AWS Command Line Interface与 CloudWatch 网络监控结合使用,来执行操作和实现常见场景。

操作 是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示了如何使用 create-monitor

AWS CLI

示例 1:创建具有聚合周期的网络监测仪

以下 create-monitor 示例创建一个名为 Example_NetworkMonitor 的监测仪,其中 aggregationPeriod 设置为 30 秒。该监测仪的初始 state 将是 INACTIVE,因为没有探测器与之关联。只有在添加探测器后,状态才会变成 ACTIVE。您可以使用 update-monitorcreate-probe 命令将探测器添加到此监测仪中。

aws networkmonitor create-monitor \ --monitor-name Example_NetworkMonitor \ --aggregation-period 30

输出:

{ "monitorArn": "arn:aws:networkmonitor:region:111122223333:monitor/Example_NetworkMonitor", "monitorName": "Example_NetworkMonitor", "state": "INACTIVE", "aggregationPeriod": 30, "tags": {} }

有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon CloudWatch 网络状况监测仪的工作方式

示例 2:创建带有探测器的网络监测仪,探测器使用 TCP 并包括标签

以下 create-monitor 示例创建一个名为 Example_NetworkMonitor 的监测仪。该命令还会创建一个使用 ICMP 协议并包括标签的探测器。因为请求中没有传入 aggregationPeriod,所以 60 秒设置为默认值。带有探测器的监测仪的 state 将为 PENDING,直到监测仪为 ACTIVE。这可能需要几分钟,当 state 变为 ACTIVE 时,您就可以开始查看 CloudWatch 指标了。

aws networkmonitor create-monitor \ --monitor-name Example_NetworkMonitor \ --probes sourceArn=arn:aws:ec2:region:111122223333:subnet/subnet-id,destination=10.0.0.100,destinationPort=80,protocol=TCP,packetSize=56,probeTags={Name=Probe1} \ --tags Monitor=Monitor1

输出:

{ "monitorArn": "arn:aws:networkmonitor:region111122223333:monitor/Example_NetworkMonitor", "monitorName": "Example_NetworkMonitor", "state": "PENDING", "aggregationPeriod": 60, "tags": { "Monitor": "Monitor1" } }

有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon CloudWatch 网络状况监测仪的工作方式

示例 3:创建带有探测器的网络监测仪,探测器使用 ICMP 并包括标签

以下 create-monitor 示例创建一个名为 Example_NetworkMonitor 的监测仪,其中 aggregationPeriod 设置为 30 秒。该命令还会创建一个使用 ICMP 协议并包括标签的探测器。因为请求中没有传入 aggregationPeriod,所以 60 秒设置为默认值。带有探测器的监测仪的 state 将为 PENDING,直到监测仪为 ACTIVE。这可能需要几分钟,当 state 变为 ACTIVE 时,您就可以开始查看 CloudWatch 指标了。

aws networkmonitor create-monitor \ --monitor-name Example_NetworkMonitor \ --aggregation-period 30 \ --probes sourceArn=arn:aws:ec2:region111122223333:subnet/subnet-id,destination=10.0.0.100,protocol=ICMP,packetSize=56,probeTags={Name=Probe1} \ --tags Monitor=Monitor1

输出:

{ "monitorArn": "arn:aws:networkmonitor:region:111122223333:monitor/Example_NetworkMonitor", "monitorName": "Example_NetworkMonitor", "state": "PENDING", "aggregationPeriod": 30, "tags": { "Monitor": "Monitor1" } }

有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon CloudWatch 网络状况监测仪的工作方式

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 CreateMonitor

以下代码示例演示了如何使用 create-probe

AWS CLI

示例 1:创建使用 TCP 的探测器并将其添加到网络监测仪中

以下 create-probe 示例创建一个使用 TCP protocol 的探测器并将该探测器添加到名为 Example_NetworkMonitor 的监测仪中。创建后,带有探测器的监测仪的 state 将为 PENDING,直到监测仪为 ACTIVE。这可能需要几分钟,当 state 变为 ACTIVE 时,您就可以开始查看 CloudWatch 指标了。

aws networkmonitor create-probe \ --monitor-name Example_NetworkMonitor \ --probe sourceArn=arn:aws:ec2:region:111122223333:subnet/subnet-id,destination=10.0.0.100,destinationPort=80,protocol=TCP,packetSize=56,tags={Name=Probe1}

输出:

{ "probeId": "probe-12345", "probeArn": "arn:aws:networkmonitor:region:111122223333:probe/probe-12345", "destination": "10.0.0.100", "destinationPort": 80, "packetSize": 56, "addressFamily": "IPV4", "vpcId": "vpc-12345", "state": "PENDING", "createdAt": "2024-03-29T12:41:57.314000-04:00", "modifiedAt": "2024-03-29T12:41:57.314000-04:00", "tags": { "Name": "Probe1" } }

示例 2:创建使用 ICMP 的探测器并将其添加到网络监测仪中

以下 create-probe 示例创建一个使用 ICMP protocol 的探测器并将该探测器添加到名为 Example_NetworkMonitor 的监测仪中。创建后,带有探测器的监测仪的 state 将为 PENDING,直到监测仪为 ACTIVE。这可能需要几分钟,当 state 变为 ACTIVE 时,您就可以开始查看 CloudWatch 指标了。

aws networkmonitor create-probe \ --monitor-name Example_NetworkMonitor \ --probe sourceArn=arn:aws:ec2:region:012345678910:subnet/subnet-id,destination=10.0.0.100,protocol=ICMP,packetSize=56,tags={Name=Probe1}

输出:

{ "probeId": "probe-12345", "probeArn": "arn:aws:networkmonitor:region:111122223333:probe/probe-12345", "destination": "10.0.0.100", "packetSize": 56, "addressFamily": "IPV4", "vpcId": "vpc-12345", "state": "PENDING", "createdAt": "2024-03-29T12:44:02.452000-04:00", "modifiedAt": "2024-03-29T12:44:02.452000-04:00", "tags": { "Name": "Probe1" } }

有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon CloudWatch 网络状况监测仪的工作方式

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 CreateProbe

以下代码示例演示了如何使用 delete-monitor

AWS CLI

删除监测仪

以下 delete-monitor 示例删除名为 Example_NetworkMonitor 的监测仪。

aws networkmonitor delete-monitor \ --monitor-name Example_NetworkMonitor

此命令不生成任何输出。

有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon CloudWatch 网络状况监测仪的工作方式

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DeleteMonitor

以下代码示例演示了如何使用 delete-probe

AWS CLI

删除探测器

以下 delete-probe 示例从名为 Example_NetworkMonitor 的网络监测仪中删除 ID 为 probe-12345 的探测器。

aws networkmonitor delete-probe \ --monitor-name Example_NetworkMonitor \ --probe-id probe-12345

此命令不生成任何输出。

有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon CloudWatch 网络状况监测仪的工作方式

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DeleteProbe

以下代码示例演示了如何使用 get-monitor

AWS CLI

获取监测仪信息

以下 get-monitor 示例获取有关名为 Example_NetworkMonitor 的监测仪的信息。

aws networkmonitor get-monitor \ --monitor-name Example_NetworkMonitor

输出:

{ "monitorArn": "arn:aws:networkmonitor:region:012345678910:monitor/Example_NetworkMonitor", "monitorName": "Example_NetworkMonitor", "state": "ACTIVE", "aggregationPeriod": 60, "tags": {}, "probes": [], "createdAt": "2024-04-01T17:58:07.211000-04:00", "modifiedAt": "2024-04-01T17:58:07.211000-04:00" }

有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon CloudWatch 网络状况监测仪的工作方式

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 GetMonitor

以下代码示例演示了如何使用 get-probe

AWS CLI

查看探测器的详细信息

以下 get-probe 示例返回与名为 Example_NetworkMonitor 的监测仪相关且 probeIDprobe-12345 的探测器的详细信息。

aws networkmonitor get-probe \ --monitor-name Example_NetworkMonitor \ --probe-id probe-12345

输出:

{ "probeId": "probe-12345", "probeArn": "arn:aws:networkmonitor:region:012345678910:probe/probe-12345", "sourceArn": "arn:aws:ec2:region:012345678910:subnet/subnet-12345", "destination": "10.0.0.100", "destinationPort": 80, "protocol": "TCP", "packetSize": 56, "addressFamily": "IPV4", "vpcId": "vpc-12345", "state": "ACTIVE", "createdAt": "2024-03-29T12:41:57.314000-04:00", "modifiedAt": "2024-03-29T12:42:28.610000-04:00", "tags": { "Name": "Probe1" } }

有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon CloudWatch 网络状况监测仪的工作方式

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 GetProbe

以下代码示例演示了如何使用 list-monitors

AWS CLI

示例 1:列出所有监测仪(单个监测仪)

以下 list-monitors 示例返回仅包含单个监测仪的列表。该监测仪的 stateACTIVEaggregationPeriod 为 60 秒。

aws networkmonitor list-monitors

输出:

{ "monitors": [{ "monitorArn": "arn:aws:networkmonitor:region:012345678910:monitor/Example_NetworkMonitor", "monitorName": "Example_NetworkMonitor", "state": "ACTIVE", "aggregationPeriod": 60, "tags": { "Monitor": "Monitor1" } } ] }

有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon CloudWatch 网络状况监测仪的工作方式

示例 2:列出所有监测仪(多个监测仪)

以下 list-monitors 示例返回包含三个监测仪的列表。其中一个监测仪的 stateACTIVE 并且生成 CloudWatch 指标。另两个监测仪的状态为 INACTIVE 且未生成 CloudWatch 指标。所有三个监测仪使用的 aggregationPeriod 均为 60 秒。

aws networkmonitor list-monitors

输出:

{ "monitors": [ { "monitorArn": "arn:aws:networkmonitor:us-east-1:111122223333:monitor/Example_NetworkMonitor", "monitorName": "Example_NetworkMonitor", "state": "INACTIVE", "aggregationPeriod": 60, "tags": {} }, { "monitorArn": "arn:aws:networkmonitor:us-east-1:111122223333:monitor/Example_NetworkMonitor2", "monitorName": "Example_NetworkMonitor2", "state": "ACTIVE", "aggregationPeriod": 60, "tags": { "Monitor": "Monitor1" } }, { "monitorArn": "arn:aws:networkmonitor:us-east-1:111122223333:monitor/TestNetworkMonitor_CLI", "monitorName": "TestNetworkMonitor_CLI", "state": "INACTIVE", "aggregationPeriod": 60, "tags": {} } ] }

有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon CloudWatch 网络状况监测仪的工作方式

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 ListMonitors

以下代码示例演示了如何使用 list-tags-for-resource

AWS CLI

列出资源标签

以下 list-tags-for-resource 示例返回名为 Example_NetworkMonitor 的监测仪的标签列表。

aws networkmonitor list-tags-for-resource \ --resource-arn arn:aws:networkmonitor:region:012345678910:monitor/Example_NetworkMonitor

输出:

{ "tags": { "Environment": "Dev", "Application": "PetStore" } }

有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon CloudWatch 网络状况监测仪的工作方式

以下代码示例演示了如何使用 tag-resource

AWS CLI

标记资源

以下 tag-resource 示例使用 Environment=DevApplication=PetStore 标签标记名为 Example_NetworkMonitor 的监测仪。

aws networkmonitor tag-resource \ --resource-arn arn:aws:networkmonitor:region:012345678910:monitor/Example_NetworkMonitor \ --tags Environment=Dev,Application=PetStore

此命令不生成任何输出。

有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon CloudWatch 网络状况监测仪的工作方式

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 TagResource

以下代码示例演示了如何使用 untag-resource

AWS CLI

取消标记资源

以下 untag-resource 示例将键-值对为 Environment Applicationtag-keys 参数从它与名为 Example_NetworkMonitor 的监测仪的关联中移除。

aws networkmonitor untag-resource \ --resource-arn arn:aws:networkmonitor:region:012345678910:monitor/Example_NetworkMonitor \ --tag-keys Environment Application

此命令不生成任何输出。

有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon CloudWatch 网络状况监测仪的工作方式

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UntagResource

以下代码示例演示了如何使用 update-monitor

AWS CLI

更新监测仪

以下 update-monitor 示例将监测仪的 aggregationPeriod60 秒改为 30 秒。

aws networkmonitor update-monitor \ --monitor-name Example_NetworkMonitor \ --aggregation-period 30

输出:

{ "monitorArn": "arn:aws:networkmonitor:region:012345678910:monitor/Example_NetworkMonitor", "monitorName": "Example_NetworkMonitor", "state": "PENDING", "aggregationPeriod": 30, "tags": { "Monitor": "Monitor1" } }

有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon CloudWatch 网络状况监测仪的工作方式

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UpdateMonitor

以下代码示例演示了如何使用 update-probe

AWS CLI

更新探测器

以下 update-probe 示例更新探测器的原始 destination IP 地址,并将 packetSize 更新为 60

aws networkmonitor update-probe \ --monitor-name Example_NetworkMonitor \ --probe-id probe-12345 \ --destination 10.0.0.150 \ --packet-size 60

输出:

{ "probeId": "probe-12345", "probeArn": "arn:aws:networkmonitor:region:012345678910:probe/probe-12345", "sourceArn": "arn:aws:ec2:region:012345678910:subnet/subnet-12345", "destination": "10.0.0.150", "destinationPort": 80, "protocol": "TCP", "packetSize": 60, "addressFamily": "IPV4", "vpcId": "vpc-12345", "state": "PENDING", "createdAt": "2024-03-29T12:41:57.314000-04:00", "modifiedAt": "2024-03-29T13:52:23.115000-04:00", "tags": { "Name": "Probe1" } }

有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon CloudWatch 网络状况监测仪的工作方式

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UpdateProbe