작성
·
29
0
logstash output 관련 질의사항 입니다.
logstash.conf 에서 output 필드를 다음처럼 설정했습니다.
output {
elasticsearch {
hosts => ["http://elasticsearch:9200"]
index => "app-logs-%{[application_name]}-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug }
}
elasticsearch에 인덱스를 application_name으로 구별하고 싶어서 적용한건데, 위처럼 적용하면 elasticsearch에 인덱스가 정상적으로 생성되지 않습니다.
logstash로 들어오는 로그를 실시간으로 보면 다음처럼 application_name 필드도 존재하고 있습니다.
{
"thread_name" => "http-nio-8080-exec-5",
"environment" => "dev",
"@version" => "1",
"message" => "Response 200 OK",
"application_name" => "SpringTestApp",
"logger_name" => "org.springframework.web.client.RestTemplate",
"level" => "DEBUG",
"logback_name" => "Local2",
"@timestamp" => 2025-02-06T02:06:18.972539Z,
"level_value" => 10000
}
elasticsearch 인덱스에는 logstash로 들어오는 필드값을 지정할 수 없는 것인가요?
여러 서비스의 로그들을 logstash->elasticsearch로 모아서 한번에 보고 싶은건데 어떻게 해야할지 모르겠습니다.
인덱스를 통한 구분이 아닌 예제처럼 일자로 구분을 하고 elasticsearch 내부에서 특정 필드로 구분을 해야하는지 의견 주시면 감사하겠습니다.
답변