この記事は、Microsoft Azure Administrator(AZ-104)の受験勉強の中で、自分が間違えやすい、覚えにくいと思ったポイントの一つをまとめたものです。同じく資格取得に向けて勉強されている方の参考になれば幸いです。
リソースの監視
AZ-104の試験範囲にはリソースの監視も含まれますが、この記事ではLinux VMの異常を検知する方法について記載します。
Linuxでは、アプリやサービスの異常がSyslogに記録される場合が多いと思います。Azureでは、Syslogのイベントを収集する仕組みが提供されていますので、この仕組みを使ってLinux VMの異常を検知する手順を試してみます。
主な流れは下記のようになります。
- Log Analyticsワークスペースを作成する
- VMにエージェントをインストールする
- データ収集ルールを作成する
- アラートを作成する
準備
まずAzureで監視対象となるLinux VMをデプロイします。
ここでは、AzureポータルでOSにubuntu 20.04を指定したものをデプロイしました。
Syslogにエラーを記録できることを確認してみましょう。出力にはloggerを使用します。
sshでVMに接続し、ファシリティにlocal0、プライオリティにerr、メッセージに「Dummy Error」を指定してコマンドを実行してみます。
logger -p local0.err "Dummy Error"
/var/log/syslogを参照すると、下記の通りエラーが記録されています。
Jan 19 08:34:33 VM1 azureuser: Dummy Error
Log Analyticsワークスペースを作成する
AzureポータルでLog Analyticsワークスペースを作成します。
エージェントのインストールとデータ収集ルールの作成
エージェントにはLog AnalyticsエージェントとAzure Monitorエージェントがあります。Log Analyticsエージェントは、2024年8月31日に廃止されますので、Azure Monitorエージェントを使うことにします。移行についての詳細はこちらを参照ください。
Azure Monitorエージェントを利用するには前提条件があります。AzureポータルでVMを作成し、エージェントをインストールする場合には、特に追加の手順は不要です。マネージドIDも後述のデータ収集ルール作成時に有効化されます。
インストールもいくつか手段がありますが、ここではAzureポータルを使ってみます。
詳細な手順はこちらにありますが、データ収集ルールを作成する中でエージェントがインストールされます。
モニターからデータ収集ルールを作成します。プラットフォームの種類はLinuxを選択します。
データ収集ルールのリソースとして、監視対象のVMを選択します。
データソースを追加する際、データソースの種類にSyslogが選択できるようになっています。ファシリティとプライオリティで絞り込むことができます。
ターゲットに作成したLog Analyticsワークスペースを指定してデータ収集ルールを作成します。
アラートを作成する
Log Analyticsワークスペースにエラーが送信されることを確認します。
再度VMにログインして下記を実施し、AzureポータルからLog Analyticsワークスペースを確認します。
logger -p local0.err "Dummy Error"
ログにSyslogテーブルが作成されています。下記のようにerrorでフィルタしたクエリを実行してみると、上記で実施した"Dummy Error"が出力されていることが確認できました。
Syslog
| where SeverityLevel == "error"
この状態で「+新しいアラートルール」ボタンを押すと、入力したクエリを条件としたアラートの作成画面に遷移します。アラートの設定の詳細は割愛しますが、評価の頻度や通知先などを入力してアラートを作成すると、メールやSMSなどでSyslogのエラーを受信することができるようになります。
今回はloggerを使って手動でSyslogにメッセージを追加しましたが、SyslogにはVMに搭載している様々なアプリ、サービスのログが記録されていると思います。特定のアプリ、サービスの動作を監視したい、という場合は、Log Analyticsワークスペースのクエリに対応する条件を設定すれば、VMそのものの設定を変更したりすることなく、アラートを受け取ることができるようになります。
また、障害発生時にVMを削除、再作成してSyslogが消える、というような場合でも、Log Analyticsワークスペースに転送しておけば、障害復旧後に原因調査を行うことができます。