2011-04-1010:24:35192.254.192.21110.168.0.3
2011-04-1010:25:21192.184.27.17 10.168.0.3
2011-04-1010:26:11192.239.17.233 10.168.0.3
2011-04-1010:27:22192.222.1.43 10.168.0.3
2011-04-1010:27:23192.68.15.236 10.168.0.3
2011-04-1010:28:35192.67.222.136 10.168.0.3
2011-04-1010:31:11192.46.105.186 10.168.0.3
2011-04-1010:31:11192.46.148.31 10.168.0.3
2011-04-1010:31:14192.221.72.126 10.168.0.3
2011-04-1010:33:23192.56.214.97 10.168.0.3
다음은 message 필드의 특정 길이에 해당하는 문자열을 추출, 필드로 분류해주는 ruby 필터식. '[시작위치..끝위치]' 구문을 사용했다.
filter {
ruby {
code => "
event.set('date', event.get('message')[0..9])
event.set('time', event.get('message')[10..17])
event.set('sip', event.get('message')[18..32])
event.set('dip', event.get('message')[33..42])
"
}
}
결과는 다음과 같음.
{
"host" => "MHKANG",
"time" => "10:24:35",
"message" => "2011-04-1010:24:3510.254.192.211 10.168.0.3\r",
"@version" => "1",
"path" => "d:/test.log",
"date" => "2011-04-10",
"sip" => "192.254.192.211",
"dip" => "10.168.0.3\r",
"@timestamp" => 2019-07-07T05:45:08.848Z
}
길이를 뒤에서부터 측정할 수도 있고,
filter {
ruby {
code => "
event.set('date', event.get('message')[-44..-35])
event.set('time', event.get('message')[-34..-27])
event.set('sip', event.get('message')[-26..-12])
event.set('dip', event.get('message')[-11..-1])
"
}
}
'[시작위치,범위]' 구문을 사용할 수도 있다.
filter {
ruby {
code => "
event.set('date', event.get('message')[0,10])
event.set('time', event.get('message')[10,8])
event.set('sip', event.get('message')[18,15])
event.set('dip', event.get('message')[33,10])
"
}
}
이렇게도 됨.
filter {
ruby {
code => "
event.set('date', event.get('message')[0..-35])
event.set('time', event.get('message')[10..-27])
event.set('sip', event.get('message')[18..-12])
event.set('dip', event.get('message')[33..-1])
event.set('timestamp', event.get('date') + ' ' + event.get('time'))
"
}
}
결과는 모두 동일. 참고로 timestamp 필드는 date와 time 필드를 '공백'으로 이어붙인 결과.
{
"host" => "MHKANG",
"timestamp" => "2011-04-10 10:24:35",
"time" => "10:24:35",
"message" => "2011-04-1010:24:3510.254.192.211 10.168.0.3\r",
"@version" => "1",
"path" => "d:/test.log",
"date" => "2011-04-10",
"sip" => "192.254.192.211",
"dip" => "10.168.0.3\r",
"@timestamp" => 2019-07-07T05:49:01.127Z
}
관련 글
댓글 없음:
댓글 쓰기