Azure Monitor メトリック【Azureを使いこなしたい! 7】

【今回の内容】

今回は、Azure Monitorで収集したAzure VMのCPU使用率やメモリ使用率といったメトリックデータを用い、ダッシュボードにて視覚化することで正常性の調査をしやすくしたり、CPUの使用率が一定の基準を超えたときに通知するようにアラートを設定したいと思います。

Azure サブスクリプションを作成して、 VM や Web アプリなどのリソースを追加すると、そのメトリックとログ(アプリケーション、OS、Azureリソース、Azureサブスクリプション、Azureテナント、カスタムソース)の収集がAzure Monitorで開始されます。収集したデータを基に、分析情報を提供したり、グラフ等で視覚化したり、メトリックの分析やLog Analyticsでの分析を行ったり、アラートや自動スケーリングを行ったり、他の AzureサービスとAzure Monitorを連携させることが出来ます。

AzureでのAzure MonitorはPaaSに分類されます。

【前提事項】

Azure VMを構築していること。(今回はWindows 10を用いました)

※今回は、主にAzure portalでの操作となりますが、VMが実行中でないと設定出来ないことが多々あります。

1.Azure VMの基本的なメトリック

1-1.Azure VMのホストメトリック

※追加のソフトウェアのインストールや設定をしなくても、Azure VMを作成した時点でホストメトリックを確認することが出来ます。

(1)対象のVMのブレードを開きます。 → <A>[メトリック]をクリックします。 → <B>[メトリック]を選択します。 → <C>[集計]を選択します。 → <D>[メトリックの編集を完了する](チェックマーク)をクリックします。

(2)<A>[メトリックの追加]をクリックします。 → <B>[メトリック]を選択します。 → <C>[集計]を選択します。 → <D>[メトリックの編集を完了する](チェックマーク)をクリックします。

※同じグラフ内に複数のメトリックを表示したい場合に行います。

(3)VMのホストメトリックが確認出来ました。

1-2.ブート診断

※ブート診断を有効にすることで、Azureで VMのトラブルシューティングを行うことが出来ます。(ブート プロセス中に起こるファイルシステムやBitLockerのエラーなどVMの問題を特定するのに役立ちます。)

(1)[仮想マシンの作成]時に、デフォルトで[マネージドストレージアカウントで有効にする]にチェックが入っています。これでブート診断が有効になります。

(2)Azure VMのブレードを開きます。 → [ブート診断]をクリックします。 → スクリーンショットによりVMが正常起動していることが確認できます。

(3)上タブ[シリアル ログ]をクリックします。 → VMの起動時に作成されたログ メッセージが表示されます。

1-3.ダッシュボードでの基本操作

(1)Azure portalにて、<A>[ポータルメニュー]をクリックします。 → <B>[ダッシュボード]をクリックします。

(2)[作成]をクリックします。

(3)[Custom]をクリックします。

(4)<A>[ダッシュボード名]を入力します。 → <B>[タイルの追加]をクリックします。 → <C>[メトリックのグラフ]をクリックします。 → <D>[追加]をクリックします。

(5)<A>[コンテキストメニュー]をクリックします。 → <B>[タイル設定の構成]をクリックします。 → <C>[タイルレベルでの…]をクリックします。

(6)<A>[期間][時間の粒度]を入力します。 → <B>[公開する時間帯の種類]を選択します。 → <C>[適用]をクリックします。

※今回は時間帯を日本時間に設定しました。

(7)[メトリックで編集]をクリックします。

(8)<A>[リソースグループ]を展開します。 → <B>[対象のリソース]にチェックを入れます。 → <C>[適用]をクリックします。

※今回はAzure VMを対象にしました。

(9)<A>[メトリック]をクリックします。 → <B>[グラフにしたいメトリック]を選択します。

(10)<A>[集計]をクリックします。 → <B>[グラフにしたい値]を選択します。

(11)<A>[ここをクリックして他のオプションを表示する]をクリックします。 → <B>[グラフの種類]を選択します。

