LoginSignup
3
4

More than 5 years have passed since last update.

Azure VMの構成情報をLog Analyticsに収集して管理する

Posted at

Azure AutomationとLog Analyticsを使って、Azure VMにインストールされたソフトウェア情報などの構成管理ができそうなので試してみました。

設定

Log Analyticsワークスペース作成

新たに作成するか、既存のものがあれがそれでよいです。手順は割愛します。

Automationアカウント設定

  • Automationアカウントを開き、[インベントリ]を選択します。

    image.png

  • 事前に準備したLog Analyticsワークスペースを選択し、[有効化]を選択します。

    image.png

  • しばらくすると有効化されるので、[Azure VM の追加]を選択します。

    image.png

  • ここでとまどったんですが、インベントリ収集したい仮想マシンが選べません。

  • これはリソースグループの選択箇所で、3つしか選べない謎仕様によるものです。1つチェックを外して、対象のリソースグループを選択すれば仮想マシンが表示されます。

    image.png

  • 対象のリソースグループ、VMを選択し有効化します。

    image.png

取得できるインベントリ(Linux)

デーモン

  • ここでいうデーモンとは、Linux OSのsystemctlコマンドの実行結果と同一のようです。
systemctl list-unit-files
  • Azureポータルから見ると

    image.png

  • Log Analyticsクエリで、デーモン一覧を取得する。

ConfigurationData
| where (Computer == "zabbix-agent") and (ConfigDataType == "Daemons")

image.png

  • Log Analyticsクエリで、特定のデーモンを取得する(この例ではhttpdデーモン)
ConfigurationData
| where (Computer == "zabbix-agent") and (ConfigDataType == "Daemons")
| where SvcName == "httpd" 

image.png

  • Log Analyticsクエリで、httpdがインストールされたコンピュータ名を表示する
ConfigurationData
| where ConfigDataType == "Daemons"
| where SvcName == "httpd" 
| project Computer

ソフトウェア

  • ここでいうソフトウェアとは、Linux OSのrpmコマンドの実行結果と同一のようです。
rpm -qa
  • Azureポータルから見ると、rpmのバージョン情報も取れてますね

    image.png

  • Log Analyticsクエリで、ソフトウェア一覧を取得する。

ConfigurationData
| where (Computer == "zabbix-agent") and (ConfigDataType == "Software")
  • Log Analyticsクエリで、特定のソフトウェアを取得する(この例ではbash)
ConfigurationData
| where (Computer == "zabbix-agent") and (ConfigDataType == "Software")
| where SoftwareName == "bash" 
  • Log Analyticsクエリで、特定のソフトウェアの変更履歴を確認する(この例ではyum)
ConfigurationChange
| where Computer == "zabbix-agent" 
| where  SoftwareName == "yum"
| order by TimeGenerated desc
  • Currentに現在のバージョンが、Previousにアップデート前のバージョンが取れています。
    image.png

取得できるインベントリ(Windows)

Windowsサービス

  • ここでいうWindowsサービスとは、sc queryコマンドの実行結果と同一のようです。
sc query state= all
  • Azureポータルから見ると

    image.png

  • Log Analyticsクエリで、デーモン一覧を取得する。

ConfigurationData
| where Computer == "zabbix-agt-win" and ConfigDataType == "WindowsServices"

image.png

ソフトウェア

  • ここでいうソフトウェアは、reg queryコマンドの実行結果は含まれていました。
reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName"
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName"
  • Azureポータルから見ると
    image.png

※それ以外にもWindows DefenderのKB情報などもAzureポータルからは確認することができました。

Azure以外のサーバー

AWS EC2で試しましたが、Log Analyticsワークスペースにインターネット経由もしくはExpressRoute PublicPeering経由で接続できれば問題ないはずです。

  • 対象のLog Analyticsを選んで[詳細設定]を選択します。

    image.png

  • エージェントをダウンロードし、ワークスペースIDと主キーをコピーしておきます。

    image.png

  • 今回はLinuxで試します。Linuxの場合、対象サーバーで以下のコマンドを実行します。

wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh \
  && sh onboard_agent.sh -w [ワークスペースID] -s [主キー]
  • しばらく時間を置いて、Automationアカウントのインベントリにアクセスします。
  • 1台管理対象になってないというメッセージが表示されるのでクリックします。

    image.png

  • 対象サーバーを有効化します。

    image.png

  • しばらくするとこんな感じで追加されます。あとはAzure VMと同じように管理できます。

    image.png

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4