文:ジュピターテクノロジー 山端
前回の 【SolarWinds Hybrid Cloud Observability 完全セットアップマニュアル】その7. NCMでNW機器の正常性監視を自動化する① はご覧いただけたでしょうか?本記事は、前回からの続きとなりますので、まだ読んでいない方は必ずご覧ください。
本記事でご紹介するSolarWinds Network Configuration Manager (以下、NCM) の設定手順は、以下の通りです。
- コンフィグダウンロードジョブ設定
- アラートとアラートアクション設定
※本記事に記載の手順および画像はSolarWinds Hybrid Cloud Observability (以下、HCO) 2024.1.0に準拠します。
お使いのバージョンによっては一部表記が異なる場合がございます。
コンフィグダウンロードジョブ設定
前回の記事で設定したコンフィグタイプ「Logging」を使用するジョブを設定します。
上部メニューの「マイダッシュボード」>「ネットワーク設定」>「ジョブ」をクリック。

「ジョブリスト」画面で「新しいジョブを作成」をクリック。

任意の「ジョブ名」を入力します。
「ジョブタイプ」のプルダウンメニューから「デバイスからコンフィグをダウンロード」を選択します。任意のスケジュールを設定し「次へ」をクリック。

「利用可能なノード」ペインからジョブを実行するノードを選択して「追加」をクリック。

「選択されたノード」ペインにノードが追加されたことを確認して「次へ」をクリック。
※ここでは前回の記事で作成したデバイステンプレートを割り当てているノードを選択します。それ以外のノードを選択した場合はエラーとなります。

図1-5. ノード選択②
今回は通知の詳細設定は行わないので「次へ」をクリック。

前回の記事で作成したコンフィグタイプ「Logging」にチェックを入れて「次へ」をクリック。

設定内容のプレビューを確認し「終了」をクリック。

これでCisco機器からshow loggingコマンドのログを自動取得するジョブが作成できました。
動作を確認する場合は、「ジョブリスト」画面でジョブ名にチェックを入れて「ジョブの開始」をクリック。ジョブが終了するまで待機します。

取得したログを確認するには、上部メニューの「マイダッシュボード」>「ネットワーク設定」>「コンフィグ管理」をクリック。

「設定管理」タブで実行したノード名の右側の▷をクリックして展開します。
ジョブが実行できていれば下記の図1-11のように「Logging」の取得データが表示されます。

実行日時をクリックすると取得したログの詳細を確認できます。

アラートとアラートアクション設定
続いて、先ほどのジョブで取得したログが特定の文字列を含む/含まない場合にトリガーするアラートを作成します。
上部メニューの「アラートとアクティビティ」>「アラート」をクリック。

アクティビティメニュー
「アラートの管理」をクリック。

「新しいアラートの追加」をクリック。

「アラート定義の名前」「アラートの評価頻度」「重大度」などを設定し「次へ」をクリック。

続いて「トリガー条件」を設定していきます。
HCOの標準的なアラートではプルダウンメニューから項目を選択していくだけで条件を設定することができますが、今回作成するアラートではSQLクエリを使用して条件を設定します。
「アラート作成対象」のプルダウンメニューから「カスタムSQLアラート (高度)」を選択。
「SQL条件を設定」のプルダウンメニューから「Node」を選択。条件に対応するSELECT, FROM文が自動で設定されます。

