みなさんこんにちは。 以前、Azure以外の場所にある「サーバー」をAzure Arcに接続する方法について以下のブログ記事でご紹介いたしました。
・Azure Arcに接続してみよう - サーバー(Windows)編
・Azure Arcに接続してみよう - サーバー(Linux)編
今回はAzure Arcに接続したサーバー(Azure Arc対応サーバー)に対する「変更履歴(Change Tracking)とインベントリ」についてご紹介したいと思います。
「変更履歴とインベントリ」はソフトウェアやサービス/デーモンなどの情報を収集し、各種アイテムの変更を追跡する機能です。 Azure Arc対応サーバーに対しても本機能を利用することが可能です。
※追跡対象アイテムや制限等についてはこちらをご参照ください。
情報の収集・追跡にあたってはAzure Automation / Log Analytics ワークスペース / データ収集ルールといったリソースを組み合わせて利用します。 データ収集ルールでAzure Arc対応サーバーから収集する情報を定義し、収集したデータの宛先となるLog Analytics ワークスペースを指定します。 Azure Automationは構成管理や管理タスクの自動化を行うサービスであり、変更履歴とインベントリの機能を内含しています。
なお、本機能の利用にあたってはAzure Arc対応サーバー側にエージェントが必要です。(詳細については後述します。)
検証環境
今回利用する環境ではオンプレミスに存在するUbuntu 20.04 LTSをAzure Arc対応サーバーとしています。(変更履歴とインベントリがサポートされるOSについてはこちらをご参照ください。)
Azure Arc対応サーバーに拡張機能がない状態から始めます。
さらにMicrosoft Learnで推奨されている通り、事前にサブスクリプションに対しプレビュー機能「Automatic Extension Upgrade Preview」を登録しておきました。
Log Analytics ワークスペースの作成
Microsoft Learnの記載に沿ってLog Analytics ワークスペースを作成します。
Automationアカウントの作成と設定
Microsoft Learnの記載に沿ってAutomationアカウントを作成します。
次に、作成したAutomationアカウントの「変更の追跡」を有効化します。 「Log Analytics ワークスペース」に先程作成した「law-arc」を指定して「有効化」をクリックします。
有効化が完了したのち「リンクされたワークスペース」を開くとAutomationアカウントとLog Analytics ワークスペースがリンクされていることを確認できます。
ここまででAzureに存在するリソースは下図のようになっています。
データ収集ルールの作成
カスタムテンプレートを使用してデータ収集ルールを作成します。 データ収集ルールのサンプルがこちらで公開されていますので、今回はこちらのサンプルを一部変更して使用します。 なお、 JSONファイルをこちらの手順に沿って登録します。 カスタムデプロイで「エディターで独自のテンプレートを作成する」をクリックします。
「ファイルの読み込み」をクリックし作成したJSONファイルを読み込ませます。 今回読み込ませたJSONファイルではLinuxのソフトウェア(パッケージ)ならびにデーモンの情報を収集できるようにしています。 「保存」をクリックします。
先ほど作成した Log Analytics ワークスペースのリソースIDを入力して「確認と作成」をクリックします。
ここまででAzureに存在するリソースは下図のようになっています。
Azure Arc対応サーバーで変更履歴とインベントリを有効にする
Azure Arc対応サーバーのデータ収集用エージェントとして、今回はAzure Monitoring Agentを利用したいと思います。(本ブログ執筆時点では、Azure Monitoring Agentを利用する構成はプレビューです。)
Azure Arc対応サーバーで変更履歴とインベントリの機能を有効化するため、Azureポリシーを利用することが可能です。 Azure Arc向けに「Enable Change Tracking and Inventory for Arc-enabled virtual machines」というイニシアティブ定義が用意されていますので、こちらを利用します。
本イニシアティブ定義にはAzure Monitoring AgentやChangeTracking拡張機能の導入、データ収集ルールにAzure Arc対応サーバーを関連付けるポリシーが含まれています。
今回はAzure Arc対応サーバーが存在するリソースグループに対しイニシアティブ定義を割り当てます。(Azure Arc対応サーバーに対するAzureポリシーの利用については以前のブログ記事でご紹介しましたので併せてご参照ください。)
割り当ての際、先ほど作成したデータ収集ルールのリソースIDを入力する必要があります。
イニシアティブ定義を割り当てたのち評価が完了すると以下のようになります。 Azure Arc対応サーバーが準拠していないリソースとして評価されたことが分かります。
ポリシーの「修復」機能を利用して変更履歴とインベントリの機能を有効化します。
修復が完了するとAzure Arc対応サーバーには拡張機能が2点導入されます。
また、Azure Arc対応サーバーがデータ収集ルールのリソースになっています。
インベントリの確認
Azure Arc対応サーバーのインベントリを確認します。 「ソフトウェア」ではパッケージやバージョン、発行者などを確認することが可能です。
「Linuxデーモン」ではデーモンの一覧とそれぞれの状態を確認することが可能です。
変更履歴の確認
Azure Arc対応サーバーに対しポリシーの修復を行った直後は変更履歴がありません。
このため今回は"apt-get upgrade"を実行し、その変更履歴を確認してみたいと思います。
変更履歴のデータが収集されると、以下のようにデーモンやソフトウェアの変更履歴を確認することが可能です。
例えば「ufw」をクリックすると以下のようにバージョンが変わったことが分かります。
まとめ
Azure Arc対応サーバーにおける「変更履歴とインベントリ」の利用についてご紹介いたしました。
今回はインベントリや変更履歴を確認するにあたりAzure Portalの「インベントリ」ならびに「Change Tracking」を利用しました。 収集されたデータは前述の通りLog Analytics ワークスペースに送信されますので、「ログ」からKQLを利用して情報を確認することも可能です。 インベントリの情報はConfigurationDataに格納されますので、クエリを実行して確認できるようになっています。 以下は例としてAzure Arc対応サーバー上に存在するMicrosoftのソフトウェア(パッケージ)を確認するためのクエリを実行したものです。 なお、変更履歴に関してはConfigurationChangeに格納されます。
以前のブログ記事でご紹介した「ブック」の機能で分析結果を視覚化しても良いかもしれません。
また、今回はAzure Arc対応サーバーの拡張機能としてAzure Monitoring Agentを利用しておりますが、こちらは前述の通り本ブログ記事執筆時点でプレビューの状態です。 Microsoft Learnに記載の通り制限がございますので、事前に内容をご確認頂くことをおすすめいたします。
SB C&SはAzureを取り扱われているパートナー企業様へ様々なご支援のメニューを用意しております。 メニューの詳細やAzureに関するご相談等につきましては以下の「Azure相談センター」をご確認ください。
Azure相談センター
https://licensecounter.jp/azure/
※ 本ブログは弊社にて把握、確認された内容を基に作成したものであり、製品の動作や仕様について担保・保証するものではありません。サービスや製品の動作、仕様等に関しては、予告なく変更される場合があります。
Azureに関するブログ記事一覧はこちら
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 第1技術部 4課
中原 佳澄