(ELK 7.2 버전에서 테스트 되었습니다.)

 

이미 logstash와 elasticsearch가 설치되어 있다고 가정하고 진행하겠습니다. 

 

7.x에 적용된 SQS plugin 3.x 버전은 logstash 5.0부터 적용되었으니 5.0 미만 버전 사용자분은 공식 문서를 참고하시기 바랍니다. 

 

https://www.elastic.co/guide/en/logstash/current/plugins-inputs-sqs.html

 

Sqs input plugin | Logstash Reference [7.5] | Elastic

Plugin version: v3.1.2 Released on: 2018-11-12 Changelog For other versions, see the Versioned plugin docs. For questions about the plugin, open a topic in the Discuss forums. For bugs or feature requests, open an issue in Github. For the list of Elastic s

www.elastic.co

공식 문서는 위 링크를 참고하시면 됩니다. 

 

logstash/config에 sqs-pp.config 파일을 만들고 아래 내용을 추가합니다.

 

input {
  sqs {
    queue => "queue_name"
    region => "your_region"
    threads => 2
    access_key_id => "your_access_key_id"
    secret_access_key => "your_secret_access_key"
  }
}

filter {
	
    .
    .
}

output {
    elasticsearch{
        hosts => ["your_host:port"]
        index => "logstash-sqs-%{+YYYY.MM}"
    }
}

queue에는 arn이나 endpoint가 아닌 이름만 기록하면 됩니다. ( 예) sqs_test.fifo )

위에서 read 혹은 전체 권한을 할당한 사용자의 access_key_id와 secret_access_key만 추가하면 sqs의 메세지를 손쉽게 가져올 수 있습니다. SQS에 lambda 트리거를 사용하기도 했는데, 이 방법이 더 깔끔하네요. 

 

테스트 실행은 아래와 같이 할 수 있습니다. 

bin/logstash --path.data ./data-sqs -f config/sqs_pp.config

 

이상입니다. :)

+ Recent posts