(12)[凡例]をクリックします。

(13)<A>[色]を選択します。 → <B>[Apply]をクリックします。

(14)グラフの色が変わります。

(15)<A>[ここをクリックして他のオプションを表示する]をクリックします。 → <B>[グラフの設定]をクリックします。

(16)グラフの詳細を設定できます。

(17)[ダッシュボードに保存]をクリックします。

(18)[保存]をクリックします。

(19)[編集]をクリックします。 → (4)<C>~(18)までの手順を繰り返すと複数のグラフが表示出来るようになります。

(20)[共有]をクリックします。

(21)<A>[ダッシュボード名]を入力します。 → <B>[サブスクリプション名][リソースグループ]を選択します。 → <C>[発行]をクリックします。

※[ダッシュボード名]は変更したい場合に入力します。

(22)[リソースグループ]ブレードに移動します。 → [共有ダッシュボード]をクリックします。

(23)[ダッシュボードへ移動]をクリックします。

(24)作成したダッシュボードが表示されます。

Azure Monitorのダッシュボードでの基本操作はこの辺りにしておきます。

1-4.ダッシュボードでのホストメトリックの確認

(1)対象のVMのブレードを開きます。 → <A>[メトリック]をクリックします。 → <B>[Network in Total]を選択します。 → <C>[最大値]を選択します。 → <D>[メトリックの編集を完了する]をクリックします。

(2)<A>[メトリックの追加]をクリックします。 → <B>[Network out Total]を選択します。 → <C>[最大値]を選択します。 → <D>[メトリックの編集を完了する]をクリックします。

(3)<A>[ダッシュボードに保存]をクリックします。 → <B>[ダッシュボードにピン留め]をクリックします。

(4)<A>[種類]を選択します。 → <B>[ダッシュボード名]を選択します。 → <C>[ピン留め]をクリックします。

(5)[新しいグラフ]をクリックします。 → 先ほどと同様の手順で[Available Memory Bytes]のグラフを作成します。

(6)[新しいグラフ]をクリックします。 → 先ほどと同様の手順で[CPU Credits Consumed]のグラフを作成します。

(7)Azure portalにて、<A>[ポータルメニュー]をクリックします。 → <B>[ダッシュボード]をクリックします。

(8)ピン留めしたダッシュボードを選択します。 → VMのネットワークトラフィック、メモリ、CPU について一度に視覚的に確認出来るようになりました。

2.Azure Diagnostics拡張機能

2-1.Azure Diagnostics拡張機能の構成

※先ほどはVMのホストメトリックの確認をすることが出来ましたが、この構成を行うことで、VMで実行されるゲストOSのメトリックを確認することが出来ます。

(1)Azure portalにて、<A>検索バーに[monitor]と入力します。 → <B>[モニター]をクリックします。

(2)<A>[データ収集ルール]をクリックします。 → <B>[作成]をクリックします。

(3)[ルール名]を入力します。[サブスクリプション]、[Region]を選択します。[リソースグループ]を選択または新規作成します。 → <B>デフォルトのままです。 → <C>[次へ:リソース>]をクリックします。

(4)[リソースの追加]をクリックします。

(5)<A>[リソースグループ]を展開します。 → <B>[対象のVM]にチェックを入れます。 → <C>[適用]をクリックします。

(6)[次へ:収集と配信>]をクリックします。

(7)[データソースの追加]をクリックします。

(8)<A>[Performance counters]をクリックします。 → <B><C>デフォルトのままです。 → <D>[次へ:ターゲット>]をクリックします。

※今回は検証のため、デフォルトのままとしました。

(9)デフォルトのままです。 → [データソースの追加]をクリックします。

(10)[確認と作成]をクリックします。

(11)[作成]をクリックします。

(12)デプロイが行われます。

2-2.ダッシュボードへ診断データのピン留め

