Azure Monitor を使用してヘルス サービスのエラーの電子メールを送信する

適用対象: Windows Server 2022、Windows Server 2019、Windows Server 2016

Azure Monitor は、クラウドおよびオンプレミス環境の利用統計情報を収集、分析し、それに対応する包括的なソリューションを提供することにより、アプリケーションの可用性とパフォーマンスを最大化します。 このツールは、ご利用のアプリケーションがどのように実行されているかを把握するのに役立ちます。さらに、このツールにより、そのアプリケーションに影響している問題点およびアプリケーションが依存しているリソースを事前に明らかにしておくことができます。

これは、オンプレミスのハイパー収束クラスターに特に役立ちます。 統合されたAzure Monitor 使用すると、クラスターに何らかの問題が発生した場合 (または収集されたデータに基づいて他のアクティビティにフラグを設定する場合) に、電子メール、テキスト (SMS)、およびその他のアラートを構成して、ping を実行できるようになります。 次に、Azure Monitor の動作、Azure Monitor のインストール方法、通知を送信するように構成する方法について簡単に説明します。

System Center を使用している場合は、Windows Server 2019 と Windows Server 2016 記憶域スペース direct クラスターの両方を監視する記憶域スペースダイレクト管理パックを確認してください。

この管理パックには次の機能が含まれています。

  • 物理ディスクのヘルスとパフォーマンスの監視
  • Storage ノードの正常性とパフォーマンスの監視
  • Storage プールの正常性とパフォーマンスの監視
  • ボリュームの回復性の種類と重複除去の状態

Azure Storage について

Azure Monitor によって収集されたすべてのデータは、2 つの基本的な種類であるメトリックとログのどちらかに該当します。

  1. メトリックは、特定の時点におけるシステムの何らかの側面を表す数値です。 メトリックは軽量であり、リアルタイムに近いシナリオをサポートできます。 Azure portal の [概要] ページに Azure Monitor によって収集されたデータが表示されます。

image of metrics ingesting in metrics explorer

  1. ログには、種類ごとに異なるプロパティ セットを持つレコードに編成されたさまざまな種類のデータが含まれます。 イベントやトレースなどの利用統計情報は、組み合わせて分析できるように、パフォーマンス データとともにログとして格納されます。 Azure Monitor が収集したログ データは、収集されたデータをすばやく検索、統合、分析するクエリを使用して分析できます。 Azure portal で Log Analytics を使用してクエリを作成およびテストした後、これらのツールを使用してデータを直接分析できるほか、クエリを保存して視覚化またはアラート ルールに利用することができます。

image of logs ingesting in log analytics

これらのアラートを構成する方法の詳細については、以下を参照してください。

Windows 管理センターを使用してクラスターをオンボードする

Windows 管理センターを使用して、クラスターを Azure Monitor にオンボードすることができます。

Gif of onboarding cluster to Azure Monitor

このオンボードフローでは、次の手順が内部で発生しています。 クラスターを手動で設定する場合に備えて、詳細な構成方法について詳しく説明します。

ヘルスサービスの構成

まず、クラスターを構成する必要があります。 ご存じのように、ヘルス サービスによって、記憶域スペース ダイレクトが実行されているクラスターでの日常的な監視と操作エクスペリエンスが向上します。

上記で説明したように、Azure Monitor では、クラスター内で実行されている各ノードからログが収集されます。 そのため、イベント チャネルに書き込まむようにヘルス サービスを構成する必要があります。イベント チャネルは以下であるとします。

Event Channel: Microsoft-Windows-Health/Operational
Event ID: 8465

ヘルス サービスを構成するには、以下を実行します。

get-storagesubsystem clus* | Set-StorageHealthSetting -Name "Platform.ETW.MasTypes" -Value "Microsoft.Health.EntityType.Subsystem,Microsoft.Health.EntityType.Server,Microsoft.Health.EntityType.PhysicalDisk,Microsoft.Health.EntityType.StoragePool,Microsoft.Health.EntityType.Volume,Microsoft.Health.EntityType.Cluster"

上のコマンドレットを実行して正常性設定を設定すると、 Microsoft Windows 正常性/操作イベントチャネルへの書き込みを開始するイベントが発生します。

Log Analytics の構成

クラスターで適切なログ記録を設定したので、次の手順では Log Analytics を適切に構成します。

概要を説明するために、 Azure Log Analyticsでは、データセンターまたは他のクラウド環境内の物理または仮想 Windows コンピューターからデータを直接収集して、詳細な分析と相関を行うことができます。

