

# 使用 AWS CLI 的 CloudWatch 网络监控示例
<a name="cli_networkmonitor_code_examples"></a>

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

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

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

**Topics**
+ [操作](#actions)

## 操作
<a name="actions"></a>

### `create-monitor`
<a name="networkmonitor_CreateMonitor_cli_topic"></a>

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

**AWS CLI**  
**示例 1：创建具有聚合周期的网络监测仪**  
以下 `create-monitor` 示例创建一个名为 `Example_NetworkMonitor` 的监测仪，其中 `aggregationPeriod` 设置为 `30` 秒。该监测仪的初始 `state` 将是 `INACTIVE`，因为没有探测器与之关联。只有在添加探测器后，状态才会变成 `ACTIVE`。您可以使用 [update-monitor](https://docs.aws.amazon.com/cli/latest/reference/networkmonitor/update-monitor.html) 或 [create-probe](https://docs.aws.amazon.com/cli/latest/reference/networkmonitor/create-probe.html) 命令将探测器添加到此监测仪中。  

```
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 网络状况监测仪的工作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/nw-monitor-how-it-works.html)。  
**示例 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 网络状况监测仪的工作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/nw-monitor-how-it-works.html)。  
**示例 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 网络状况监测仪的工作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/nw-monitor-how-it-works.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [CreateMonitor](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmonitor/create-monitor.html)。

### `create-probe`
<a name="networkmonitor_CreateProbe_cli_topic"></a>

以下代码示例演示了如何使用 `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 网络状况监测仪的工作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/nw-monitor-how-it-works.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》中的 [CreateProbe](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmonitor/create-probe.html)**。

### `delete-monitor`
<a name="networkmonitor_DeleteMonitor_cli_topic"></a>

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

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

```
aws networkmonitor delete-monitor \
    --monitor-name Example_NetworkMonitor
```
此命令不生成任何输出。  
有关更多信息，请参阅《Amazon CloudWatch 用户指南》**中的 [Amazon CloudWatch 网络状况监测仪的工作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/nw-monitor-how-it-works.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DeleteMonitor](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmonitor/delete-monitor.html)。

### `delete-probe`
<a name="networkmonitor_DeleteProbe_cli_topic"></a>

以下代码示例演示了如何使用 `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 网络状况监测仪的工作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/nw-monitor-how-it-works.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》中的 [DeleteProbe](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmonitor/delete-probe.html)**。

### `get-monitor`
<a name="networkmonitor_GetMonitor_cli_topic"></a>

以下代码示例演示了如何使用 `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 网络状况监测仪的工作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/nw-monitor-how-it-works.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetMonitor](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmonitor/get-monitor.html)。

### `get-probe`
<a name="networkmonitor_GetProbe_cli_topic"></a>

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

**AWS CLI**  
**查看探测器的详细信息**  
以下 `get-probe` 示例返回与名为 `Example_NetworkMonitor` 的监测仪相关且 `probeID` 为 `probe-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 网络状况监测仪的工作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/nw-monitor-how-it-works.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetProbe](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmonitor/get-probe.html)。

### `list-monitors`
<a name="networkmonitor_ListMonitors_cli_topic"></a>

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

**AWS CLI**  
**示例 1：列出所有监测仪（单个监测仪）**  
以下 `list-monitors` 示例返回仅包含单个监测仪的列表。该监测仪的 `state` 为 `ACTIVE`，`aggregationPeriod` 为 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 网络状况监测仪的工作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/nw-monitor-how-it-works.html)。  
**示例 2：列出所有监测仪（多个监测仪）**  
以下 `list-monitors` 示例返回包含三个监测仪的列表。其中一个监测仪的 `state` 为 `ACTIVE` 并且生成 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 网络状况监测仪的工作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/nw-monitor-how-it-works.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [ListMonitors](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmonitor/list-monitors.html)。

### `list-tags-for-resource`
<a name="networkmonitor_ListTagsForResource_cli_topic"></a>

以下代码示例演示了如何使用 `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 网络状况监测仪的工作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/nw-monitor-how-it-works.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [ListTagsForResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmonitor/list-tags-for-resource.html)。

### `tag-resource`
<a name="networkmonitor_TagResource_cli_topic"></a>

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

**AWS CLI**  
**标记资源**  
以下 `tag-resource` 示例使用 `Environment=Dev` 和 `Application=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 网络状况监测仪的工作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/nw-monitor-how-it-works.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [TagResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmonitor/tag-resource.html)。

### `untag-resource`
<a name="networkmonitor_UntagResource_cli_topic"></a>

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

**AWS CLI**  
**取消标记资源**  
以下 `untag-resource` 示例将键-值对为 `Environment Application` 的 `tag-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 网络状况监测仪的工作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/nw-monitor-how-it-works.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [UntagResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmonitor/untag-resource.html)。

### `update-monitor`
<a name="networkmonitor_UpdateMonitor_cli_topic"></a>

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

**AWS CLI**  
**更新监测仪**  
以下 `update-monitor` 示例将监测仪的 `aggregationPeriod` 从 `60` 秒改为 `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 网络状况监测仪的工作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/nw-monitor-how-it-works.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [UpdateMonitor](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmonitor/update-monitor.html)。

### `update-probe`
<a name="networkmonitor_UpdateProbe_cli_topic"></a>

以下代码示例演示了如何使用 `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 网络状况监测仪的工作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/nw-monitor-how-it-works.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》中的 [UpdateProbe](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmonitor/update-probe.html)**。