Audit
如何使用 logstash 解析 audit.log
我想用logstash來收集一個日誌文件,文件的格式是這樣的:
type=USER_START msg=audit(1404170401.294:157): user pid=29228 uid=0 auid=0 ses=7972 subj=system_u:system_r:crond_t:s0-s0:c0.c1023 msg='op=PAM:session_open acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
我應該使用哪個過濾器來匹配該行?或者有另一種方法來處理它。
任何幫助,將不勝感激。
使用下面的模式將行與grok debugger匹配,但仍然收到一條
No matches
消息。type=%{WORD:audit_type} msg=audit\(%{NUMBER:audit_epoch}:%{NUMBER:audit_counter}\): user pid=%{NUMBER:audit_pid} uid=%{NUMBER:audit_uid} auid=%{NUMBER:audit_audid} subj=%{WORD:audit_subject} msg=%{GREEDYDATA:audit_message}
但是當我刪除它時
subj=%{WORD:audit_subject} msg=%{GREEDYDATA:audit_message}
,它成功並得到了一個像這樣的 JSON 對象。{ "audit_type": [ [ "USER_END" ] ], "audit_epoch": [ [ "1404175981.491" ] ], "BASE10NUM": [ [ "1404175981.491", "524", "1465", "0", "0" ] ], "audit_counter": [ [ "524" ] ], "audit_pid": [ [ "1465" ] ], "audit_uid": [ [ "0" ] ], "audit_audid": [ [ "0" ] ] }
不知道為什麼
subj
,msg
不能繼續工作。
快速搜尋在 github 上找到了這個
AUDIT type=%{WORD:audit_type} msg=audit\(%{NUMBER:audit_epoch}:%{NUMBER:audit_counter}\): user pid=%{NUMBER:audit_pid} uid=%{NUMBER:audit_uid} auid=%{NUMBER:audit_audid} subj=%{WORD:audit_subject} msg=%{GREEDYDATA:audit_message} AUDITLOGIN type=%{WORD:audit_type} msg=audit\(%{NUMBER:audit_epoch}:%{NUMBER:audit_counter}\): login pid=%{NUMBER:audit_pid} uid=%{NUMBER:audit_uid} old auid=%{NUMBER:old_auid} new auid=%{NUMBER:new_auid} old ses=%{NUMBER:old_ses} new ses=%{NUMBER:new_ses}
粗略的評論表明它可能是您正在尋找的東西。