仮想マシンを作成すると仮想マシンのCPU利用率などは既定で確認可能です。
今回は、上記に加えて追加設定することで確認可能なOS内のイベントログを取得してみました。
事前準備
WindowsOSの仮想マシン作成します。
以下の記事で仮想マシンを作成するAzureCLIコマンドをまとめていますので参考にしてください。
仮想マシンのログ(CPU使用率、ディスク使用量など)を確認する
仮想マシンを作成すると、既定でCPU使用率、ディスクやネットワークの使用量などのログを確認することができます。
Azureポータルから [ログ] をクリックすると仮想マシンのログを確認することができます。
※仮想マシン作成直後は表示されないかもしれませんが、10分ほど待つと表示されます。
・仮想マシンの死活監視状況(Heartbeat)
Heartbeat
・仮想マシンのCPU利用率(1分ごとの平均の値を表示、タイムチャート形式でも表示)
Perf
| where CounterName == "% Processor Time"
| where ObjectName == "Processor"
| summarize avg(CounterValue) by bin(TimeGenerated, 1min), Computer
| render timechart
上記コマンドを実行するとグラフをタイムチャートとして表示できます。
OS内のイベントログを確認する
OS内のイベントログを取得するには診断の拡張機能を有効にして格納するストレージアカウントを指定する必要があります。
ストレージアカウントの作成
以下のAzureCLIコマンドでストレージアカウントを作成します。
#任意のパラメータを定義
$rg_name = "RG-monitor-vm"
$sa_name = "samonitorvm9384761"
#ストレージアカウントの作成
az storage account create `
--name $sa_name `
--resource-group $rg_name
診断設定の有効化
Azureポータルから診断設定を有効化します。
・[診断設定] のタブで「ゲストレベルの監視」有効化
有効化後は以下のようにイベントログなども収集される設定が入っています。
デフォルトでは、赤枠で囲っている成功ログや情報・詳細などのレベルは取得されない設定になっているので、今回はチェックを入れて収集されるように設定します。
また、[エージェント] タブでログの取得レベルも [すべて] に変更します。
イベントログの取得
設定が完了したら実際にどんなログを取得できるのかクエリを実行して試してみます。
・イベントログの表示
Event
・ログの表示結果
イベントログが取得できていることが確認できました。
[注意点] 取得できるログレベルが worning 以上となってしまう
上記でイベントログが取得できたことは確認できましたが、なぜか取得できているログが想定よりも少なく、Error か Warning しか取得できていないように見えました。
実際にOS内にログインして Event Viewer で確認してみるとAzureポータル上では設定したはずの Information のログは大量に出ていました。
・OS内 Event Viewer のログ
一度仮想マシンを再起動してみましたが効果はありませんでした。
なので、ログ設定でカスタムログを設定し、information をキャッチするように設定を入れてみましたが、それでも Wornig未満のログは確認できませんでした。
LogAnalyticsエージェントなどを利用する場合には取得できたと思いますが、今回のように「診断拡張機能」を利用してログを収集しようとした場合には、この部分のログ出力が思った通りに行きませんでした。
この部分については検証を続けたいと思います。