2025년 1월 14일 화요일

Logstash 필터 split

공백으로 구분된 데이터.
[2025-01-14T21:09:09,525][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
{
    "message" => "a b c\r"
}

mutate 필터의 split 옵션을 적용하면 다중값 구조로 바뀐다.
filter {
 mutate {
  remove_field => ["host", "@version", "path", "@timestamp"]
  split => {"message" => " "}
 }
}
[2025-01-14T21:10:57,408][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
{ "message" => [ [0] "a", [1] "b", [2] "c" ] }

해당 필드에 split 필터를 적용하면 다중값을 개별 이벤트로 분리.
filter {
mutate { remove_field => ["@timestamp", "@version", "path", "host"] split => {"message" => " "} } split {} }
[2025-01-14T21:12:54,283][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
{ "@timestamp" => 2025-01-14T12:12:54.389256Z, "@version" => "1", "message" => "a" } { "@timestamp" => 2025-01-14T12:12:54.389256Z, "@version" => "1", "message" => "b" } { "@timestamp" => 2025-01-14T12:12:54.389256Z, "@version" => "1", "message" => "c" }

이걸 원한 게 아닌데(..)

댓글 없음:

댓글 쓰기

크리에이티브 커먼즈 라이선스