箱の外システムログSystemEvents
すべてがSyslogデータベース内のテーブルにダンプされます(提供されたデフォルトスキーマを使用している場合)。正規表現を使用してインバウンドメッセージを別々のデータベーステーブルにフィルタリングしたいと思います。
私はこれで遊んでいましたが、これを達成するための最良の方法(または効率的な方法)を見つけるのに苦労しています。
私のrsyslog.confから:
$template wireless, \
"insert into RogueAPs \
(ReceivedAt, DeviceReportedTime, Facility, Priority, FromHost, Message) \
VALUES('%timegenerated%', '%timereported%', '%syslogfacility%', '%syslogpriority%', '%fromhost-ip%', '%msg%');", \
stdsql
if $msg contains 'subtype=wireless' then :ommysql:127.0.0.1,Syslog,dbusername,dbpassword;wireless
*.* :ommysql:127.0.0.1,Syslog,dbusername,dbpassword
これが私の最近の試みですが、詰まっています。
(RogueAPsテーブルは、rsyslogに付属のデフォルトのSystemEventsテーブルの複製のみです)
バージョン情報:
shell# /usr/local/sbin/rsyslogd -v
rsyslogd 5.5.5, compiled with:
FEATURE_REGEXP: Yes
FEATURE_LARGEFILE: No
FEATURE_NETZIP (message compression): Yes
GSSAPI Kerberos 5 support: No
FEATURE_DEBUG (debug build, slow code): No
Atomic operations supported: Yes
Runtime Instrumentation (slow code): No
See http://www.rsyslog.com for more information.
答え1
一目でこれチュートリアルなのにあまり違いはありませんね。
しかし見てくださいrsyslogのテンプレートドキュメント、パラメータ設定によって mysql と異なるようですNO_BACKSLASH_ESCAPES
。
ドキュメントから:
sql - format the string suitable for a SQL statement in MySQL format. This will
replace single quotes ("'") and the backslash character by their backslash-escaped
counterpart ("\'" and "\\") inside each field. Please note that in MySQL
configuration, the NO_BACKSLASH_ESCAPES mode must be turned off for this format to
work (this is the default).
stdsql - format the string suitable for a SQL statement that is to be sent to a
standards-compliant sql server. This will replace single quotes ("'") by two single
quotes ("''") inside each field. You must use stdsql together with MySQL if in MySQL
configuration the NO_BACKSLASH_ESCAPES is turned on.
答え2
残念なことに、rsyslog文書はいくつかの点で非常に完全ではないか、理解するのは簡単ではありません。私は過去数週間でrsyslog / MySQL / regex関連の作業をしながら多くの時間を費やしました。
正規表現の一致を試みるログ行の例、そのテーブルのスキーマなどを公開できますか?投稿した内容が有効なようです。何をフィルタリングしようとしていますか?基本モードは動作しますか?
ところで、私はあなたがRogueAPsというテーブルを使用していることに気づくことはできませんでした。どのベンダーを使用しているかはわかりませんが、Meru NetworksおよびBlueSocketコントローラの認証ログメッセージに正規表現ルールがあります。