Azure VM の MMA (Microsoft Monitoring Agent) Log Analytics ワークスペースの切替方法について

# はじめに
Azure VM では MMA (Microsoft Monitoring Agent) を用いて Log Analytics ワークスペースにイベントを転送することで、イベント ログ、パフォーマンス、ファイルベース ログ、IIS ログなどの監視機能を提供しています。一度 Azure VM にセットアップした後に設定変更する方法について、少し分かり難い部分があったのでまとめておきます。

# Log Analytics ワークスペースの切替が起きる可能性
Azure を運用監視する際に、組織や体制、運用監視を再設計するため、Log Analytics ワークスペースを切り替える話が出てきます。

- これまで担当者側でシステム監視していた -> 企業内で運用チームで監視することになった
    - Azure VM の監視を担当者で用いていた Log Analytics ワークスペースから、企業内の運用チームの Log Analytics ワークスペースへ切り替える
- Microsoft Sentinel でセキュリティイベント監視することになった
    - Sentinel で用いている Log Analytics　ワークスペースにイベントを転送する必要が生じる
    - Windows 環境ではドメインコントローラー、ファイルサーバーなどの重要サーバーだけはセキュリティ監視を用いる
- 複数の部署でイベント・性能監視が必要になってきた
    - 担当部署だけではリソースが足らない（24H365D）
    - 監視の用途が異なる（セキュリティ監視チームと性能監視など）
    - 複数の Log Analytics ワークスペースにイベントを転送し、監視を行いたい

# 制限事項など
- MMA (Microsoft Monitoring Agent)は 2024/8月迄のサポートになっています。
    - https://docs.microsoft.com/ja-jp/azure/azure-monitor/agents/agents-overview
- MMA による複数の Log Analytics ワークスペースへの転送（Multi-Homing）は、Windows のみ対応しています。Linux はサポート外です。
    - Linux で複数の Log Analytics ワークスペースへの転送を行う場合は、Azure Monitor Agent (AMA) の利用を検討して下さい。
    - https://docs.microsoft.com/en-us/azure/azure-monitor/agents/azure-monitor-agent-overview?tabs=PowerShellWindows#should-i-switch-to-the-azure-monitor-agent

# 設定方法
最初に、新たに接続・切替する Log Analytics ワークスペースの ID と キー情報を確認しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/ce07b4a4-1e9f-2c37-6c2a-0a8ed53984a8.png)

## Windows OS
Windows OS の場合、一度導入された MMA はコントロールパネルから再設定を行うことが可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/025a29ee-9a43-a82f-8cf4-c6db6e89ce31.png)
Microsoft Monitoring Agent の設定を開くと、接続する先の Log Analytics ワークスペースの追加・編集・削除が出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/10b856bd-649d-f0ad-71eb-f3e3cb5b6d69.png)

詳細な設定方法については、[公式ドキュメント:ワークスペースの追加または削除](https://docs.microsoft.com/ja-jp/azure/azure-monitor/agents/agent-manage#adding-or-removing-a-workspace)を参照下さい。

## Linux OS
Linux OS の場合、以下のような手順になります。

1. 現在の登録状態を確認する
```
azureuser@vmubuntu001:~$ sudo /opt/microsoft/omsagent/bin/omsadmin.sh -l
Primary Workspace: a4ee260e-xxxx-xxxx-xxxx-xxxxxxxxxxxx    Status: Onboarded(OMSAgent Running)
```

2. 既存の登録を削除する
```
azureuser@vmubuntu001:~$ sudo /opt/microsoft/omsagent/bin/omsadmin.sh -X
-e infoDisable workspace: a4ee260e-xxxx-xxxx-xxxx-xxxxxxxxxxxx
INFO:  Unconfiguring OMS agent (systemd) service a4ee260e-xxxx-xxxx-xxxx-xxxxxxxxxxxx ...
-e infoCleanup the folders
Unconfiguring rsyslog for OMS logging
Restarting service: rsyslog
```

3. 変更先の Log Analytics ワークスペースを登録する
```
azureuser@vmubuntu001:~$ sudo /opt/microsoft/omsagent/bin/omsadmin.sh -w (ワークスペースID) -s (ワークスペースのキー)
Workspace ab92615f-xxxx-xxxx-xxxx-xxxxxxxxxxxx already onboarded and agent is running.
Symbolic links have not been created; re-onboarding to create them
infoGenerating certificate ...
-e infoAgent GUID is 232f3d35-94bb-4cd4-ba71-c6addd8a4ead
-e infoOnboarding success
Configure syslog...
-e infonetstat tool is not available. Default port defined in omsadmin.sh will be used.
Configuring rsyslog for OMS logging
Restarting service: rsyslog
Configure heartbeat monitoring agent...
-e infonetstat tool is not available. Default port defined in omsadmin.sh will be used.
Configure log rotate for workspace ab92615f-xxxx-xxxx-xxxx-xxxxxxxxxxxx...
INFO:  Configuring OMS agent service ab92615f-xxxx-xxxx-xxxx-xxxxxxxxxxxx ...
-e infoomsconfig is configured successfuly
```

4. 登録されているか確認

```
azureuser@vmubuntu001:~$ sudo /opt/microsoft/omsagent/bin/omsadmin.sh -l
Primary Workspace: ab92615f-xxxx-xxxx-xxxx-xxxxxxxxxxxx    Status: Onboarded(OMSAgent Running)
```