使用 AWS CLI 的 CloudWatch Network Monitoring 範例 - AWS Command Line Interface

使用 AWS CLI 的 CloudWatch Network Monitoring 範例

下列程式碼範例示範如何使用 AWS Command Line Interface 搭配 CloudWatch Network Monitoring 來執行動作,並實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境中查看內容中的動作。

每個範例均包含完整原始程式碼的連結,您可在連結中找到如何在內容中設定和執行程式碼的相關指示。

主題

動作

以下程式碼範例顯示如何使用 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,直到監視器是 ACTIVE 之前都是 PENDING。這可能需要幾分鐘時間,此時 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 的監視器,其中 aggregationPeriod30 秒。命令也會建立一個使用 ICMP 通訊協定並包含標籤的探查。由於請求中未傳遞任何 aggregationPeriod,因此將 60 秒設定為預設值。具有探查的監視器的 state,直到監視器是 ACTIVE 之前都是 PENDING。這可能需要幾分鐘時間,此時 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 直到監視器是 ACTIVE 之前,都是 PENDING。這可能需要幾分鐘時間,此時 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 直到監視器是 ACTIVE 之前,都是 PENDING。這可能需要幾分鐘時間,此時 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 之監視器相關聯的 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 網路監視器如何運作

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetProbe

以下程式碼範例顯示如何使用 list-monitors

AWS CLI

範例 1:列出所有監視器 (單一監視器)

下列 list-monitors 範例只會傳回單一監視器的清單。監視器的 stateACTIVE,且其具有 60 秒的 aggregationPeriod

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 指標。這三個監視器都使用 60 秒的 aggregationPeriod

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 範例標記名為 Example_NetworkMonitor 且具有 Environment=DevApplication=PetStore 標籤的監視器。

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 範例從與名為 Example_NetworkMonitor 之監視器的關聯中,移除具有鍵值對 Environment Applicationtag-keys 參數。

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