※Azure Diagnostics拡張機能を構成することで、メトリック名前空間に[仮想マシンのゲスト]を選択出来るようになり、ホストメトリックでは収集できなかったメトリックが選択出来るようになりました。

(1)対象のVMのブレードを開きます。 → <A>[メトリック]をクリックします。 → <B>[仮想マシンのゲスト]を選択します。

(2)ダッシュボードに保存したいゲストメトリックのグラフを作成します。

(7)Azure portalにて、<A>[ポータルメニュー]をクリックします。 → <B>[ダッシュボード]をクリックします。

(8)ピン留めしたダッシュボードを選択します。 → VM ゲストOSメトリックのネットワークトラフィック、メモリ、CPU 使用率が視覚的に確認出来るようになりました。

※VMが突然停止してしまったときに、メモリが足りなくなったのか、VMのサイズが十分ではなかったのかを調査することが出来ます。

これで、Azure Diagnostics拡張機能の構成は完了です。

3.アラートの構成

(1)[対象のVM]のブレードを開きます。 → <A>[メトリック]をクリックします。 → <B>[メトリック][集計]を選択し、[メトリックの編集を完了する](チェックマーク)をクリックします。 → <C>[新しいアラートルール]をクリックします。

※今回は、[Percentage CPU]を選択しました。

(2)<A>[範囲の選択]をクリックします。 → <B>[Virtual Machines]を選択します。

※リソースの種類でフィルターにて[仮想マシン]を選択した場合、何も表示されませんでした。

(3)<A>[対象のVM]にチェックを入れます。 → <B>[完了]をクリックします。

(4)[次へ:条件>]をクリックします。

(5)<A>[条件の追加]をクリックします。 → <B>[メトリック]を選択します。 → <C>デフォルトのままです。

(6)<A>[検索値]を入力します。 → <B>[シグナル名]をクリックします。

(7)<A>デフォルトのままです。 → <B>[演算子][集計の種類]を選択します。[しきい値]を入力します。 → <C>[集約粒度(期間)][評価の頻度]を選択します。 → <D>[完了]をクリックします。

(8)[次へ:アクション>]をクリックします。

(9)[アクショングループの作成]をクリックします。

(10)<A>[サブスクリプション]を選択します。[リソースグループ]を選択または新規作成します。[アクショングループ名]を入力します。 → <B>[次へ:通知>]をクリックします。

※リージョンはデフォルトのままです。他に選択出来ませんでした。[アクショングループ名]は英数字以外を使用するとエラーになります。

(11)<A>[通知の種類]を選択します。 → <B>[アクション]にチェックを入れ、入力します。

※[アクション]は、メール、SMS、プッシュ、音声の中から選択します。

※Azure Resource Manager のロールへのメールも選択できます。

(12)<A>[名前]を入力します。 → <B>[次へ:アクション>]をクリックします。

※[名前]は日本語や記号も使用可能です。

(13)[次へ:アクション>]をクリックします。

※通知と共に自動で行ってくれるアクションを選択出来ます。今回は省略します。

(14)[次へ:確認および作成>]をクリックします。

※今回は検証のため、デフォルトのままとしました。

(15)[作成]をクリックします。

※電子メールの通知を設定していると、アクショングループ作成後に以下のメールが届きます。

(16)[次へ:詳細>]をクリックします。

(17)<A>[サブスクリプション][重大度]を選択します。[リソースグループ]を選択または新規作成します。[アラートルール名][アラートルールの説明]を入力します。 → <B>デフォルトのままです。 → <C>[次へ:タグ>]をクリックします。

(18)[次へ:確認および作成>]をクリックします。

※今回は検証のため、デフォルトのままとしました。

(19)[作成]をクリックします。

(20)[モニター]のブレードを開きます。 → <A>[アラート]をクリックします。 → <B>[アラートルール]をクリックします。

(21)作成したアラートルールが表示されます。

これで、メトリックアラートの作成は完了です。

(22)対象のVMにCPUのストレステストを行います。今回は、「CPUSTRES」を用いました。

