Azure Monitor エージェントを導入してみたメモ

## はじめに
[こちらのお知らせ](https://azure.microsoft.com/ja-jp/updates/were-retiring-the-log-analytics-agent-in-azure-monitor-on-31-august-2024/)にもある通り、Log Analytics Agentは2024年8月末にサポート終了となることが通知されております。
また、公式ドキュメントにも[Log Analytics エージェントから Azure Monitor エージェントへの移行](https://learn.microsoft.com/ja-jp/azure/azure-monitor/agents/azure-monitor-agent-migration)といったドキュメントも用意されています。

自分はそもそも「Azure Monitor エージェントってどうやって導入するの？」という状態だったので、最初の一歩であるAzure Monitor エージェントの導入を試してみました。その手順と、導入後のログ確認方法などをまとめてみました。

## Azure Monitor Agent導入前

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/6d980e20-40f9-1338-e660-fd12a30a6286.png)
拡張機能には「OmsAgentForLinux」のみが表示されています。
こちらはLog Analytics エージェントで、画面上部の注意書きにも表示されている通り2024年8月でサポート終了してしまいます。

また事前にLog Analytics Workspaceを作成しておきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/a9158b78-2030-5a6b-8323-942bd6e4b9d0.png)

## データ収集ルールの作成
Azure Monitor エージェントを導入するためには、エージェントが接続してデータを送信？するための「データ収集ルール」というものを作成する必要があるようです。
以降の流れは、以下のAzure Portal版の手順にある「データ収集ルールを作成する」に沿って進めます。

https://learn.microsoft.com/ja-jp/azure/azure-monitor/agents/azure-monitor-agent-manage?tabs=azure-portal#install

Azure Portalから「モニター」を表示します。
左側のメニューから「データ収集ルール」を表示して、画面左上の「作成」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/f0d16ae9-ba22-82d3-3feb-ac98bace0da2.png)

データ収集ルールの基本ルールを入力していきます。
今回、AMA導入対象マシンはUbuntuなので、「プラットフォームの種類」は"Linux"を選択しました。
その後、「次へ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/8c72a016-48f3-0314-3e2a-6d4b53a2196c.png)

「リソース」タブでは、まず「リソースの追加」ボタンをクリックします。
範囲の選択画面が表示されるので、あらかじめ作成しておいた仮想マシン(ここでは"vm-linux01")を選択して、「適用」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/7a9e31ee-3ea4-91a3-d135-9c44ef2c8b96.png)

「次へ」をクリックして、収集と配信の画面へ進みます。
ちなみにドキュメントではエンドポイントの追加手順も記載されていますが、設定は必須では無いようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/4fe4a2da-c9d5-256c-37ee-c706216f4afa.png)

「収集と配信」タブでは、「データソースの追加」ボタンをクリックします。
「データソースの種類」は、"パフォーマンスカウンター"を選択します。どの要素を収集するかのチェックボックスは"基本"を選びデフォルトのままとしておきます。
「次へ」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/95cf5725-83d0-d4b2-c9f1-14fdfb563841.png)

データの配信先の選択画面では、「ターゲットの追加」ボタンをクリックします。
ターゲットの種類は"Azure Monitor Logs"を選択して、予め作っておいたLog Analytics Workspaceリソースを選択します。
その後、「データソースの追加」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/9ea929ed-371c-2ea5-162f-46df2a913fb2.png)

同様に"Linux Syslog"についても追加していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/142a7caa-dcef-1d82-5269-516e87c45ae7.png)

2つのデータソースが設定されたら、「次へ」ボタンでタグ設定へ進む、
あるいはタグが不要であれば「確認と作成」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/68c3a897-7579-f4e6-bcef-01ead018681c.png)

リソース作成前の確認画面が表示されるので、内容を確認して問題なければ「作成」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/bbb8e540-572a-425c-448b-1828ba715b8e.png)

## データ収集ルールの作成後(Azure Monitor Agent導入確認)
データ収集ルールを作成してから、もういちど仮想マシンの拡張機能画面を確認すると「AzureMonitorLinuxAgent」が表示されています。
クリックするとバージョンなどの情報が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/5bff37e4-1c93-b96a-062a-7982efcb40ca.png)

