input {
file {
path => "d:/test.log"
start_position => "beginning"
sincedb_path => "nul"
}
}
output {
stdout {}
}
결과는 다음과 같다. message 필드에 담긴 원본 데이터는 'aaa bbb'.
{
"path" => "d:/test.log",
"message" => "aaa bbb\r",
"@version" => "1",
"host" => "MHKANG",
"@timestamp" => 2020-07-01T06:18:26.485Z
}
dissect 플러그인을 이용해서 'aaa'만을 추출 후, message 필드에 저장해보자.
input {
file {
path => "d:/test.log"
start_position => "beginning"
sincedb_path => "nul"
}
}
filter {
dissect { mapping => { "message" => "%{message} %{}" } }
}
output {
stdout {}
}
추출 데이터가 message 필드 overwrite.
{
"path" => "d:/test.log",
"message" => "aaa",
"@version" => "1",
"host" => "MHKANG",
"@timestamp" => 2020-07-01T06:19:27.793Z
}
다음은 ruby 플러그인을 이용한 테스트.
input {
file {
path => "d:/test.log"
start_position => "beginning"
sincedb_path => "nul"
}
}
filter {
ruby { code => "event.set('message', event.get('message')[0..2])" }
}
output {
stdout {}
}
dissect 플러그인과 마찬가지로 message 필드 overwrite.
{
"path" => "d:/test.log",
"message" => "aaa",
"@version" => "1",
"host" => "MHKANG",
"@timestamp" => 2020-07-01T06:20:23.703Z
}
grok 플러그인은 어떨까?
input {
file {
path => "d:/test.log"
start_position => "beginning"
sincedb_path => "nul"
}
}
filter {
grok { match => { "message" => "(?\S+)" } }
}
output {
stdout {}
}
원본은 사라지지 않고, 추출 데이터가 배열 형태로 추가된다.
{
"path" => "d:/test.log",
"message" => [
[0] "aaa bbb\r",
[1] "aaa"
],
"@version" => "1",
"host" => "MHKANG",
"@timestamp" => 2020-07-01T06:21:27.973Z
}
원본을 overwrite 하려면 overwrite 옵션을 사용해야 함.
input {
file {
path => "d:/test.log"
start_position => "beginning"
sincedb_path => "nul"
}
}
filter {
grok { match => { "message" => "(?<message>\S+)" } overwrite => "message" }
}
output {
stdout {}
}
{
"path" => "d:/test.log",
"message" => "aaa",
"@version" => "1",
"host" => "MHKANG",
"@timestamp" => 2020-07-01T06:22:15.483Z
}
관련 글
댓글 없음:
댓글 쓰기