モニターで生成されたアラートを閉じる方法

重要

このバージョンの Operations Manager はサポート終了に達しました。 Operations Manager 2022 にアップグレードすることをお勧めします。

モニターは、オブジェクトのヘルス状態を定義します。 オブジェクトには、緑 (成功または正常)、黄 (警告) 、赤 (重大または異常) のいずれかのヘルス状態が示されます。 たとえば、ディスク ドライブの容量のモニターで、使用済み容量が 85% 未満の場合は緑、85% 以上の場合は黄、90% 以上の場合は赤と定義する場合があります。 状態が変わったときにアラートを発生するようにモニターを構成することもできます。

アラートを受け取った場合、アラートがルールまたはモニターのどちらにより生成されたかなどの詳細をアラートで確認できます。 アラートがモニターにより生成された場合、ヘルス状態が正常に戻ったときにモニターによりアラートを自動解決するよう許可することが推奨されます。 オブジェクトが警告または異常な状態の間にアラートを閉じると、問題は解決されませんが、それ以上のアラートは生成されません。

ヘルス状態が赤に変更されたときにモニターによりアラートが生成され、アラートを解決した場合は、モニターのヘルス状態もリセットする必要があります。 モニターがリセットされない場合、アラートを生成したのと同じ条件が再び発生する可能性がありますが、正常性状態が変更されていないため、アラートは生成されません。

2019 より前の Operations Manager では、オブジェクトが警告または異常な状態にあるときにアラートを閉じると、問題は未解決のままですが、それ以上のアラートは生成されません。 この動作は、多くの場合、システムにアクティブなアラートがない一方で、基になる問題が存在するシナリオに至りましたが、Operations Manager 2019 で修正されています。

Operations Manager 2019 では、対応するモニターの正常性状態が 正常でない限り、モニターによって生成されたアラートを閉じることはできません。 異常なモニターによって生成されたアラートを閉じようとすると、エラー メッセージが表示され、アラートは閉じられません。

オペレーション コンソールと Web コンソールの両方から、この新しい動作を確認することができます。

オペレーション コンソール

次の手順のようにします。

  1. Operations Manager コンソールを開き、[監視] を選択します

    [監視の概要] には、モニターの正常性状態と現在のアラートの概要が表示されます。

  2. ナビゲーション ウィンドウで [ アクティブなアラート ] を選択します。

  3. 異常な状態のモニターによって生成された、アラートを右クリックします。

  4. 解決状態を [解決済み] として設定します。

    アラートが閉じられない理由を示す以下のメッセージが表示されます。

    現在選択されているアラートは、これらのアラートを生成したモニターがまだ正常ではないため、閉じることができません。 閉じることができないアラートの詳細については、Operations Manager Web コンソールの "アラート クロージャ エラー" ダッシュボードをご覧ください

    閉じられたアラート メッセージ操作コンソールを示すスクリーンショット。

    Note

    このアラートを閉じるには、対応するモニターの正常性状態を手動で正常性状態にリセットする必要があります。 このモニターの自動解決true に設定されている場合、アラートは、正常性状態がリセットされた後、自動的に閉じられます。 それ以外の場合、アラートは、正常性状態がリセットされた後に、手動で閉じる必要があります。

Web コンソール

  1. Web コンソールを開き、[ 監視] を選択します。 [監視の概要] には、モニターの正常性状態と現在のアラートの概要が表示されます。

  2. ナビゲーション ウィンドウで [ アクティブなアラート ] を選択します。

  3. 異常な状態のモニターによって生成された、アラートを開きます。

  4. 解決状態を [解決済み] として設定し、変更内容を保存します。

    アラートが閉じられない理由を示す以下のメッセージが表示されます。

    現在のアラートは、このアラートを生成したモニターがまだ正常ではないため、閉じることができません

    閉じられたアラート メッセージ Web コンソールを示すスクリーンショット。

    Note

    このアラートを閉じるには、このアラートを生成した対応するモニターの正常性を手動でリセットする必要があります。

対応するアラートのモニターの正常性状態を手動でリセットする

次の手順のようにします。

  1. ナビゲーション ウィンドウで [ アラートの終了エラー ] ダッシュボードを選択します。 ダッシュボードにアラートが一覧表示されます。これらは、アラートを生成したモニターが異常な状態であるため、Operations Manager で閉じることができなかったものです。

  2. 次の 2 つの方法で、対応するアラートのモニターの正常性状態をリセットすることができます。

    • ダッシュボードでアラートを選択し、ダッシュボード アクションの [Reset Health for Alert](アラートの正常性をリセットする) を選択します。 または
    • このダッシュボードでアラートを選択してアラートのドリルダウン ページに移動し (アラートに関連するすべての情報を視覚化できます)、作業ウィンドウで [正常性のリセット] タスク を選択します。

    アラートのモニターの正常性のリセットを示すスクリーンショット。

