Logstash 구성의 경로 필드에서 하위 문자열을 추출하려고 합니다.
경로 필드는 다음과 같습니다.
/storage/logs/deployment/servers/hostname.example.com/server.log
필터 섹션 안에는 다음이 있습니다.
ruby {
code => "event.set('log_filename',
event.get('path').split('/').last)"
}
이것은 훌륭하게 작동합니다. "log_filename"이라는 새 필드가 생겼습니다.
하지만 서버 이름(hostname.example.com)에도 관심이 있습니다.
그래서 나는 이것을 시도했습니다 :
ruby {
code => "event.set('log_filename', event.get('path').split('/').[-1]) event.set('server_name', event.get('path').split('/').[-2])"
}
이것은 전혀 작동하지 않습니다. 내 Logstash 로그에는 오류가 발생하지 않지만, Logstash 데이터는 표시되지 않습니다.
파일 이름과 그 앞의 필드를 따라가는데, 이는 해당 파일이 나온 호스트를 나타냅니다.
내 문법에 문제가 있는 걸까요?