【Hinemos】Hinemos ver4.1系で、varbindを文字列フィルタリング
投稿日: / 更新日:
この記事は2年以上前に書かれたものです。情報が古い可能性があります。
この頃肌寒い日が続きますが、皆様いかがお過ごしでしょうか。
突然ですが、Hinemosには『SNMPTRAP監視』という監視機能があります。
SNMPTRAP監視は、「SNMPTRAPをHinemosマネージャで受信し、通知を行うことを可能とする機能(Hinemos ver4.1 ユーザマニュアル 第4版 P.109より抜粋)」です。
このSNMPTRAP監視は、Hinemos ver4.1以前ではOIDでの重要度判定は出来ましたが、SNMPTRAP内に含まれるvarbindの内容で通知の重要度を決定することはできませんでした。(Hinemos最新版 ver5.0では、SNMPTRAP監視でvarbindの内容でフィルタリングを行い、重要度判定することが可能となっています。)
そこで、今回は、Hinemos ver4.1でSNMPTRAPのOIDは同じものを使用し、SNMPTRAPのvarbindに設定したメッセージで文字列フィルタリングを行う方法をご紹介したいと思います。
簡潔に言うと、varbindをシステムログ監視で検知してしまおう!ということです。
具体的には、SNMPTRAP監視の監視結果を、コマンド通知を使用してHinemosマネージャのシステムログに出力させ、システムログ監視で文字列マッチングをかけ、マッチすればシステムログ監視で設定した重要度で通知を行う…といった方法になります。
では、早速設定してみましょう。
-今回用意した環境-
○Hinemosマネージャサーバ
OS:Linux
Hinemosマネージャ:ver4.1.3
○SNMPTRAP送信用サーバ
OS:Linux
まずSNMPTRAP監視を設定します。監視対象ノードは【SNMPTRAP送信用サーバ】です。
SNMPTRAPのvarbindをシステムログへ出力させるため、SNMPTRAP監視のSNMPTRAP[トラップ定義の変更]ダイアログの、詳細メッセージ欄へ、varbindの内容を置換する文字列%parm[#n]%(今回は%parm[#1]%)を記述します。
次にSNMPTRAP監視にコマンド通知を設定します。
コマンド通知の”コマンド”欄には、どのノードからSNMPTRAPが送られてきたのか判断できるように、送信元ノードのファシリティID、およびオリジナルメッセージ(前述のSNMPTRAP監視の設定で、varbindの内容が置換されています。)をシステムログへ出力するようなコマンドを入力します。
コマンド例:logger ‘SNMPTRAP_NODE=#[FACILITY_ID] #[ORG_MESSAGE]’
あと今回はSNMPTRAP監視の監視結果もHinemosクライアントから確認したいので、イベント通知も設定しておきます。
最後にシステムログ監視を設定します。
SNMPTRAP監視に設定したコマンド通知は、Hinemosマネージャが動作するサーバでコマンドを実行します。コマンドが実行されると、HinemosマネージャサーバのシステムログにSNMPTRAPが出力されるため、システムログ監視の監視対象はHinemosマネージャサーバにする必要があります。
システムログ監視のフィル[作成・変更]ダイアログで、パターンマッチ表現に検知するvarbindのメッセージを設定し、そのメッセージを検知したときの重要度を設定します。
今回は以下のように設定しました。
1.
パターンマッチ表現:.∗INFO.∗
重要度:情報
2.
パターンマッチ表現:.∗ERROR.∗
重要度:危険
これで設定は完了です。
実際にSNMPTRAPを送って検知できるのか試してみます。
SNMPTRAP送信用サーバから、以下のSNMPTRAPをマネージャサーバ宛に送信してみます。
1 |
snmptrap -v 2c -c public [マネージャサーバのIP] '' .1.3.6.1.6.3.1.1.5.4 0 s "INFO" |
想定される監視結果は、SNMPTRAP監視、システムログ監視ともに「情報」で検知されることですが…。
想定通りの結果が出力されることが確認できました。
マネージャサーバのシステムログとシステムログ監視のオリジナルメッセージを比べてみると、同じメッセージが記載されていることがわかります。
【システムログ監視】
#メッセージに含まれている「\xA」は制御コード(改行)です。
次は、以下のSNMPTRAPを送ってみます。
1 |
snmptrap -v 2c -c public [マネージャサーバのIP] '' .1.3.6.1.6.3.1.1.5.4 0 s "ERROR" |
このSNMPTRAPで想定される監視結果は、システムログ監視のみ「危険」で検知されることです。
はい、こちらも想定通りの結果となりました。
【システムログ】
【システムログ監視】
ちなみにシステムログ監視の監視結果は、”ファシリティID”が全てHinemosマネージャサーバになってしまいます。
そのため、どのサーバからSNMPTRAPが送られてきたのか判断するためには監視結果の「メッセージ」を確認する必要があり、少々判断しにくい部分もあるかもしれませんが、これでSNMPTRAPのvarbindの内容で通知の重要度を変更することができます。
以上、簡単ですがHinemos ver4.1系で、varbindを文字列フィルタリングする方法の紹介でした。
(担当:NTK)