アラート更新 API

インシデント管理などの外部システムからアラートのクローズがトリガーされ、対応するモニターが異常であるためにアラートが閉じられなかった場合は、アラートの詳細と共に例外が渡され、外部システムによって使用される可能性があります。

アラート更新データの外部化には、次の既存のアラート更新 API を使用できます。 これら 2 つの API は、この新しい動作の外部化を有効にするために拡張されたものです。

  • アラート更新 API 1

  • アラート更新 API 2

次のサンプルには、例外 AlertMonitorUnhealthyException を使用する方法の詳細が示されています。

namespace MonitorAlertClosureFailureExample
{
    class Program
    {
        static void Main(string[] args)
        {
            ManagementGroup mg = new ManagementGroup("localhost");

            // Get database availability alerts.
            MonitoringAlertCriteria alertCriteria = new MonitoringAlertCriteria(
                "Name LIKE '%DBStatusMonitor' AND Category = 'AvailabilityHealth'");
            IList<MonitoringAlert> alerts =
                mg.OperationalData.GetMonitoringAlerts(alertCriteria, default(DateTime));

            // Find the "Closed" resolution state that is defined
            // for this Management Group.
            IList<MonitoringAlertResolutionState> alertStates = mg.OperationalData.GetMonitoringAlertResolutionStates();
            MonitoringAlertResolutionState closedState = null;
            foreach (MonitoringAlertResolutionState thisState in alertStates)
            {
                if (thisState.Name == "Closed")
                {
                    closedState = thisState;
                }
            }

            // Close all alerts not already in the "Closed" resolution state.
            foreach (MonitoringAlert a in alerts)
            {
                a.ResolutionState = closedState.ResolutionState;
                string comment = "Closing the Alert";
                try
                {
                    a.Update(comment);
                }
                catch (AlertMonitorUnhealthyException e)
                {
                    // It mean the alert being closed is a monitor alert and the monitor which generated this alert is still unhealthy
                    // take an appropriate action. Here an error message is being displayed at console
                    Console.WriteLine("The alert with Alert Name" + a.Name + "cannot be closed as the monitor which genrated the alert is still unhealthy.")
                }
                catch (Exception e)
                {
                    // generic exception during the update of the alert
                    Console.WriteLine("Closing the alert with alert name" + a.Name + "is failing because" + e.Message)
                }

            }

    }
}


namespace MonitorAlertClosureFailureExample
{
    class Program
    {
        static void Main(string[] args)
        {
            ManagementGroup mg = new ManagementGroup("localhost");

            // Get database availability alerts.
            MonitoringAlertCriteria alertCriteria = new MonitoringAlertCriteria(
                "Name LIKE '%DBStatusMonitor' AND Category = 'AvailabilityHealth'");
            IList<MonitoringAlert> alerts =
                mg.OperationalData.GetMonitoringAlerts(alertCriteria, default(DateTime));

            // Find the "Closed" resolution state that is defined
            // for this Management Group.
            IList<MonitoringAlertResolutionState> alertStates = mg.OperationalData.GetMonitoringAlertResolutionStates();
            MonitoringAlertResolutionState closedState = null;
            foreach (MonitoringAlertResolutionState thisState in alertStates)
            {
                if (thisState.Name == "Closed")
                {
                    closedState = thisState;
                }
            }

            // Close all alerts not already in the "Closed" resolution state.
            string comment = "Closing the alert";
            foreach(MonitoringAlert a in alerts)
            {
                a.ResolutionState = closedState.ResolutionState;
            }

            IList<MonitoringAlertUpdateFailure> updateFailures = mg.OperationalData.UpdateMonitoringAlerts(alerts, comment);

            if (updateFailures != null && updateFailures.Count > 0)
            {
                foreach (MonitoringAlertUpdateFailure failure in updateFailures)
                {
                    if(failure.Exception is AlertMonitorUnhealthyException)
                    {
                        // It means the alert being closed is a monitor alert and the monitor which generated this alert is still unhealthy
                        // take an appropriate action. Here an error message is being displayed at console
                        Console.WriteLine("The alert with Alert Name" + a.Name + "cannot be closed as the monitor which genrated the alert is still unhealthy.")
                    }
            }           
        }

    }
}

アラートが自動解決されるかどうかを確認するには

次の手順のようにします。

  1. アラートを選択し、アラートの詳細でアラート モニターの名前を選択します。 モニターのプロパティ ダイアログが開きます。

