New Relic estimate data cost conceptual graphic

はじめに

去る2022年12月15日、Google CloudのVPC flow logsとの連携サポートが発表されました。 

本機能の大きな特徴は次の4つです。

  1. New Relic で VPC 内のネットワークトラフィックを監視し、アラートできる
  2. 毎秒のバイトやパケット、各 TCP または UDP ポートの毎秒のアクセプトやリジェクトなどのネットワークパフォーマンスメトリクスを視覚化できる
  3. フローログの偏差を調査し、ネットワークのボリュームや健全性における予期せぬ変化を追跡できる
  4. 過度に制限されたセキュリティ・グループ・ルールや悪意のあるトラフィックの可能性のある問題を診断できる

これから、実際に設定し、使うまでの流れを解説します。

事前準備

本記事では実際にUIより提供される操作手順にあわせ、Google Cloud側の設定はCLIで行います。 あらかじめterminalなどでgcloudコマンドが実行できるよう設定しましょう。

※CLIとは別にterraformによる設定手順も提供されます。ご自身が管理する環境に合わせ、選択ください。

VPC flow logsのログ転送ではCloud Pub/Sub及びCloud Dataflowを利用します。 APIが有効になっていない場合は、あらかじめ有効にします。

参考画像:VPC Flow Logs ログ連携アーキテクチャ

flowlog

両サービスはCLIから下記のコマンドで有効化できます。

gcloud services enable pubsub
gcloud services enable dataflow
flowlog03
  1. Select your data よりGCP VPC Flow Logsを選択
flowlog04
  1. GCP Projectに対象となるgcp project idを、Regionに対象リージョンをそれぞれ設定
flowlog04
  1. VPC flow logsの有効化
flowlog05

提示されたcommandを実行し、対象リージョンにあるsubnetのVPC flow logsを有効化します。
※提示されたcommandのうち、SUBNET_NAME, (AGGREGATION_INTERVAL, SAMPLE_RATE)はそれぞれ手動で記入する必要があります。 

SUBNET_NAME: 対象サブネット名
AGGREGATION_INTERVAL: インターバル(デフォルト 5秒)
SAMPLE_RATE: ログのサンプリングレート(デフォルト 50%)
※データの流量が多くおおまかな情報が取れれば良い場合はデフォルトの50%で、セキュリティ上詳細な情報が欲しいなど要件に応じて割合を調整しましょう

flowlog06
  1. Cloud LoggingからCloud Pub/SubへのSinkを設定
flowlog07

今回の例では、一つのsubnetのみを対象とします。
Flow Log Filter Template: A Subnet を選択します。
Subnet Name: 対象のsubnet_nameを入力します。
※Sink Filterのcommandが表示されますが、確認用となり手順5の段階では使用しません。 
 

flowlog08
  1. Pub/Subのリソース作成
flowlog009

表示されたcommandを実行し、Topic及びSubscriptionを作成します。

flowlog10
  1. LoggingのSinkを作成
flowlog11 (1)

LoggingからPub/Subへ転送するルールを作成します。

flowlog12
  1. Pub/Subのpermissionを設定
flowlog13
flowlog14

表示されたcommandを実行し、返ってきた結果 "serviceAccount:p************-*****@gcp-sa-logging.iam.gserviceaccount.com" を Copy the writer identity from the above command here.にペーストします。

flowlog15

それぞれcommandを実行し、service accountが補完された形でjsonに吐き出されますので、ポリシーとして設定します。

  1. Dataflow jobの作成
flowlog16

commandを実行し、Dataflow jobを作成します。

flowlog17

以上で設定は完了です。

ここまで正常に実行できていれば、Google CloudのWebコンソールなどで対象のDataflow jobのStatusがRunningとなり、JOB GRAPHでもデータが流れていることを確認できます。

flowlog18

それでは、実際にどのようにビジュアライズされるか見ていきましょう

GCP VPC Flow Logs

flowlog19

画面中央丈夫のConversationsはデフォルトでsource ip、subnet、dest ipの情報が可視化されます。
この図では一番上のsource ipからのトラフィックが大半を占めているということが一目でわかるかと思います。


まとめ

ConversationsではportなどVPC Flow Logに含まれるさまざまな情報も含めて可視化することができます。
例えば「特定のVMに対してのみとあるプロトコルのトラフィックが集中している」ようなケースでも直感的に見分けることの助けとなります。

その他にもTotal Trafficをはじめとしたグラフ類やログなどさまざまな情報がひとつの画面に収められています。
VPC Flow Logをご活用いただき、ネットワークを起点にボトルネックの検出やMTTxの短縮など幅広い分野でご活用いただけますと幸いです。