캡쳐그룹 순서번호는 1부터 시작한다.
ruby { code => " event.set('result', event.get('message').match(/(.).../).captures[1]) "}
캡쳐 실패.
[2025-01-18T20:37:14,434][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}{ "message" => "abcd\r", "result" => nil}
왜 안 되지? 전체 문자를 개별 캡쳐해봤다.
ruby { code => "
event.set('result', event.get('message').match(/(.)(.)(.)(.)/).captures[1])
"
}
두 번째 순서번호를 가져오네?
[2025-01-18T20:32:47,467][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}{ "message" => "abcd\r", "result" => "b"}
순서번호를 빼봤다. 순서번호가 0부터 시작(..)
ruby { code => " event.set('result', event.get('message').match(/(.)(.)(.)(.)/).captures) "}
[2025-01-18T20:33:35,432][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}{ "message" => "abcd\r", "result" => [ [0] "a", [1] "b", [2] "c", [3] "d" ]}
captures 구문은 헷갈려서 못쓰겠다.
ruby { code => " str = event.get('message').match(/(.)(.)(.)(.)/) event.set('result1', str[1]) event.set('result2', str[2]) event.set('result3', str[3]) event.set('result4', str[4]) "}
[2025-01-18T20:35:35,052][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}{ "result3" => "c", "result2" => "b", "result4" => "d", "message" => "abcd\r", "result1" => "a"}
관련 글
- Logstash 필터 ruby - 5th
- Logstash 필터 ruby
- Logstash 필터 grok
- Logstash 필터 mutate
- Logstash 필터 geoip
- Logstash 필터 dissect
- Logstash 필터 kv
- Logstash 필터 date
- Logstash 필터 translate
- Logstash 필터 drop
- Logstash 필터 useragent
- Logstash 필터 elapsed
- Logstash 필터 fingerprint
- Logstash 필터 csv
- Logstash 필터 dns
- Logstash 필터 split
- Logstash codec 플러그인 multiline
댓글 없음:
댓글 쓰기