FROM以下のフィールドに下記のWHEREで始まる条件文をどちらか入力します。
<コンフィグタイプ名>には監視対象のログを取得するコンフィグタイプ名、<検出対象の文字列>には任意の文字列を入力してください。
●特定の文字列を含む場合にトリガーする条件文:
WHERE Nodes.NodeID IN (
SELECT x2.NodeID
FROM (
SELECT *
FROM (
SELECT
N.NodeID,
NCMConfig.DownloadTime,
NCMConfig.ConfigType,
NCMConfig.Config,
ROW_NUMBER() OVER(PARTITION BY NCMConfig.NodeID ORDER BY DownloadTime DESC) AS rn
FROM [SolarWindsOrion].[dbo].[NCM_ConfigArchive] NCMConfig
JOIN [SolarWindsOrion].[dbo].[NCM_Nodes] NCMNodes ON NCMConfig.NodeID = NCMNodes.NodeID
JOIN [SolarWindsOrion].[dbo].[Nodes] N ON N.NodeID = NCMNodes.CoreNodeID
WHERE NCMConfig.ConfigType = '<コンフィグタイプ名>'
) AS x
WHERE x.rn = 1
) AS x2
WHERE x2.Config like '%<検出対象の文字列>%'
)
●特定の文字列を含まない場合にトリガーする条件文:
WHERE Nodes.NodeID IN (
SELECT x2.NodeID
FROM (
SELECT *
FROM (
SELECT
N.NodeID,
NCMConfig.DownloadTime,
NCMConfig.ConfigType,
NCMConfig.Config,
ROW_NUMBER() OVER(PARTITION BY NCMConfig.NodeID ORDER BY DownloadTime DESC) AS rn
FROM [SolarWindsOrion].[dbo].[NCM_ConfigArchive] NCMConfig
JOIN [SolarWindsOrion].[dbo].[NCM_Nodes] NCMNodes ON NCMConfig.NodeID = NCMNodes.NodeID
JOIN [SolarWindsOrion].[dbo].[Nodes] N ON N.NodeID = NCMNodes.CoreNodeID
WHERE NCMConfig.ConfigType = '<コンフィグタイプ名>'
) AS x
WHERE x.rn = 1
) AS x2
WHERE x2.Config not like '%<検出対象の文字列>%'
)

このクエリは、例えば次のようなSyslogメッセージの検知に使用できます。
1. %LINK-3-UPDOWN: Interface <interface>, changed state to down
– インターフェイスがダウン
2. %LINEPROTO-5-UPDOWN: Line protocol on Interface <interface>, changed state to down
– インターフェイスのラインプロトコルがダウン
3. %SYS-2-MALLOCFAIL: Memory allocation of <size> bytes failed from <module>
– メモリの割り当てに失敗
4. %SYS-3-CPUHOG: Task ran for <time> msecs
– 特定のタスクがCPUを過度に使用
5. %LINK-5-CHANGED: Interface <interface>, changed state to administratively down
– インターフェイスが管理的にダウンに変化
クエリ入力後にフィールド下部の「検証」をクリックしてクエリが有効であることを確認し「次へ」をクリック。
リセット条件は、今回は「トリガー条件が真でなくなったときにこのアラートをリセット(推奨)」を選択します。「次へ」をクリック。

今回はスケジュールを設定しないので、「アラートは常に有効です。」を選択して「次へ」をクリック。

続いて通知に使用するトリガーアクションを設定します。
今回は「NetPerfMonイベントログにアラートを記録」、「電子メール/ページを送信」の2つを設定します。「アクションを追加」をクリック。

「NetPerfMonイベントログにアラートを記録」を選択して「アクションを設定」をクリック。

任意の「アクション名」を入力します。
「NetPerfMonイベントログにアラートを記録の設定」のフィールドに、Webコンソール上で表示したいメッセージを入力します。今回は変数を使用してアラート名と対象のノード名を表示するテキストを入力しています。「アクションを追加」をクリックするとトリガーアクションとして設定されます。

先程と同様に「アクションを追加」をクリックし、「電子メール/ページを送信」を選択して「アクションを設定」をクリック。

任意の「アクション名」を入力し、宛先メールアドレス、SMTPサーバーを設定します。
今回はメールの件名とメッセージはデフォルトのものを使用します。「アクションを追加」をクリックするとトリガーアクションとして設定されます。

2つのアクションが画面に追加されていることを確認し「次へ」をクリック。

今回はリセットアクションを設定しないのでそのまま「次へ」をクリック。

サマリーを確認し、設定内容に問題がなければ「送信」をクリック。
これで、show Loggingの実行結果から特定の文字列の有無を検知するアラートの設定が終了しました。アラートの発報はWebコンソール上のメッセージとメール通知で確認することができます。

本記事ではshow loggingの設定例をご紹介しましたが、これを応用してその他のshow系コマンドで監視することも可能です。ご使用の環境でぜひお試しください。
最後に
今回はNCMでNW機器の正常性監視を自動化する方法をご紹介しました。
SolarWinds 製品にご興味のある方は、以下のリンクから弊社までお問い合わせください。