저는 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})
이것은 지금까지 테스트에서 잘 작동하고 있습니다.