オンプレミス環境とAzureを接続するためには仮想ネットワークゲートウェイ(VPNゲートウェイ)が必要となります。VPNゲートウェイはAzure仮想マシンと比べると、管理できる範囲が少ないサービスです。ですが、オンプレのネットワーク機器と同様にネットワーク通信を快適に、継続的に行うためにVPNゲートウェイの状態を監視したいという声が多く聞かれます。
Azure仮想マシンの監視であれば、CPU使用率などのメトリックをもとにアラートを作成することが可能ですが、VPNゲートウェイでは同じ方法をとることができません。それでは、どのようにVPNゲートウェイを監視すればよいのでしょうか。今回は小ネタになりますが、VPNゲートウェイを監視する方法について投稿します。
1. 「リソース正常性」による監視
最もオーソドックスなVPNゲートウェイの状態確認方法は、VPNゲートウェイのメニューから「リソース正常性」で現在のVPNゲートウェイの状態を知ることです。この方法では、ポータルからの操作でゲートウェイの状態が確認でき、過去のステータス履歴も見ることができます。
VPNゲートウェイの状態が正常であれば、「使用可能」という表示になります。
正常性の履歴の中で、「このゲートウェイの正常性状態が不明です」というログが散見されるかと思います。このログは、該当の時間帯にVPNゲートウェイが落ちていた、というわけではなく、単純にVPNゲートウェイの状態取得に失敗したという結果によるものです。
VPNゲートウェイに何らかの異常が発生していることが検知できた場合は、その旨が示されたエラーログが記録されています。例えば、VPNゲートウェイがメンテナンスに入った場合には、以下のようにVPNゲートウェイがスタンバイ状態に入ったことが検知されたログが取得されます。
VPNゲートウェイの状態の履歴を一覧で見ることは可能ですが、VPNゲートウェイに異常が発生した場合でもそれを通知する事はできないため、以上に気づいたときの確認手段の役割になります。
2. プローブURLによる監視
VPNゲートウェイのプローブURLにアクセスすることで正常性を確認する方法です。
以下の参考ページにある手順7のURLへアクセスすると、VPNゲートウェイが生きているか確認することができます。
“https://<VPNゲートウェイのパブリックIPアドレス>:8081/healthprobe”
参考:トラブルシューティング: Azure サイト間 VPN が動作を停止して接続できない
正常に稼働していれば、以下のような情報が表示されます。(アクセス時に警告が表示されますが、そのまま表示する。)
<?xml version=”1.0″?> <string xmlns=”http://schemas.microsoft.com/2003/10/Serialization/”>Primary Instance: GatewayTenantWorker_IN_0 GatewayTenantVersion: < VPNゲートウェイのパブリックIPアドレス> OSVersion: Windows Server 2012 R2 Datacenter</string> |
ブラウザさえ使えれば利用できる手軽な監視方法です。ただし、この方法ではVPNゲートウェイインスタンスの生存確認は行えますが、VPNゲートウェイとしての機能が正常に動作しているかは確認できません。
3. 自動監視スクリプトによる構成
今回紹介する中では一番スマートな監視方法です。こちらはAzure Automationを利用して、定期的に監視スクリプトを実行し、VPNゲートウェイの状態を取得します。もしもVPNゲートウェイに何らかの異常があればメール通知を行うものとなります。
利用するAzureのサービスは以下になります。
サービス名 | 用途 |
Azureオートメーション | 監視スクリプト定期実行 |
VPNゲートウェイ | 監視対象 |
Network Watcher | VPNゲートウェイ状態取得 |
Azureストレージ | VPNゲートウェイ状態ログ保存 |
以下の図のような構成イメージになります。
今回参考としたスクリプトはマイクロソフトが以下のページで公開しているコードになります。
参考:Network Watcher のトラブルシューティングを使用した VPN ゲートウェイの監視
変数 | 説明 |
O365AutomationCredential | メール送信アカウントの資格情報 |
fromEmail | 送信者メールアカウント |
toEmail | 受信者メールアカウント |
smtpServer | SMTPサーバのFQDN |
smtpPort | SMTPサーバのポート番号 |
runAsConnectionName | オートメーションの接続名 |
subscriptionId | サブスクリプションID |
Region | ゲートウェイがデプロイされているリージョン |
vpnConnectionName | 監視対象VPNゲートウェイの接続名 |
vpnConnectionResourceGroup | 監視対象VPNゲートウェイのリソースグループ名 |
storageAccountName | ログ保存先ストレージアカウント名 |
storageAccountResourceGroup | ストレージアカウントのリソースグループ名 |
storageAccountContainer | ログ保存先コンテナ名 |
この中でいくつかの項目に関して以下に説明します。
- O365AutomationCredential
VPNゲートウェイの状態監視で以上を検知した際にメールを送信するアカウントの資格情報を指定します。こちらはポータルなどで事前に登録しておきます。
「Automationアカウント」のメニューから「資格情報」を選択します。「資格情報の追加」からメール発信時に利用するアカウントの資格情報を入力して登録します。変数には資格情報の「名前」を指定します。
- smtpServer・smtpPort
smtpServer:smtp.office365.com
smtpPort:587
M365アカウントでメールを通知する際の設定です。こちらは環境に合わせて設定してください。
- runAsConnectionName
オートメーションスクリプト実行時に、Azureリソースの情報を取得するためのアカウントの情報を指定します。通常はオートメーションの作成を行うと自動で作成されています。
「Automationアカウント」のメニューから「接続」を選択します。オートメーションアカウント作成時に既定で接続が作られているので、「AzureRunAsConnection」を利用します。
このアカウント情報のうち、「接続」に記載のある名前「AzureRunAsConnection」を変数に指定します。この画面に接続に必要な情報が表示されていますが、スクリプトではこれらの情報を自動で取得し、引数としてAzureログイン時に利用しています。
本監視スクリプトのフローは以下のとおりです。
「パラメータの定義」では、前述のパラメータを変数として宣言します。
「メール通知アカウント認証情報取得」では、異常検知時の通知用メールアカウント情報を取得します。
「オートメーションアカウントログイン」では、Azureの各リソース情報を取得するためにオートメーション用アカウントでログインします。
「リソース情報取得」では、監視に利用するAzureの各リソース情報を取得します。
「VPNステータス取得」では、Azure Network Watcherの機能でVPNゲートウェイの状態を取得します。ステータスが正常である場合はログをBLOBストレージへ保存し終了します。異常を検知した際はエラーメッセージがメールで通知されます。
正常時は以下のようなメッセージがログに出力されて保存されます。(Connection Status is: Healthy)
例として、VPNゲートウェイがメンテナンスに入るときは以下のようなメッセージが通知されます。エラーメッセージの一覧は参考のページで確認できます。
参考:VPN Gateway を使用してオンプレミスの接続を診断する
スクリプトを作成したら「Automation」からRunbookを作成し、「スケジュール」で実行する時間を指定します。Runbookの実行スケジュールは1時間おきの実行が最短ですので、それより短い頻度で実行する場合は複数のスケジュールを作成します。(毎時00分実行、毎時15分実行、毎時30分実行、など)
4. VPNゲートウェイ状態の異常判定基準
VPNゲートウェイで「異常」と判定されるのは、アクティブ状態のVPNゲートウェイすべてでエラーメッセージが取得されたときです。
通常VPNゲートウェイは2つのVPNゲートウェイインスタンスがアクティブ/スタンバイでデプロイされます。スタンバイとなっているVPNゲートウェイインスタンスはパブリックIPを持たないため、状態を取得することができません。
アクティブ/アクティブでVPNゲートウェイを構成した場合は、両方のインスタンスを監視することができます。このとき、本スクリプトではどちらか一方だけでもインスタンスが正常状態を返した場合、正常判定となります。
また、VPNゲートウェイインスタンスではなく、「接続」を監視対象とした場合は、冗長はないためVPN接続がされているかどうかの結果が確認できます。
5. おわりに
今回はVPNゲートウェイの監視方法を紹介しました。システムを利用するにあたって、監視は非常に重要な要素であると考えられます。本監視スクリプトでは、Azureから提供されるサービスを利用してVPNゲートウェイの監視を実現しました。ネットワーク監視サービスのNetwork Watcherや統合的な監視プラットフォームとなるLog Analyticsはこの他にも多くの機能が盛り込まれています。これらを活用すれば、クラウドシステムの監視を実現することが可能です。
この記事を書いた人
- Azure導入支援デスク 編集部
-
こんにちは!双日テックイノベーション(旧:日商エレクトロニクス)では、Microsoft Azure活用に関する有益な情報を皆様にお届けしていきます。Azure移行、データ活用、セキュリティなどに関するお困りごとや、Microsoft Azureに関する疑問点などお気軽にご相談ください。
ブログにしてほしいネタなどのリクエストもお待ちしております。
この投稿者の最新の記事
- 2024年9月12日ブログ2024年版 最新のデータ活用基盤とは?グローバル企業の事例も紹介!
- 2024年7月16日事例Azureデータ活用基盤導入事例:第一フロンティア生命保険株式会社
- 2024年3月27日ブログデータレイクとは? ~DWHとの違い、メリット、活用例などをわかりやすく解説~
- 2024年3月6日ブログデータカタログとは?~機能、導入のメリット、導入方法まで解説~