【SolarWinds Hybrid Cloud Observability 完全セットアップマニュアル】その10. カスタムアラート設定②

文:ジュピターテクノロジー 山端

前回の 【SolarWinds Hybrid Cloud Observability 完全セットアップマニュアル】その9. カスタムアラート設定① はご覧いただけたでしょうか?本記事は、前回からの続きとなりますので、まだ読んでいない方は必ずご覧ください。

本記事では、カスタムSQLクエリとユニバーサルデバイスポーラー機能を使用したアラートの設定方法をご紹介します。
さらに、今回は弊社で実際に開発したCisco機器向けカスタムアラート例をご紹介します。

  1. HSRPステータスがActiveから変化した場合に検知
  2. Cisco機器のインターフェイスのErrDisableを検知
  3. Cisco機器の温度が閾値を超えた場合、または特定のステータスに変化した場合に検知

※本記事に記載の手順および画像はSolarWinds HCO 2024.2.0に準拠します。 お使いのバージョンによっては一部表記が異なる場合がございます。

ユニバーサルデバイスポーラー設定

まず、アラートで使用するユニバーサルデバイスポーラー (UnDP) を設定します。
UnDPとは、特定のOIDを指定してポーリングを実行することができる機能です。この機能を使用することで、HCOのデフォルトの監視を更に拡張することができます。

本記事でご紹介するカスタムアラートでは、下記OIDから情報を取得するUnDPを使用します。

アラートOID
HSRPステータスがActiveから変化した場合に検知1.3.6.1.4.1.9.9.106.1.2.1.1.15
(cHsrpGrpStandbyState)
Cisco機器のインターフェイスのErrDisableを検知1.3.6.1.4.1.9.9.548.1.3.1.1.2
(cErrDisableIfStatusCause)
Cisco機器の温度が閾値を超えた場合、
または特定のステータスに変化した場合に検知
1.3.6.1.4.1.9.9.13.1.3.1.3
(ciscoEnvMonTemperatureStatusValue)
1.3.6.1.4.1.9.9.13.1.3.1.6
(ciscoEnvMonTemperatureState)

UnDP設定はWebコンソールではなくSolarWinds Platformサーバーから行います。
PlatformサーバーにRDP接続し、スタートメニューから
「SolarWinds Platform」>「Universal Device Poller」をクリック。

図1-1. スタートメニュー

UnDPの設定アプリケーションが起動します。「新規のユニバーサルデバイスポーラー」をクリック。

図1-2. ユニバーサルデバイスポーラー

ポーリング対象のOIDを入力します。「名前」はOID入力時に自動で入力されます。「説明」「詳細オプション」も同様に自動で設定される場合があります。任意で設定変更し「次へ」をクリック。

図1-3. ユニバーサルデバイスポーラーの定義

次に、ポーラーにポーリングの実行対象を割り当てます。「すべてのノード」フォルダの「+」ボタンをクリックして展開し、対象ノードにチェックを入れます。
デフォルトではベンダーでグループ分けされていますが、上部の「グループ化基準」のメニューから変更できます。

図1-4. ポーラーをノードに割り当てる

画面左下の「テスト」をクリックすると、チェックを入れたノードに対してポーリングテストを実行し、結果を表示します。図1-5のように、正常に取得できる場合は値を表示し、できない場合はメッセージを表示します。
ノードのテスト結果を確認して「次へ」をクリック。

図1-5. ポーラーのテスト

次に、データテーブルの各行に付けるラベル名を設定します (データをテーブルで取得する場合のみ) 。今回はデフォルトの「SolarWinds Platformのインターフェイス名を使用」のまま「次へ」をクリックします。

図1-6. テーブルの行にラベルを付ける

次にWebコンソールでのデータ表示を設定します。
Webコンソール上にポーリングデータのグラフやテーブルを表示する場合には、任意の「SolarWinds Platformビュー名」の「チャート」「テーブル」にチェックを入れます。
「終了」をクリックするとポーラーが作成されます。

