Audit

如何使用 logstash 解析 audit.log

  • December 4, 2015

我想用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"
   ]
 ]
}

不知道為什麼subjmsg不能繼續工作。

快速搜尋在 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}

粗略的評論表明它可能是您正在尋找的東西。

引用自:https://serverfault.com/questions/609192