Network Intelligence Center Network Topology の使い方

Network Intelligence Centerは Google Cloudネットワークの可視性、モニタリング、トラブルシューティングを管理するためのコンソールサービスです。
Network Intelligence Centerの機能である Network Topologyについて説明します。

グラフインターフェース
================

* ネットワークトポロジは、Google Cloudを跨ぐネットワーク情報をグラフ形式でレイアウトするサービスです。Google Cloud上にデプロイされた情報をグラフ形式で確認する事が可能です。

 * この例では、3つのビジネスリージョン (Americas、EMEA、APAC) からのクライアントリクエストと Google Cloudリージョン (us-central1)、またはその内部にあるゾーン (us-central1-a/us-central1-b) との接続性を表現しています。 
**グラフ中のノードと線は、ネットワークの関係性と接続性を表現します。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1597898/634073c2-fd2c-467c-bc86-caa4304ae7fc.png)

* 包含関係があるリソースを**階層エンティティ**と呼び、それらは展開、折り畳みが可能となり、階層との関係性を確認する事も可能です。

![Videotogif (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1597898/dda4adf5-4496-e39b-1814-2696c89eec7d.gif)


構成要素
====
公式ドキュメント上に Cloudコンソール上に表現されるネットワークトポロジの要素が記載されています。

* グラフ インターフェースの概要

https://cloud.google.com/network-intelligence-center/docs/network-topology/concepts/graph-overview

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1597898/d1acb860-9196-2610-1334-45751e7aa7e5.png)


**1. Configuration pane**
グラフの表示または非表示にするエンティティを選択/クリアする項目です。

**2. Show all projects in the Workspace checkbox**
CloudMonitoringメトリックスコープ内のすべてのプロジェクトが表示されます。
(現在のプロジェクトのみを表示するには、チェックボックスをオフにします。)

**3. Project aggregation checkbox**
リソースが属するプロジェクトごとにリソースをグループ化する場合に選択します。

**4. Show connections for child nodes only on focus checkbox**
リージョンなど上位エンティティ間のトラフィックパスのみを表示する場合に選択します。

**5. Edge metric drop-down**
ノード間の線が表現する指標を、トラフィック/レイテンシ/パケットロスの3種類から選択する事が可能です。

**6. Filter**
グラフで表現するリソースを key-value 形式でFilterする事が可能です。

**7. Entity details pane**
グラフのカーソルから選択したエンティティに関する詳細情報です。

**8. Traffic paths**
エンティティ間の通信パスを示す線です。

**9. Entities and connections**
アイコンをクリックして、それらに関する情報を表示できます。
またはエンティティの展開または折りたたみます。

**10.11. Timeline**
タイムラインは、スライダーを使用して選択できる1時間ごとのセグメントを確認出来ます。
また、横の日付選択を使用して別の日付のグラフを確認する事も可能です。

**12. Time slider**
ドラッグして表示する時間帯を選択します。

要素と機能
========
インターフェースの構成要素を踏まえ、機能概要を記載します。

- ネットワークトポロジを使用するための**追加の構成やエージェントは必要ありません。**
- ネットワークトポロジは、**選択した期間中に通信（送受信されたトラフィック）があった場合にのみ、エンティティと接続を可視化します。また、少なくとも一方がトラフィックを送信している場合にエンティティを接続します。**
- 過去のセグメントを表示した場合、エンティティと接続性は選択した 1 時間内に少なくとも片方からの通信が存在した場合に表示されます。**指標(トラフィック/レイテンシー/パケットロス)の値は、選択した時間の最後の 5 分間の平均、レイテンシでは中央値が使用されます。**例として、前日の午前 11:00 から午後 12:00 に実行されたセグメントを選択し、現在選択されている指標が Trafficの場合、オーバーレイの値は午前 11:55 から午後 12:00 の平均です。
- **6 週間の履歴がキャプチャされます。**タイムラインから過去週間までのグラフを可視化出来ます。
- App Engine Memcache、Filestore、Memorystore、Cloud SQL、パートナー ソリューションや Marketplaceソリューションなど、Googleマネージド サービス間のトラフィックが表示されないものがあります。
- 上記以外の Google Cloudで使用される様々なマネージドサービスの通信は可視化できるようです。また、**リージョン、VPC、サブネット単位のネットワークの区画を表現したり、VPN、Cloud Interconnect、ピアリング等の接続性の表現も可能です。**
- Cloud CDNを介してコンテンツを配信する場合、ネットワーク トポロジで観察される IP アドレスが外部クライアントの実際のアドレスではない可能性があります
- エンティティ間のトラフィック スループットや VM インスタンスの CPU メモリ 使用率などの指標を示す、個別の時系列グラフも表示します。

利用手順
========

- ネットワークトポロジを使用するためにはロールから `viewer` 以上の権限が必要となります。複数のプロジェクトの情報を表示するためには、対象プロジェクトの viewer権限以上が付与されていれば表示可能です。

- Google Cloudのコンソール画面のサービス一覧上のネットワークインテリジェンスからネットワークトポロジを選択します。

- 構成要素の項目のように各インターフェースの要素が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1597898/70f7ee24-43de-0e63-6761-a90f898003d1.png)

- Configuration paneから**外部クライアントをクリア**にして階層エンティティを展開すると、以下のように GKE クラスタとマネージドサービスのみのトラフィックが表現されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1597898/53af23e5-c9f1-0492-484f-29ae87dca40f.png)

- logging にカーソルを合わせてみます。そうすると、Entity details paneが右側に表示され、赤枠に記載された上り下りのトラフィックが確認出来ます。トラフィックは Metrics Exploerからも確認する事が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1597898/7d1ebc43-9aa8-da34-8886-3fd3042bb019.png)

- フィルタリングを使用して **test-subnet** のみを表示させます。対象のサブネット上にあるリソースから マネージドサービスに対してトラフィックが発生している事が確認出来ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1597898/ee66f9dc-a299-db73-9f50-11cad413f450.png)

トラブルシューティング
====================
ロードバランサーへのトラフィック(上り、下り)を時間帯から確認しトラブルシューティングを行っているユースケースが記載されています。

* ユースケース: ネットワーク接続のトラブルシューティング 

https://cloud.google.com/network-intelligence-center/docs/network-topology/concepts/troubleshooting-network-connectivity

これはあくまで例ですが、グラフィカルなサービスのため直観的に問題の意図口を掴めそうです。

使いどころ
=========

- 現行のインフラストラクチャを理解する事が出来ます。インフラエンジニアには重宝するサービスと感じました。
- トラフィックをノード間の線として表現されるため、ネットワークの構成、構築・開発段階での状況把握としても利用出来そうです。
- 過去の情報を追う事も可能なため、上記のように時間帯からトラブルシューティングツールとしても利用出来そうです。