인프라,데이터/Elasticsearch, Logstash, Kibana
Logstash multiple kinesis input
AimB
2022. 3. 12. 16:30
Logstash로 Kinesis Data Streams를 연결하고 나서, 추가적으로 Data Streams 하나를 더 생성해서 연결하려고 하는데
계속 제대로 연결되지 않았다. 🤔
왜일까... 하고 찾아봤는데,
Logstash Kinesis input plugin (Kinesis Data Streams만 지원한다. Kinesis Firehose Delivery streams는 지원되지 않으니 주의! 대신 Kinesis Firehose Delivery Streams 의 목적지를 S3으로 하면 Logstash S3 input을 사용해서 S3에서 데이터를 받아오고 바로 지울 수 있다.) 은 Dynamodb를 사용하는데, 이 Dynamodb는 기본적으로 'logstash'라는 이름으로 생성되고, 로그스태시 플러그인에서는 이 이름의 테이블을 찾는다.
따라서 2개 이상의 Kinesis Data Streams를 Logstash input으로 받아오려면,
input {
kinesis {
kinesis_stream_name => "kinesis"
codec => "json"
region => "ap-northeast-2"
application_name => "logstash1"
}
kinesis {
kinesis_stream_name => "kinesis-test"
codec => "json"
region => "ap-northeast-2"
application_name => "logstash2"
}
}
application_name 옵션에 각각 고유한 값을 줘야 한다. (첫 번째 kinesis input의 값은 기재하지 않고 그냥 logstah로 두어도 무방하다. )
이렇게 옵션을 주니 그제야! Logstash에서 데이터를 잘 받아와서 output으로 보내주었다.