図1-7. SolarWinds Platform Webサイトに結果を表示

これでUnDP設定は終了です。

カスタムSQLアラート設定

続いて、アラート条件を設定していきます。
本記事では、トリガー条件とリセット条件の設定に絞りご紹介します。
これ以外のアラート設定手順は前回の記事 【SolarWinds Hybrid Cloud Observability 完全セットアップマニュアル】その9. カスタムアラート設定① をご参照ください。

まず「トリガー条件」画面で「アラート作成対象」のプルダウンメニューから「カスタムSQLアラート (高度)」を選択します。
「SQL条件を設定」のプルダウンメニューから任意の項目を選択します。条件に対応するSELECT, FROM文が自動で設定されます。

図2-1. トリガー条件①

FROM以下のフィールドにWHEREで始まる条件文を入力します。
入力後にフィールド下部の「検証」をクリックしてクエリが有効であることを確認し「次へ」をクリック。同様の手順を「リセット条件」画面でも行います。

図2-2. トリガー条件②

今回ご紹介するカスタムアラートで設定するSQLクエリは下記です。
カスタムSQLアラートではアラート範囲指定もクエリで行います。クエリ中の<カスタムプロパティ名>に各アラートに対応するカスタムプロパティ名を入力してください。

① HSRPステータスがActiveから変化した場合に検知
■トリガー条件 (HSRPステータスがActiveから変化した場合にトリガー)
SQL条件を設定:Interface

WHERE Interfaces.InterfaceID IN (
    SELECT hsrp.InterfaceID
    FROM Interfaces AS hsrp
    JOIN CustomPollerAssignmentView hsrpstate
        ON hsrpstate.CustomPollerOid = '1.3.6.1.4.1.9.9.106.1.2.1.1.15'
        AND hsrp.NodeID = hsrpstate.NodeID
    JOIN (
        SELECT *
        FROM (
            SELECT
                [CustomPollerAssignmentID],
                [RowID],
                [Timestamp],
                [Status],
                ROW_NUMBER() OVER (PARTITION BY s.[CustomPollerAssignmentID], s.RowID ORDER BY Timestamp DESC) AS rn
            FROM [SolarWindsOrion].[dbo].[CustomPollerStatistics_CS_cur] s
        ) AS hsrps1
        WHERE rn = 1
    ) AS hsrpStatus1
        ON hsrpstate.CustomPollerAssignmentID = hsrpStatus1.CustomPollerAssignmentID
    JOIN (
        SELECT *
        FROM (
            SELECT
                [CustomPollerAssignmentID],
                [RowID],
                [Timestamp],
                [Status],
                ROW_NUMBER() OVER (PARTITION BY s.[CustomPollerAssignmentID], s.RowID ORDER BY Timestamp DESC) AS rn
            FROM [SolarWindsOrion].[dbo].[CustomPollerStatistics_CS_cur] s
        ) AS hsrps2
        WHERE rn = 2
    ) hsrpStatus2
        ON hsrpStatus1.CustomPollerAssignmentID = hsrpStatus2.CustomPollerAssignmentID
        AND hsrpStatus1.RowID = hsrpStatus2.RowID
    WHERE hsrp. <カスタムプロパティ名> = 'True'
        AND hsrpstatus1.status != '6'
        AND hsrpstatus2.status = '6'
);

■リセット条件 (HSRPステータスがActiveである場合にリセット)
SQL条件を設定:Interface

WHERE Interfaces.InterfaceID IN (
    SELECT hsrp.InterfaceID
    FROM Interfaces AS hsrp
    JOIN CustomPollerAssignmentView hsrpstate
        ON hsrpstate.CustomPollerOid = '1.3.6.1.4.1.9.9.106.1.2.1.1.15'
        AND hsrp.NodeID = hsrpstate.NodeID
    JOIN Custompollerstatus AS hsrpstatus
        ON hsrpstate.CustomPollerAssignmentID = hsrpstatus.CustomPollerAssignmentID
    WHERE hsrpstatus.status = '6'
        AND hsrp. <カスタムプロパティ名> = 'True'
);

