Azure Virtual Network(VNet)フローログを使用すると、仮想ネットワークを流れるIPトラフィックに関する情報をログに記録できます。New Relic VNetフローログフォワーダーを使用すると、これらのログをNew Relicに自動的に転送して、パフォーマンス分析やネットワーク接続のトラブルシューティングを行うことができます。
使い方
VNetフローログフォワーダーは、イベント駆動型のAzure Function Appです:

Event Grid → Event Hub: フローログストレージアカウントのEvent Gridサブスクリプションは、PT1H.json BLOB上の
BlobCreatedイベントをリッスンし、Event Hubに直接配信します。サブスクリプションは、ファイルごとの時系列順序を保証するために、パーティションキーとしてBLOBパス(イベントサブジェクト)を使用します。個別のリレー関数はありません。VNetFlowLogsConsumer: 以下の方法で各BLOBイベントを処理するEvent Hubトリガー関数です:
- Azure Table Storageからカーソルを読み取り、すでに処理されたものを決定します。
- PT1H.json BLOBから新しく追加されたブロックのみをダウンロードします(差分読み取り)。
- VNetフローログレコード(フロータプル)を構造化されたログエントリに解析します。
- ログAPIを介して解析されたレコードをNew Relicに送信します。
- 配信成功時に、更新されたカーソルをコミットします。
VNetFlowLogsCleanup: Azure Table Storageから古いカーソルエントリを定期的に削除するタイマー・トリガー関数(デフォルトでは毎日03:00 UTC)。
このアーキテクチャーは、効率的でインクリメンタルな処理を保証します — 新しいデータのみが読み取られて転送され、すでに確認されたレコードの重複処理を回避します。
前提条件
NewRelicの前提条件
New Relicでは次のものが必要です:
- NewRelicアカウント。持っていませんか?無料でお申し込み頂けます!クレジットカードは必要ありません。
- New Relic 。
Azureの前提条件
Azureでは次のものが必要です:
- ターゲット仮想ネットワークでVNetフローログが有効になっているAzureサブスクリプション。VNetフローログの有効化に関するMicrosoftのドキュメントを参照してください。
- VNetフローログが書き込まれるストレージアカウント(PT1H.json BLOB)。
- イベント配信用のEvent HubネームスペースとEvent Hub(ARM/Bicepテンプレートによって自動的に作成できます)。
- Function Appランタイムおよびカーソルテーブルストレージ用のAzureストレージアカウント(ARM/Bicepテンプレートによって自動的に作成できます)。
VNetフローログフォワーダーをデプロイする
ARM/Bicepテンプレートを使用して(推奨)、または手動でVNetフローログフォワーダーをデプロイできます。
New Relic VNet Flow ログ ARMテンプレートおよびBicepテンプレートは、必要なすべてのリソースの自動デプロイメントを提供します。
テンプレートは自動的に次のことを行います:
Event Hubネームスペース、Event Hub、および消費者グループを作成する
VNetフローログ関数を使用して関数アプリ(Flex従量課金プラン、Node.js 22)をデプロイする
Function Appランタイムおよびカーソルトラッキング用のストレージアカウントを作成する
PT1H.jsonのBLOB作成イベントを直接Event HubにルーティングするEvent Gridシステムトピックとサブスクリプションを作成する
必要なロール割り当てを持つマネージドIDを割り当てる
必要なすべてのアプリケーション設定を構成する
オプションで、VNetインテグレーションとプライベートエンドポイントを使用したプライベートネットワークを有効にします
以下の手順に従ってください。
one.newrelic.com > Integrations & Agentsに移動します。
Collectionsで、Loggingを選択し、Microsoft Azure VNet Flow Logsタイルをクリックします。
Select an accountドロップダウンから、ログの送信先アカウントを選択し、Continueをクリックします。
Enter your license keyステップで、Create a new keyをクリックし、Copy keyをクリックして安全な場所に保存してから、Continueをクリックします。
Deploy to Azureをクリックします。ARMテンプレートが読み込まれた状態で、Azureで新しいタブが開きます。
デプロイメントのResource groupとRegionを選択します。作成されたコンポーネントを誤って削除しないように、新しいリソースグループをお勧めします。
New Relic license keyフィールドに、先ほどコピーしたライセンスキーを貼り付けます。
New Relicエンドポイントが、アカウントに対応するもの(US、EU、またはJP)に設定されていることを確認します。
(オプション)VNet Flowログが保存されているSource Storage Account Nameを入力します。このデプロイメントと同じリソースグループ内にある必要があります。新しいソースストレージアカウントを自動的に作成するには、空白のままにします。
(オプション)Disable Public Access To Storage Accountを選択して、VNetインテグレーションとプライベートエンドポイントを備えたプライベートネットワークモードを有効にします。
(オプション)詳細設定を構成します:
- New Relic Tags:セミコロン区切りのタグ(形式:
key1:value1;key2:value2) - Max Retries:最大配信再試行回数(デフォルト:3)
- Retry Interval:再試行間のミリ秒数(デフォルト:2000)
- Function Log Level:Function Appログの詳細度 —
Trace、Debug、Information、Warning、またはError(デフォルト:Information) - Max Event Batch Size:バッチごとに処理されるEvent Hubイベントの最大数(デフォルト:10)
- Min Event Batch Size: バッチあたりのEvent Hubイベントの最小数(デフォルト: 5)
- Max Wait Time:処理前にトリガーがバッチを満たすのを待機する最大時間。
hh:mm:ssとして指定します(デフォルト:00:00:30) - Event Hub Scaling Mode:
Basic(1スループット単位、4パーティション、自動拡張なし — 低~中トラフィック)またはEnterprise(最大40スループット単位までの自動拡張、32パーティション — 高スループットボリューム)(デフォルト:Basic)
- New Relic Tags:セミコロン区切りのタグ(形式:
Review + createをクリックし、設定を確認して、Createをクリックします。
New Relicに戻り、Create log partitionステップでCreate partitionをクリックします。これにより
Log_VNET_Flows_Azureデータパーティション(ルール:instrumentation.name = 'vnet-app'、STANDARD保持)が作成されるため、VNetフローログは他のログとは別に保存され、クエリされます。アカウントにLog_VNET_Flows_Azureパーティションがすでに存在する場合は、Continueをクリックしてこのステップをスキップします。Test your logsステップで、
SELECT * FROM Log_VNET_Flows_Azureを実行してデータが到着していることを確認し、See your dataをクリックします。デプロイメントアーキテクチャー
ARM/Bicepテンプレートは、2つのデプロイメントモードをサポートしています:
標準デプロイメント(デフォルト):
Event Gridを使用して、ソースストレージアカウントでのBLOB作成をモニターします
サブジェクトをパーティションキーとして使用し、順序付けられた処理のためにイベントを直接Event Hubにルーティングします
Function AppでVNetフローログを処理し、New Relicに転送します
Function App、そのストレージアカウント、およびEvent Hubでのパブリックネットワークアクセスを有効にします
プライベートネットワーキングのデプロイメント(オプション、
disablePublicAccessToStorageAccount=true):標準デプロイメントのすべての機能が含まれています
Function App、そのストレージアカウント、およびイベントハブをプライベート仮想ネットワーク内に分離し、それらへのパブリックネットワークアクセスを無効にします
ストレージサービス(BLOB、ファイル、キュー、およびテーブル)のプライベートエンドポイントとのVNetインテグレーションを追加します
名前解決用のプライベートDNSゾーンを作成します
パブリックネットワークアクセスを有効にしておく必要があるソースストレージアカウント(VNet Flowログを含む)は変更しません
手動でのデプロイメントを希望する場合、またはカスタム設定が必要な場合:
- azure-vnet-flow-logs Function AppをAzureサブスクリプションにデプロイします。
VNetFlowForwarder関数(VNetFlowLogsConsumerおよびVNetFlowLogsCleanup)がデプロイメントに含まれていることを確認します。- 以下にリストされている必要な環境変数(アプリケーション設定)を構成します。
- フローログストレージアカウントにEvent Gridサブスクリプションを設定し、イベントサブジェクトをパーティションキーとして使用して、
BlobCreatedイベントを直接Event Hubにルーティングします。
構成
Azure Function Appで次のアプリケーション設定を構成します:
必須設定
環境変数 | 説明 |
|---|---|
| New Relicライセンスキー。 |
| VNet Flowログが保存されているAzure Storageアカウントの接続文字列。 |
| カーソル状態を永続化するために使用されるAzure Storageアカウントの接続文字列(ソースと同じにすることができます)。 |
| BLOB作成イベントを消費者関数に配信するEvent Hubの接続文字列。 |
| Event Hubインスタンスの名前。 |
オプション設定
環境変数 | 説明 | デフォルト |
|---|---|---|
| New Relic Logs APIエンドポイント。EUアカウントには
を使用します。 |
|
| 転送されるすべてのログに追加するセミコロン区切りのタグ。形式:
| なし |
| New Relicへの配信再試行の最大数。 |
|
| 再試行間の間隔(ミリ秒単位)。 |
|
| イベントHub消費者グループ。 |
|
| クリーンアップジョブによって削除される前にblob-cursorレコードを保持する時間数。 |
|
| カーソルクリーンアップタイマートリガーのNCRONTABスケジュール。 |
(毎日03:00 UTC) |
| フォワーダーがポイズンイベントとしてスキップするまでの、BLOBあたりの連続失敗回数。 |
|
フローログデータの表示
構成が完了すると、VNetフローログデータがNew Relicに表示されます。NRQLを使用してクエリできます:
SELECT * FROM Log_VNET_Flows_Azure
このデータはConversationsビューでも視覚化できます。このビューでは、上位のフローが送信元、方向、プロトコル、および宛先ごとにグループ化されます:

各フローログレコードには、次の属性が含まれます:
属性 | 説明 |
|---|---|
| 送信元IPアドレス |
| 送信先IPアドレス |
| 送信元ポート |
| 宛先ポート |
| プロトコル(TCP、UDP、およびICMP) |
| Trafficの方向(インバウンド、アウトバウンド) |
| フロー状態:
、
、
または
。拒否されたフローはここでは
として表現されます — 個別のアクション属性はありません。 |
| 暗号化ステータス:
、
、または
理由コード(たとえば、
) |
| 送信元から宛先までのバイト数 |
| 宛先から送信元へのバイト数 |
| 送信元から宛先へのパケット |
| 宛先から送信元へのパケット |
| フローに関連付けられたアクセス制御リストID |
| フローに一致したNSG/ACLルール名 |
| モニターされるターゲットリソースの完全なAzureリソースID |
| 仮想ネットワーク名(ターゲットがVNetまたはサブネットの場合) |
| サブネット名(該当する場合) |
| フローログレコードに関連付けられたMACアドレス |
| ログカテゴリ(たとえば、
) |
| フローログレコードからの操作名 |
| VNetフローログのスキーマバージョン |
| フローログリソースの固有識別子 |
| フローログのAzureリソースID |
ヒント
転送された各ログには、共通属性instrumentation.provider(azure)、instrumentation.name(vnet-app)、およびinstrumentation.version(フォワーダーのバージョン)に加えて、NR_TAGSで設定したカスタムのキーの値のペアも含まれます。生のフロータプルCSVは、ログのmessageフィールドに保持されます。
トラブルシューティング
欠落しているフローログデータ、重複したレコード、またはスキップされた(ポイズン)イベントのヘルプについては、Azure VNet Flow ログ監視のトラブルシューティングを参照してください。