サポートされている構成を確認するには、「サポートされている Windows オペレーティング システム」と「ネットワーク ファイアウォールの構成」をご覧ください。

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

Azure Portal へのログイン

Azure Portal (https://portal.azure.com ) にログインします。

ワークスペースの作成

以下に示す手順の詳細については、Azure Monitor のドキュメントを参照してください。

  1. Azure Portal で、 [すべてのサービス] をクリックします。 リソースの一覧で、「Log Analytics」と入力します。 入力を始めると、入力内容に基づいて、一覧がフィルター処理されます。 [Log Analytics] を選択します。

    Azure portal

  2. [作成] をクリックし、次の項目について選択します。

    • 新しい Log Analytics ワークスペースの名前 (DefaultLAWorkspace など) を指定します。

    • 関連付けるサブスクリプションをドロップダウン リストから選択します (既定値が適切でない場合)。

    • [リソース グループ] では、1 つ以上の Azure Virtual Machines を含む既存のリソース グループを選択します。

      Create Log Analytics resource blade

  3. [Log Analytics ワークスペース] ウィンドウで必要な情報を入力したら、 [OK] をクリックします。

情報が検証され、ワークスペースが作成されている間、メニューの [通知] でその進行状況を追跡することができます。

ワークスペース ID とキーを取得する

Microsoft Monitoring Agent for Windows をインストールする前に、Log Analytics ワークスペースのワークスペース ID とキーが必要です。 この情報は、設定ウィザードがエージェントを適切に構成し、そのエージェントを Log Analytics と正常に通信できるようにするために必要です。

  1. Azure Portal の左上隅にある [すべてのサービス] をクリックします。 リソースの一覧で、「Log Analytics」と入力します。 入力を始めると、入力内容に基づいて、一覧がフィルター処理されます。 [Log Analytics] を選択します。
  2. Log Analytics ワークスペースの一覧で、前の手順で作成した DefaultLAWorkspace を選択します。
  3. [詳細設定] を選択します。

    Log Analytics Advance Settings

  4. [接続されたソース][Windows サーバー] の順に選択します。
  5. [ワークスペース ID][主キー] の右側に値が表示されます。 一時的に両方を保存しておきます。ここでは、任意のエディターに両方をコピーして貼り付けます。

Windows にエージェントをインストールする

次の手順では、Microsoft Monitoring Agent をインストールして構成します。 必ず、クラスター内の各サーバーにこのエージェントをインストールし、このエージェントを Windows の起動時に実行するように指定してください。

  1. [Windows サーバー] ページの [Windows エージェントのダウンロード] で、Windows オペレーティング システムのプロセッサ アーキテクチャに応じた適切なバージョンを選択します。
  2. セットアップを実行して、コンピューターにエージェントをインストールします。
  3. [ようこそ] ページで [次へ] をクリックします。
  4. [ライセンス条項] ページの記述内容を確認し、 [同意する] をクリックします。
  5. [インストール先フォルダー] ページで、既定のインストール フォルダーを変更するか、変更せずに [次へ] をクリックします。
  6. [エージェントのセットアップ オプション] ページで、エージェントを接続する Azure Log Analytics をクリックし、 [次へ] をクリックします。
  7. Azure Log Analytics ページで、次の操作を行います:
    1. [ワークスペース ID][ワークスペース キー (主キー)] に、先ほどコピーした値を貼り付けます。 a. コンピューターがプロキシ サーバーを介して Log Analytics サービスと通信する必要がある場合は、 [詳細] をクリックし、プロキシ サーバーの URL とポート番号を指定します。 プロキシ サーバーで認証が必要な場合には、プロキシ サーバーにアクセスするためのユーザー名とパスワードを入力し、 [次へ] をクリックします。
  8. 必要な構成設定をしたら、 [次へ] をクリックします。

    paste Workspace ID and Primary Key

  9. [インストールの準備完了] ページで、設定内容を確認し、 [インストール] をクリックします。
  10. [構成は正常に終了しました] ページで [完了] をクリックします。

完了すると、コントロール パネルMicrosoft Monitoring Agent が表示されます。 構成を検証して、エージェントが Log Analytics に接続されていることを確認できます。 接続時に、 [Azure ログ分析] タブで、エージェントに以下を示すメッセージが表示されます。Microsoft Monitoring Agent は、Microsoft ログ分析サービスに正常に接続されています。

MMA connection status to Log Analytics

サポートされている構成を確認するには、「サポートされている Windows オペレーティング システム」と「ネットワーク ファイアウォールの構成」をご覧ください。

Windows Admin Center を使用してアラートを設定する

Windows 管理センターでは、Log Analytics ワークスペース内のすべてのサーバーに適用される既定のアラートを構成できます。

A short video that shows a user configuring default alerts that will apply to all servers in your Log Analytics workspace.

選択できるアラートとその既定の条件を次に示します。

アラート名 既定の条件
CPU 使用率 10 分の間 85% を超えている
ディスク容量使用率 10 分の間 85% を超えている
メモリ使用率 使用可能なメモリが 10 分の間 100 MB 未満である
Heartbeat 5 分間のビート数が 2 未満である
システムの重大なエラー クラスター システムのイベント ログ内に重大なアラートがある
ヘルス サービスのアラート クラスター上にヘルス サービスのエラーがある

Windows Admin Center でアラートを構成すると、Azure の Log Analytics ワークスペースにアラートが表示されます。

A short video that shows the user accessing the alerts in the log analytics workspace in Azure.

このオンボードフローでは、次の手順が内部で発生しています。 クラスターを手動で設定する場合に備えて、詳細な構成方法について詳しく説明します。

イベントとパフォーマンス データを収集する

Log Analytics は、イベントを Windows イベント ログから収集でき、長期分析およびレポートのために指定されたパフォーマンス カウンターからも収集できます。また、特定の条件が検出された場合はアクションを実行できます。 以下の手順に従って、Windows イベント ログと、手始めとしていくつかの一般的なパフォーマンス カウンターからのイベントの収集を構成します。

  1. Azure ポータルで、左下隅にある [その他のサービス] をクリックします。 リソースの一覧で、「Log Analytics」と入力します。 入力を始めると、入力内容に基づいて、一覧がフィルター処理されます。 [Log Analytics] を選択します。
  2. [詳細設定] を選択します。

    Log Analytics Advance Settings

  3. [データ] を選択してから、 [Windows イベント ログ] を選択します。
  4. ここで、次の名前を入力してヘルス サービス イベント チャネルを追加し、プラス記号 + をクリックします。
    Event Channel: Microsoft-Windows-Health/Operational
    
  5. テーブルで、重大度の [エラー][警告] のチェック ボックスをオンにします。
  6. ページの上部にある [保存] をクリックして構成を保存します。
  7. [Windows パフォーマンス カウンター] を選択して、Windows コンピューターでのパフォーマンス カウンターの収集を有効にします。
  8. 新しい Log Analytics ワークスペースの Windows パフォーマンス カウンターを初めて構成する場合は、いくつかの一般的なカウンターをすばやく作成するためのオプションが表示されます。 それぞれのオプションの横には、チェック ボックスが表示されます。
    Default Windows performance counters selected
    [選択したパフォーマンス カウンターを追加する] をクリックします。 カウンターが追加され、10 秒間の収集サンプル間隔でプリセットされます。
  9. ページの上部にある [保存] をクリックして構成を保存します。

ログデータに基づく警告の作成

ここまで進むと、クラスターから Log Analytics にログとパフォーマンス カウンターが送信されるようになります。 次の手順では、ログ検索を一定の間隔で自動的に実行するアラート ルールを作成します。 ログ検索の結果が特定の条件に一致した場合、電子メールまたはテキスト通知を送信するアラートが発生します。 以下で、これについて説明します。

クエリを作成する

最初に、ログ検索ポータルを開きます。

  1. Azure Portal で、 [すべてのサービス] をクリックします。 リソースの一覧で「Monitor」と入力します。 入力を始めると、入力内容に基づいて、一覧がフィルター処理されます。 [モニター] を選択します。
  2. [モニター] ナビゲーション メニューで [Log Analytics] を選択し、ワークスペースを選択します。

テーブルのすべてのレコードを返すシンプルなクエリを使用すると、作業データを最も簡単に取得できます。 検索ボックスに次のクエリを入力し、検索ボタンをクリックします。

Event

データは既定のリスト ビューに返されます。ここで、返されたレコードの合計数を確認できます。

Simple query

画面の左側はフィルター ウィンドウです。ここでは、クエリを直接変更せずに、フィルターを追加することができます。 そのレコードの種類について、レコードのプロパティがいくつか表示されます。1 つまたは複数のプロパティ値を選択して検索結果を絞り込むことができます。

[EVENTLEVELNAME] の下にある [エラー] の横のチェックボックスをオンにするか、次のように入力して結果をエラー イベントに限定します。

Event | where (EventLevelName == "Error")

Filter

確認するイベントに関する適切なクエリを作成したら、次の手順のために保存します。

アラートを作成する

ここで、アラートの作成例を見ていきましょう。

  1. Azure Portal で、 [すべてのサービス] をクリックします。 リソースの一覧で、「Log Analytics」と入力します。 入力を始めると、入力内容に基づいて、一覧がフィルター処理されます。 [Log Analytics] を選択します。

  2. 左側のウィンドウで、 [アラート] を選択し、ページの上部の [新しいアラート ルール] をクリックして新しいアラートを作成します。

    Create new alert rule

  3. 最初の手順では、[アラートの作成] セクションで、リソースとして Log Analytics ワークスペースを選択します。これがログ ベースのアラート シグナルであるためです。 複数のサブスクリプションがある場合は、ドロップダウン リストから、先ほど作成した Log Analytics ワークスペースが含まれている特定のサブスクリプションを選択して結果をフィルターします。 ドロップダウン リストから [Log Analytics] を選択して [リソースの種類] をフィルターします。 最後に、[リソース DefaultLAWorkspace] を選択し、[完了] をクリックします。

    Create alert step 1 task

  4. [アラートの条件] セクションで、 [条件の追加] をクリックして保存済みのクエリを選択し、アラート ルールが従うロジックを指定します。

  5. 次の情報を指定して、アラートを構成します。a. [基準] ドロップダウン リストで [メトリック測定] を選択します。 メトリック測定では、クエリの対象となったオブジェクトのうち、値が指定されたしきい値を上回っているオブジェクトについて、それぞれ別個にアラートが生成されます。 b. [条件] では、 [より大きい] を選択し、しきい値を指定します。 c. 次に、アラートをトリガーするタイミングを定義します。 たとえば、 [連続する違反] を選択し、ドロップダウン リストから [より大きい] を選択し、値「3」を入力します。 d. [評価基準] セクションで、 [期間] の値を 30 分に変更し、 [頻度] を 5 に変更します。 ルールは 5 分ごとに実行され、現在の時刻から直近の 30 分以内に作成されたレコードが返されます。 この期間をより広い時間枠に設定すると、潜在的なデータの待機時間の原因となるため、クエリでは、アラートが決して発生しない検知漏れを回避するために確実にデータが返されるようにします。

  6. [完了] をクリックして、アラート ルールを完成させます。

    Configure alert signal

  7. 2 番目の手順に進み、 [アラート ルール名] フィールドに「すべてのエラー イベントでのアラート」のようなアラートの名前を入力します。 アラートの詳細を説明する [説明] を指定し、表示されたオプションから [重大度] 値として [重大 (重大度 0)] を選択します。

  8. 作成時にアラート ルールをすぐにアクティブ化するには、 [ルールの作成時に有効にする] の既定値を受け入れます。

  9. 3 番目および最後の手順では、 [アクション グループ] を指定します。これにより、アラートがトリガーされるたびに同じアクションが実行され、定義する各ルールに同じアクションを使用できます。 次の情報を指定して、新しいアクション グループを構成します。a. [新しいアクション グループ] を選択すると、 [アクション グループの追加] ウィンドウが表示されます。 b. [アクショングループ名] に、「操作-通知」や「 itops-n」などの短い名前を指定します。c.サブスクリプションリソースグループの既定値が正しいことを確認します。 正しくない場合は、ドロップダウン リストから正しいものを 1 つ選択します。 d. [アクション] セクションで、「電子メールの送信」などのアクション名を指定し、 [アクションの種類] でドロップダウン リストから [電子メール/SMS/プッシュ/音声] を選択します。 追加情報を指定するために [電子メール/SMS/プッシュ/音声] プロパティ ウィンドウが右側に開きます。 e. [電子メール/SMS/プッシュ/音声] ウィンドウで、任意のものを選択して設定します。 たとえば、 電子メール を有効にし、メッセージの配信先となる有効な電子メール SMTP アドレスを指定します。f. [OK] をクリックして変更を保存します。

    Create new action group

  10. [OK] をクリックしてアクション グループを完成させます。

  11. [アラート ルールの作成] をクリックしてアラート ルールを完成させます。 すぐに実行が開始されます。

    Complete creating new alert rule

アラートの例

参考のため、Azure でのアラートの例を次に示します。

Gif of alert in Azure

Azure Monitor によって送信される電子メールの例を次に示します:

Alert email example

その他の参照情報