サーバ側からも確認してみます。
SSHログインして、dpkgコマンドで確認してみると、パッケージが導入されていることが分かります。
```shell-session
$ dpkg -l | grep azuremonitoragent
ii  azuremonitoragent                        1.29.6-build.master.386           amd64        MDS monitoring agent daemon
```
また、systemctlコマンドでも確認してみます。
```shell-session
$ systemctl status azuremonitoragent
● azuremonitoragent.service - Azure Monitor Agent daemon (on systemd)
     Loaded: loaded (/etc/systemd/system/azuremonitoragent.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2024-02-25 05:46:31 UTC; 20min ago
       Docs: man:azuremonitoragent(8)
   Main PID: 35045 (mdsd)
      Tasks: 83 (limit: 1002)
     Memory: 134.4M (max: 10.0G)
     CGroup: /system.slice/azuremonitoragent.service
             └─35045 /opt/microsoft/azuremonitoragent/bin/mdsd -A -c /etc/opt/microsoft/azuremonitoragent/mdsd.xml -r /run/azuremonitoragent/defa>

Feb 25 05:46:31 vm-linux01 systemd[1]: Stopped Azure Monitor Agent daemon (on systemd).
Feb 25 05:46:31 vm-linux01 systemd[1]: Starting Azure Monitor Agent daemon (on systemd)...
Feb 25 05:46:31 vm-linux01 azuremonitoragent[34998]:  * Starting Azure Monitor Agent Daemon:
Feb 25 05:46:31 vm-linux01 azuremonitoragent[34998]:    ...done.
Feb 25 05:46:31 vm-linux01 systemd[1]: Started Azure Monitor Agent daemon (on systemd).
```

## 新規追加した稼働マシンにAMAを導入する
先ほどの手順は既存の仮想マシンにAMAを導入する手順でしたが、新たに仮想マシンを追加してAMAを導入してみたいと思います。
"vm-linux02"を新規に作成しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/17721fc2-7b56-66f7-3cd4-c8a5429f5cfa.png)

「モニター」->「データ収集ルール」->先ほど作成したデータ収集ルールを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/d5051e89-5a45-beb3-10af-de13423428b6.png)

左側のメニューから「リソース」を選択して、表示画面左上の「追加」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/ffff56bb-e730-a636-e9a6-f6fbf72b2048.png)

AMAを導入する仮想マシン(ここでは"vm-linux02")にチェックを入れて、「適用」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/0dfeab9d-dc97-b890-a2d9-d5be0464ca58.png)

"vm-linux02"も一覧表示されることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/95a3b9b5-c3da-974f-773b-868e3847364f.png)

また"vm-linux02"の「拡張機能とアプリケーション」画面にも、AMAが表示されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/0bf106a8-4e24-4e1b-2a6f-376079a7e308.png)

## Log Analytics Workspaceで情報を見てみる

Log Analytics Workspace(ここでは"LogWorkspace")を開き、左側メニューから「ログ」を開く。
※"クエリ"みたいな小さなウィンドウが出てきたら×ボタンで閉じる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/61f99744-6b7e-fcb0-f856-ec0c55ee5aa5.png)

まずはAMAとの疎通確認の状態を確認する。
```KQL
Heartbeat
```
ちなみにCategoryが"Direct Agent"となっているのは、Log Analytics Agentからの疎通確認。
※画面キャプチャでは、[project-away](https://learn.microsoft.com/ja-jp/azure/data-explorer/kusto/query/project-away-operator)でいくつかの列を非表示にさせています
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/29750c61-9681-8796-d271-4ffdbfcaa8ea.png)

### パフォーマンスレコード
CPUやメモリ使用率など、パフォーマンスに関する値を取得する場合は以下テーブルから取得可能です。
```KQL
Perf
```
ただし出力行数が多く、分析できるよう使える形にするにはKQLで色々加工する必要がありそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/09566256-1add-c0e9-a32f-8907753bb648.png)

パフォーマンスレコードを取得するKQLのクエリ例は以下リンクにあります。
https://learn.microsoft.com/ja-jp/azure/azure-monitor/agents/data-sources-performance-counters#log-queries-with-performance-records
https://learn.microsoft.com/ja-jp/azure/azure-monitor/reference/queries/perf

### Syslog
OS上に出力されるシステムログについては、以下テーブルから取得可能です。
```KQL
Syslog
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/6b32e4e6-7bd6-3a04-7d50-ec7afc8fa964.png)

こちらもドキュメントに記載されているsyslogレコードを表示するためのクエリ例です。
https://learn.microsoft.com/ja-jp/azure/azure-monitor/agents/data-sources-syslog#log-queries-with-syslog-records
https://learn.microsoft.com/ja-jp/azure/azure-monitor/reference/queries/syslog

## おわりに
Log Analytics AgentからAzure Monitor Agent(AMA)に乗り換えるにあたって、まずはAMAの簡易的な導入手順をまとめてみました。エージェント移行の第一ステップの手助けになれば幸いです。

## 参考リンク
https://www.michikusayan.com/entry/20221223/1671805753