Azure Monitor Private Link Scope (AMPLS) を使ってAzure Monitor(Log Analytics)に閉域接続を行う Part2

目次

はじめに

一年以上前にAMPLSがGAしたときに一度検証しましたが、その時はAzure VNET内でLog AnalyticsにプライベートIPによる接続設定を行いました。

過去の記事は「こちら

今回は、オンプレミス上にある非Azure VMに対して、閉域ネットワーク経由でLog Analyticsに各種メトリックを送信したいと思います。

閉域ネットワーク構成

基本的にAzureと閉域接続できる環境であれば、なんでも大丈夫でしょう。

お金のかかる順で

ExpressRoute > VPN Site to Site > Open VPN or Wireguard

などから好きな接続方法を選ぶがいいでしょう。

私はお金がないので、以前ポストしたWireguardによるAzureとオンプレとの閉域接続の環境を流用します。

過去の記事は「こちら

接続構成図

オンプレミスとのWireguardによる接続までは既に済んでいます。

Azure VNETが192.168.2.0/24で、オンプレミスは192.168.1.0/24で相互にルーティングが正常に行える状態となっています。

こちらに、AMPLSのエンドポイントを準備して、オンプレミスから閉域接続でLog Analyticsにログを送り込みます。

img

とりあえずAMPLSやLog Analyticsを作る前のリソース一覧は以下の通り。

img

Log Analyticsワークスペースの作成

とりあえず今回の検証専用のLog Analyticsワークスペースを作成します。

img

リージョンはとりあえずVNETと同じ東日本を選択。名前は適当で。

img

価格レベルもデフォルトでいいでしょう。

img

「確認及び作成」を押してしばらく待つと作成完了です。

img

AMPLSの作成

Azureポータルの検索テキストフィールドに「azure moni」あたりまで打ち込むと「Azure Monitor Private Link スコープ」が一覧に現れるので、そちらを選択します。

img

「Azure Monitor Private Link スコープの作成」を選択します。

img

リソースを作成する場所は、VNETやLog Analyticdと同じリソースグループを選択します。名前は適当で良いです。

img

作成完了しました。

img

AMPLSにLog Analyticsを紐づけ

AMPLSのメニューから「Azure Monitorリソース」を選択後、「+追加」を押します。

img

一覧から先ほど作成したLog Analyticsワークスペースを選択して、適用します。

img

一覧に無事追加されました。

img

AMPLSのプライベートエンドポイントを作成

AMPLSのメニューから「プライベートエンドポイント接続」を選択後「+プライベートエンドポイント」を押します。

img

インスタンスの名前は適当で、リージョンはVNETと同じ東日本を選択します。

img

リソースの種類は「Microsoft.Insights/privateLinkScopes」を選択、リソースから該当リソース(先に作成したAMPLSの名称)、対象サブリソースには「azuremonitor」を選択します。

img

仮想ネットワークとサブネットを選択します。「プライベートDNS統合」は今回の検証では統合していますが、こちらは「いいえ」でもよいです。

こちらの設定を行うと、Private DNS Zoneリソースが作成されて、Azure VNET内からはAMPLSの(プライベートな)エンドポイントにアクセスするための名前解決が行えるようになるのですが、オンプレミスからはこちらのPrivate DNS Zoneに対して名前解決させることが出来ないため意味がありません。

このAMPLSをAzure VNET内からも利用する場合には無論意味のある設定ですので、実際の環境に合わせて設定しましょう。

img

最後、作成が完了するとプライベートエンドポイントのリソースも出来上がります。

img

DNSレコードの確認とオンプレミスへの設定

プライベートエンドポイントの「DNSの構成」メニューを開くと、NICに対して複数のプライベートアドレスとそれに対応したFQDNの一覧が確認できます。

img

これをすべて、オンプレミス側ネットワークのDNSサーバに登録する必要があるのですが、今回はオンプレミス側のサーバが1台のみであることと、検証目的であることからUbuntu Serverの /etc/hosts に直接書くことにしました。

img

念のためオンプレミスのUbuntu Serverから「api.monitor.azure.com」にアクセスして、ちゃんとプライベートIPアドレス経由で接続されることを確認しました。

img

Log Analyticsのネットワーク分離設定

AMPLSの設定でLog Analyticsを追加すると、Log Analyticsのメニューに「ネットワーク分離」が追加されます。

こちらの「プライベート リンク スコープを通じて接続されていないパブリック ネットワークからのデータ インジェストを受け入れる」を「いいえ」にしておくと、AMPLS経由ではないデータ送信を拒否できるため、今回の設定が正しいか確認するために指定しておきます。

img

オンプレサーバにエージェント追加

今回の記事ではLog Analyticsエージェントだけをインストールします。Azure VMであればポータルからぽちぽちしてエージェントの追加が行えるのですが、オンプレミスサーバの場合はLog Analyticsのメニューから「エージェント管理」「Linuxサーバー」を選択後に表示されるインストールコマンド部分をコピペして、直接Ubuntu Server上で実行します。

img

しばらく待つと、最後にexiting with code 0と表示されるので問題なくインストールされたと思われます。

img

ハートビートログの確認

先のLog Analyticsエージェントのインストールが終わった直後はまだデータが溜まっていないため、10分くらいは待ったあと、Heartbeatログにレコードが追加されていることを確認します。

img

パフォーマンスデータの収集設定

Log Analyticsの「エージェント構成」から、「Linuxパフォーマンスカウンタ」を選択後「推奨されるカウンターの追加」をとりあえず押します。

img

推奨設定のカウンターが自動的に追加されるので「適用」を押します。

img

その後はしばらく待つと、Log AnalyticsのPerfテーブルにもデータが上がってくるのでAzureポータルからも確認できるようになります。

img

Ubuntuサーバ上でnetstatで見ても、外部通信はグローバルIPアドレスに対して行われているものはなく、192.168.2.xに対してなんとなく通信しているっぽいのが確認できますね(適当)

img

おわりに

今回はLog Analyticsエージェントのみをオンプレミス上のサーバにインストールして、AMPLSを使った閉域接続を確認しました。

VM Insights(Dependency Agent)を使うには、さらにAzure Arc for Serversに対応させる必要があったり、それを閉域接続させるためにAzure Arc Private Link Scope(AAPLS? まだPreview)が必要だったりと、手間が多そうなので別途検証したいと思います。