Samba full_auditログインLogstashを処理する方法

Samba full_auditログインLogstashを処理する方法

私はsamba vfs full_auditログを取得し、grokを使用して処理し、ELKスタックに移動する作業を行ってきました。

グローバルサンバ構成に以下を追加しました。

    full_audit:prefix = %u|%U|%I|%m|%S|%T|%D
    full_audit:success = mkdir rename unlink rmdir pwrite
    full_audit:failure = connect
    full_audit:facility = local1
    full_audit:priority = NOTICE INFO

私のログは次のとおりです。

    Oct 30 20:22:04 localhost smbd[27520]: stock|stock|192.168.0.6|HOSTNAME|adminstorage|2014/10/30 20:22:04|STOCKBOX|rename|ok|Media/config.txt|.recycle/stock/Media/config.txt

以下を使用してください。

mutate {
  gsub => ["message","\|"," "]
}

grokが処理できるように、文字間のパイプを削除してスペースに置き換えました。私に任せて:

    Oct 30 20:22:04 localhost smbd[27520]: stock stock 192.168.0.6 HOSTNAME adminstorage 2014/10/30 20:22:04 STOCKBOX rename ok Media/config.txt .recycle/stock/Media/config.txt

現在、私は次のgrokパターンを使用しています。

%{MONTH:syslog_month} %{MONTHDAY:syslog_day} %{TIME:syslog_time} localhost smbd\[%{INT:pid}\]: %{USER:user_service} %{USER:user_session} %{IP:client_ip} %{HOST:client_NETBIOS} %{GREEDYDATA:name_of_service} %{YEAR:samba_year}/%{MONTHNUM:samba_month}/%{MONTHDAY:samba_day} %{TIME:samba_time} %{USER:domain} %{WORD:action} %{WORD:sucess} %{GREEDYDATA:path}

結局、私はPATHや私が使用できる他のものから選択されないようにキー文字が欠落しているので、パスをクリーンアップするためにGREEDYDATAに頼りました。独自のフィルタを作成する必要がありますか、それとも何か抜けましたか?これが重要な理由は、名前を変更すると、最終的に2つのパスが発生し、可能であれば2つのパスをオーバーフローできることを願っています。パスにスペースがある可能性があり、それらを区切るのもスペースなので、どのように区切ることができますか?

答え1

すべての書き込みが終わったら、mutateをコンマや他の同様の文字に変更すると、問題が解決することになると思いました。

編集する

最後に、ファイル名には使用できず、新しいgrokで動作するカンマの代わりに「:」を選択しました。

filter {
    mutate {
      gsub => ["message","\|",":"]
    }
    grok {
      match => { "message" => "%{MONTH:syslog_month} %{MONTHDAY:syslog_day} %{TIME:syslog_time} localhost smbd\[%{INT:pid}\]: %{USER:user_service}:%{USER:user_session}:%{IP:client_ip}:%{HOSTNAME:client_NETBIOS}:%{GREEDYDATA:name_of_service}:%{YEAR:samba_year}/%{MONTHNUM:samba_month}/%{MONTHDAY:samba_day} %{TIME:samba_time}:%{HOST:domain}:%{WORD:action}:%{WORD:sucess}:%{SAMBAFILES}" }
      }
}

次のパターンを使用してください。

SAMBAFILES (?:%{GREEDYDATA:file_start}:%{GREEDYDATA:file_end}|%{GREEDYDATA:file_position})

これは今までテストでうまく機能しています。

関連情報