(23)指定したメールアドレスに以下の画像のアラートメールが届きました。

(24)[アラート名]をクリックします。

(25)アラートの詳細を確認出来ます。

(26)<A>[コンテキスト]をクリックします。 → <B>[ユーザー応答の変更]をクリックします。

(27)<A>[ユーザーの応答]を選択します。 → <B>[保存]をクリックします。

これで、メトリックアラートの構成は完了です。

※CPUSTRESのダウンロードや使用方法について簡単に手順を記載します。詳細はこちらを参照してください。【参考】マイクロソフト公式HP CpuStres – Windows Sysinternals | Microsoft Docs

(1)[CPUSTRES]をクリックします。

(2)[フォルダーに表示]をクリックします。

(3)[エクスプローラー]が開きます。 → [CPUSTRES]を右クリックします。

(4)[すべて展開]をクリックします。

(5)[展開]をクリックします。

(6)[Agree]をクリックします。

(7)[CPUSTRES64]をダブルクリックします。

(8)<A>[1]を右クリックします。 → <B>[Activity Level]を展開します。 → <C>[ストレスのレベル]をクリックします。 → ストレスが掛かります。

(9)終了する場合は、[Deactivate]をクリックします。

3-1.メトリックアラート

3-2.アクティビティログアラート

※こちらは、メトリックではありませんが、Azure Monitorの機能の1つとして記載します。

アクティビティログでは、Azure のプラットフォーム ログ(リソースログ、アクティビティログ、Azure ADログ)について確認することが出来ます。

[モニター]のブレードを開きます。 → <A>[アクティビティログ]をクリックします。 → <B>[フィルター]を選択します。

※今回は、VMが削除されたことを検出するアクティビティログアラートを作成します。

(1)削除する予定のAzure VMを作成しておきます。

※作成方法はAzureを使いこなしたい! 1 ~仮想マシン Windows 10~を参照してください。

(2)[モニター]のブレードを開きます。 → <A>[アラート]をクリックします。 → <B>[アラートルール]をクリックします。

(3)[作成]をクリックします。

(4)<A>[範囲の選択]をクリックします。 → <B>[Virtual Machines]をクリックします。

(5)<A>[リソースグループ]にチェックを入れます。 → <B>[完了]をクリックします。 → <C>[次へ:条件>]をクリックします。

(6)<A>[条件の追加]をクリックします。 → <B>[アクティビティログ]をクリックします。 → <C>[検索値]を入力します。 → <D>[シグナル名]をクリックします。

(7)<A>[イベントのレベル][状態][イベント開始者]を選択します。 → <B>[次へ:アクション>]をクリックします。

※今回は検証のため、デフォルトのままとしました。

(8)<A>[アクショングループの選択]をクリックします。 → <B>[アクショングループ名]にチェックを入れます。 → <C>[選択]をクリックします。

※既に作成しているアクショングループを使用したい場合に選択します。

※今回は、異なるアクショングループにしたかったので、[アクショングループの作成]で新規に作成しました。(作成手順は、2-3.メトリックアラート(9)~(15)を参照してください。)

(9)<A>[サブスクリプション]を選択します。[リソースグループ]を選択または新規作成します。[アラートルール名][アラートルールの説明]を入力します。 → <B>デフォルトのままです。 → <C>[次へ:タグ>]をクリックします。

(10)[次へ:確認および作成>]をクリックします。

※今回は検証のため、デフォルトのままとしました。

(11)[作成]をクリックします。

(12)削除する予定のAzure VMのブレードを開きます。 → [削除]をクリックします。

(13)<A>[強制削除の適用]にチェックを入れます。 → <B>[この仮想マシン…]にチェックを入れます。 → <C>[削除]をクリックします。

(14)指定したメールアドレスに以下の画像のアラートメールが届きました。

(15)[アラート名]をクリックします。 → アラートの詳細を確認出来ます。

これで、アクティビティログアラートの構成は完了です。

BLOG POSTS