リライトルール設定画面例 |
螺子です。SSBは受信中のログのリライト機能を有しており、他のログ解析ソフトウェア(SIEMなど)用にログメッセージの整形や正規化ができます。
- リライトルールは、マクロで定義されたデータの書き換え、文字列に一致したデータの置換を設定します。
- リライトルールは、フィルター前とフィルター後に実行することができます。
今回は、リライト機能を使用してログメッセージを置換して整形してみます。
- syslog-ng Store Box大活用連載企画第1回「syslog-ng Store Boxを知る」
- syslog-ng Store Box大活用連載企画第2回「syslog-ng Store Boxを仮想環境にインストールする」
- syslog-ng Store Box大活用連載企画第3回「syslog-ng Store Boxで出来ることまとめ」
- syslog-ng Store Box大活用連載企画第4回「Wiresharkでsyslogプロトコルパケットを覗く」
- syslog-ng Store Box大活用連載企画第5回「ciscoスイッチ、fortigateファイアウォールログをSSBで受信!よりログを検索しやすく」
- syslog-ng Store Box大活用連載企画第6回「RPC APIを使ってみる、自社システムに統合!ログ検索の自動化!」
- syslog-ng Store Box大活用連載企画第7回「Active Directoryと連携して、Active Directoryユーザー認証!」
- syslog-ng Store Box大活用連載企画第8回「SSBをHA(High Availability)構成で構築してみる!」
- syslog-ng Store Box大活用連載企画第9回「ログをバイナリおよびテキスト形式で保存、違いを比較してみる」
- syslog-ng Store Box大活用連載企画第10回「ログファイルを共有して、外部ホストからアクセスしてみる!」
- syslog-ng Store Box大活用連載企画第11回「フィルターを使用して、必要なログのみ保存してみる!」
- syslog-ng Store Box大活用連載企画第12回「SSBの監視とアラート!SNMPマネージャーで監視およびSNMPトラップを受信してみる」
- syslog-ng Store Box大活用連載企画第13回「コンテンツベースアラート。重要なログを見逃さない!」
- syslog-ng Store Box大活用連載企画第14回「設定変更履歴。コンプライアンスにも対応!」
- syslog-ng Store Box大活用連載企画第15回「トラブルシューティングに役立つ機能。問題を迅速に解決!」
- syslog-ng Store Box大活用連載企画第16回「ユーザーアクセス制御。アクセス権限とタイプを設定してみる!」
リライトルールの作成
新しいリライトルールを作成するには、[Log]>[Paths]に移動し、リライトルールを定義するパスの詳細を表示します。
選択したパスの右横のボタンをクリックします。パスの詳細フィールドが表示されます。
図1. パスの詳細表示例 |
[Rewrites]セクションの[Before message processing]または[After message processing]のボタンをクリックします。新しいリライトルールを作成するための追加のフィールドが表示されます。
図2. リライトルールフィールド例 |
※[Before message processing]は、ログパスのフィルターまたはパーサーを適用する前にリライトルールを実行します。このログパス内のすべてのメッセージに対して適用されます。
※[After message processing]は、ログパスのフィルターまたはパーサーを適用した後にリライトルールを実行します。
[In Message part]フィールドに変更するメッセージ部を入力します。補完機能により、入力した文字が含まれるメッセージ部がリストされます。
図3. [In Message part]フィールドの補完機能例 |
[Find]フィールドに検索する式を入力します。PCRE正規表現を使用できます。
[Replace with]フィールドに[Find]式を置換する式を入力します。デフォルトでは、SSBは、式の最初に現れた値を置換します。[Find]式のすべての現れた値を置き換えるには、[Global]オプションをチェックします。マクロを使用するには、マクロ名を波括弧で囲み、$記号を最初につけます。
ここでは、[In message part]に"MESSAGE"、[Find]に"src"、[Replace with]に"srcip"と入力し、[Global]オプションをチェックしています。
図4. リライトルール例(置換) |
それでは、以下のログメッセージを送信してみます。
Transaction approved; checkout-id='46255763', src='192.168.91.240', dst='192.168.91.51'
SSBで受信されたログメッセージは、"src"文字が"srcip"に置換されています。これは、異なるログメッセージの形式を統一するような場合に有益です。
図6. 置換ログメッセージ例(画面) |
Transaction approved; checkout-id='46255763', srcip='192.168.91.240', dst='192.168.91.51'
IPアドレスのマスク
次に、[Find]式に正規表現を使用して、IPアドレスをマスクしてみます。
ここでは、[In message part]に"MESSAGE"、[Find]に"192\.168\.91\.(\d\d\d|\d\d|\d)"、[Replace with]に"***.***.***"と入力し、[Global]オプションをチェックしています。
図8. リライトルール例(IPアドレスマスク) |
※ここで使用している正規表現は便宜的な式になります。実際に汎用的に用いることはできませんのでご注意ください。
SSBで受信されたログメッセージは、IPアドレス部が"***.***.***"に置換されています。これは、秘匿情報(クレジットカード番号)などを保存するログメッセージに含めないようにするのに有益です。
図9. IPアドレスマスクログメッセージ例(画面) |
Transaction approved; checkout-id='46255763', srcip='***.***.***', dst='***.***.***'
ソースIPアドレスをメッセージに追加
次に、マクロを使用して、ログ送信元のソースIPアドレスをメッセージテキスト部に追加します。
ここでは、[In message part]に"MESSAGE"、[Replace with]に"SOURCEIP=${SOURCEIP}; ${MSG}"と入力し、[Global]オプションをチェックしています。
図11. リライトルール例(ソースIPアドレス追加) |
[In Message part]フィールドと同様に、[Replace with]フィールドでも補完機能により、入力した文字が含まれるマクロ名がリストされます。
図12. [Replace with]フィールドの補完機能例 |
SSBで受信されたログメッセージのテキスト部の先頭に、"SOURCEIP=<ソースIPアドレス>"が追加されています。これは、ログメッセージとともにソースIPアドレスを含めてSIEMなどのログ解析ツールに送信するような場合に有益です。
図13. ソースIPアドレス追加メッセージ例(画面) |
SOURCEIP=192.168.93.59; Transaction approved; checkout-id='46255763', srcip='***.***.***', dst='***.***.***'
空白文字置換
最後に、裏技的な使い方としてログメッセージ内の空白文字を異なる文字(ここでは、アンダースコア)に置換します。
SSBは、空白文字(タブを含む)は区切り文字としてハードコーディングされているため、空白文字を含む文字列をトークン(インデックス)として利用できません。空白文字を異なる文字に置換することで空白文字(ここでは、アンダースコアに置換された)を含む文字列を検索できます。
※トークンは59文字で切り捨てられます。これより長い文字列は正しく検索できない場合があります。
ここでは、[In message part]に"MESSAGE"、[Find]に"\s"(特殊文字)と入力し、[Replace with]に"_"(アンダースコア)と入力し、[Global]オプションをチェックしています。
図15. リライトルール例(空白置換) |
"Transaction"と"approved"に分かれていた検索文字列が"_Transaction_approved"として(空白を含む文字列を)検索できるようになりました。
図16. 空白置換メッセージ例(画面) |
SOURCEIP=192.168.93.59;_Transaction_approved;_checkout-id='46255763',_srcip='***.***.***',_dst='***.***.***'
参考資料
詳細については、syslog-ng Store Box6 LTS管理者ガイドの「10.4 メッセージ部の置換、リライトルールによる新しいマクロの作成」および「10.5 ログメッセージのテキスト部の検索と置換」をご参照ください。
マクロの詳細については、syslog-ng Premium Edition 管理者ガイドをご参照ください。
いかがでしたでしょうか。今回は、リライト機能について紹介しました。
それでは、次回の連載記事をお楽しみに!
SSBは、高信頼ログ管理アプライアンスです。様々なデバイスおよびアプリケーションからログメッセージを収集、分類、フィルタリング、正規化して安全に保存可能です。ログデータの信頼性を担保し、膨大なログが発生する高負荷環境、あるいはログロストが許されない企業・組織のログ管理に最適です。