  2. モニターのプロパティで、[アラート] タブ 選択して、[ モニターが正常な状態に戻ったときにアラートを自動的に解決 する] オプションが選択されているかどうかを確認します。

モニターにより生成されたアラートを閉じるには

次の手順のようにします。

  1. アラートを読み、そのプロパティを確認します。 アラートの詳細で、アラートがモニターかルールのどちらにより生成されたのかを確認します。 アラートの製品ナレッジを使用して、アラートの原因について調べます。

  2. アラートの原因のトラブルシューティングを行い、問題解決に必要な処置を取ります。

  3. 問題が解決したら、アラートの詳細で [ソース ] を選択します。 アラートに関連付けられたオブジェクトの [状態] ビューが開きます。

  4. オブジェクトを右クリックし、[開く] をポイントし、オブジェクト名として [正常性エクスプローラー] を選択します。

  5. アラートを生成したモニターを選択し、ツール バーの [ 正常性のリセット ] を選択します。 ヘルス エクスプローラーと [状態] ビューを閉じます。

  6. アラート ビューを最新の情報に更新します。 アラートがまだ表示されている場合は、アラートを選択し、[操作] ウィンドウで [ アラートを閉じる ] を選択します。

Note

次の更新プログラム (孤立したアラートを閉じる) は、Operations Manager 2019 UR3 以降に適用されます。

孤立したアラートを閉じる

Operations Manager 2019 RTM、UR1、UR2 では、次に詳しく説明するように、特定のシナリオでは非永続的正常性状態の後にアクティブなアラートが閉じられません。

  1. フェールオーバー:

    • 管理サーバーがオフラインになったときにトリガーされる可能性があるフェールオーバー。
    • 新しい管理サーバーがリソース プールに追加されたために、負荷分散が発生する場合。
    • エージェントレス コンピューターがフェールオーバーされ、別の管理サーバーによって監視されるときに、そのために新しい正常性状態になった場合。
  2. エージェントが切断され、しばらくしてもう一度接続され、正常性状態が変化しても前の状態が認識されません。

  3. 管理サーバーが切断され、再接続された場合。

  4. ヘルス サービスのキャッシュがクリアされた場合。

全体的に、正常性サービスはモニターの最後の状態を保持しません。モニターを正常にリセットしている間、アラートは閉じられません。

Operations Manager 2019 UR3 では、次に詳細を示すように、最終的にすべての孤立アラートがモニターの種類に応じて終了します。

  • サービス モニター: すぐに終了します。
  • 即時オンデマンド モジュールがあるすべてのモニター: すぐに終了します。
  • オンデマンド モジュールのないすべてのモニター: 頻度に応じて 2 回目の実行時に終了します。
  • イベント ベース モニター: 初期化後に発生する正常なイベントで終了します。

正常性状態の遷移は、モニターの初期化時に軽微な変更を示します。以下のサンプル:

正常性状態の遷移を示すスクリーンショット。

上の図に示すように、初期化中にモニターは最初は正常になります。 その後、再び計算して、正常になります。 空の状態から正常な状態への 2 つの 状態変更の遷移が表示されます。

アラート終了エクスペリエンスの変更

Operations Manager 2022 を使用すると、管理者は異常な状態にある、ヘルス モニターのアラートの終了を選択できます。

リリース 2019 では、対応するモニターの正常性状態が正常でない限り、モニターによって生成されたアラートを閉じることができませんでした。 異常なモニターによって生成されたアラートを閉じようとすると、エラー メッセージが表示され、アラートは閉じられません。

Operations Manager 2022 では、管理者は [管理]>[設定] に移動して、次のオプションのいずれかを選択することで、この動作を変更できます。

  • 基になるモニターの正常性が手動で解決またはリセットされたときにのみ、モニターによって生成されたアラートを閉じます
  • 基になるモニターの正常性をリセットしてモニターによって生成されたアラートを閉じる: このオプションを使用すると、プログラムや UI で異常なモニターのアラートを閉じることができます。 これにより、基になるモニターの正常性がリセットされ、対応するアラートが暗黙的に閉じられます。 また、このオプションを使用すると、モニターによって生成されたアラートを一括終了できます。

[アラートのプロパティ]>[履歴] を表示して、アラートがどのように閉じられたかを追跡することもできます。

グローバル管理グループの設定を示すスクリーンショット。

アラート履歴を示すスクリーンショット。

次の手順

  • アラートが生成されると、操作と Web コンソールで アクティブなアラートと詳細を表示 して、考えられる問題を特定し、それらを解決するための次の手順を特定できます。

  • 1 つ以上のモニターによって検出された問題を調査して解決した後、「 正常性をリセットする方法 」を確認して、モニターが自動解決するように構成されていない場合、またはモニターが正常性状態を検出するまで待機しない場合は、正常性を手動でリセットします。