② Cisco機器のインターフェイスのErrDisable検知
■トリガー条件 (Cisco機器のインターフェイスがErrDisableである場合にトリガー)
SQL条件を設定:Interface

WHERE Interfaces.InterfaceID IN (
    SELECT err.InterfaceID
    FROM Interfaces AS err
    JOIN CustomPollerAssignmentView errstate
        ON errstate.CustomPollerOid = '1.3.6.1.4.1.9.9.548.1.3.1.1.2'
        AND err.NodeID = errstate.NodeID
    JOIN Custompollerstatus AS errstatus
        ON errstate.CustomPollerAssignmentID = errstatus.CustomPollerAssignmentID
    WHERE errstatus.status > '0'
        AND err. <カスタムプロパティ名> = 'True'
);

■リセット条件 (Cisco機器のインターフェイスがErrDisableではなくなった場合にリセット)
「トリガー条件が真でなくなったときにこのアラートをリセット(推奨)」を選択

③ Cisco機器の温度が閾値を超えた場合、または特定のステータスに変化した場合に検知
■トリガー条件 (機器の温度が75℃を超えた場合、またはステータスがcriticalもしくは shutdownである場合にトリガー)
SQL条件を設定:Node

WHERE Nodes.NodeID IN (
    SELECT TempValue.NodeID
    FROM CustomPollerAssignmentView TempValue
    JOIN CustomPollerStatus TempValue_Status 
        ON TempValue.CustomPollerOid = '1.3.6.1.4.1.9.9.13.1.3.1.3' 
        AND TempValue.CustomPollerAssignmentID = TempValue_Status.CustomPollerAssignmentID
    LEFT JOIN CustomPollerAssignmentView TempState 
        ON TempState.CustomPollerOid = '1.3.6.1.4.1.9.9.13.1.3.1.6' 
        AND TempValue.NodeID = TempState.NodeID
    LEFT JOIN CustomPollerStatus TempState_Status 
        ON TempState.CustomPollerAssignmentID = TempState_Status.CustomPollerAssignmentID 
        AND TempValue_Status.RowID = TempState_Status.RowID
    WHERE TempValue_Status.Status > '75'
        OR (TempState_Status.Status = '3' OR TempState_Status.Status = '4')
);

■リセット条件 (機器の温度が72℃を下回った場合にリセット)
SQL条件を設定:Node

WHERE Nodes.NodeID IN (
    SELECT TempValue.NodeID
    FROM CustomPollerAssignmentView TempValue
    JOIN CustomPollerStatus TempValue_Status 
        ON TempValue.CustomPollerOid = '1.3.6.1.4.1.9.9.13.1.3.1.3' 
        AND TempValue.CustomPollerAssignmentID = TempValue_Status.CustomPollerAssignmentID
    WHERE TempValue_Status.Status < 72
);

前回の記事と同様の手順で「7. アラート設定のサマリー」画面まで設定します。
設定内容を確認して「送信」をクリック。

これで、カスタムSQLクエリを使用したカスタムアラートの設定は終了です。
HCOではこのように、UnDPの活用やSQLクエリの開発によって更に監視条件を拡張することができます。本記事でご紹介したもの以外にも多彩な監視条件を実現できますので、ご使用の環境でぜひお試しください。

最後に

今回はHCOのカスタムアラートの設定方法をご紹介しました。
SolarWinds 製品にご興味のある方は、以下のリンクから弊社までお問い合わせください。

こんな記事も読まれています

最新記事

おすすめ記事

  1. 【Syslog監視】Syslogサーバーとネットワーク監視を連携。PRTGで重要なSyslogだけを監視する。

  2. システム管理者の特権アカウントを保護するための7つの方法

  3. 「Wiresharkでsyslogプロトコルパケットを覗く」syslog-ng Store Box活用連載企画vol.4

製品カテゴリー

JTC IT用語集
TOP