2017-03-06 12 views
0

いくつかのソース(HPスイッチ)からのメッセージをフィルタリングする際に問題がありますが、私はいくつかのアドバイスをしたいと思います。HPスイッチからのsyslogメッセージをsyslog-NGで正しくフィルタリングできませんか?

私は、多くの異なるソースからのメッセージ(Unixサーバ、NASファイラ、家電製品など)をフィルタリングし、巨大なのsyslog-NGの設定ファイルを持っている

私は一般的にホスト()関数を使用して、メッセージ、またはフィルタをフィルタします()、さらにはprogram()であってもよい。

しかし、メッセージフォーマットが正しいように見えますが、一部のHPスイッチ(ネットワーク& sanスイッチ)からのメッセージをフィルタリングするのに問題があります。 (

filter f_network { 
    host("switch*"); 
}; 

が、それは動作しません:

たとえば、私は、次のようなメッセージを受信して​​います:

Mar 14 10:40:48 switchname program: message contents here 

を、私は(後にログ機能で使用される)、このようなフィルタを作成しました他のすべてのデバイスは他の種類のデバイスのために働いています) 私は同じ名前で同じ名前でフィルタリングしようとしました。

これを調べて、それがうまくいかない理由を理解する方法はありますか? 多分、メッセージが異なってフォーマットされていて、ホストフィールドがこれ以外である(私は他のすべてのフィールドを試して、それを動作させることができなかった)

tcpdumpを使ってネットワークインターフェイスを盗聴すると、 (特殊文字を隠したり、他にはっきりとはありませんが、おそらく私は正しいフラグを使用していません)

これをチェックする方法はありますか?

おかげに関して

+0

こんにちは、優先順位(PRI)値は、メッセージの先頭から欠落しているようです。 AFAIK、これは次のようになります: –

+1

こんにちは、それは優先順位(PRI)の値がメッセージの冒頭から欠落しているようです。 AFAIK、これは次のようになります。 <133> Feb 25 14:09:07 webserver syslogd:restart。 このようなメッセージを読むときに、ダミー宛先を使用してsyslog-ngマクロの値を確認できますか?次のようなものがあります。 宛先d_file { ファイル( "/ var/log/messages"テンプレート( "pri = $ {priority} date = $ {ISODATE}ホスト= $ {HOST}プログラム= $ {PROGRAM}メッセージ= $ { MSG} \ n ")); }; マクロの値が一致しない問題が発生した場合、スイッチはメッセージを正しくフォーマットしていません。 –

+0

あなたにロバートありがとう、私はそれを試し、あなたがそれが表示されたことを知らせる!それは私が探していたもの(テンプレートです)です。 メッセージの形式が適切でない場合はどうなりますか?それはシフトされたフィールドで処理されますか?または処理されていないか? – olivierg

答えて

関連する問題