스프링 로그를 효율적으로 관리(?) 통계를 내기 위해 Spring Boot 와 ELK(Elasticsearch, Logstash, Kibana)를 통해서 


로그를 수집하기로 했습니다.


로그 수집하는 플로우는


Spring Boot ---> Logstash ---> Elasticsearch ---> Kibana를 통해 통계 확인 입니다.



우선은 Spring Boot는 기존에 있는 프로젝트 그대로 사용하기로 하고 ELK 를 먼저 셋팅해 보겠습니다.


먼저 ELK를 아래의 사이트에서 각 OS와 bit 에 맞게 다운로드를 해서 설치를 합니다.

(저는 윈도우10에서 진행하였습니다.)


Elasticsearch 다운로드: https://www.elastic.co/kr/downloads/elasticsearch

Kibans 다운로드: https://www.elastic.co/kr/downloads/kibana

Logstash 다운로드: https://www.elastic.co/kr/downloads/logstash



다운로드를 하고 설치까지 마쳤으면 Logstash 설정을 먼저 진행합니다.


Logstash 설정파일은 설치한 위치에서 Config 폴더 안에 보면 logstash-sample.conf 파일이 있습니다.


이 파일을 하나 복사해서 logstash.conf 라고 파일을 하나 생성합니다.


생성이 완료 되면 logstash.conf 파일을 열어서 설정파일을 수정합니다.



input 설정은 Spring Boot 와 Logstash 와 통신하기위해 TCP를 사용하였고 포트는 4560을 사용합니다.


그리고 코덱은 json을 라인별로 읽을 수 있게 설정하였습니다.


output은 Logstash에서 받은 로그를 Elasticsearch로 전송하기 위한 설정입니다.


설치한 Elasticsearch의 host 기본정보는 localhost:9200 이고 Index는 Elasticsearch에서 검색할 수 있게 패턴을 


설정할 수 있습니다. Index를 logstash-오늘날짜로 변경하였습니다.



그리고 Spring Boot logback 을 설정합니다.


기존에 작성되어있는 Spring Boot logback 설정에서 아래의 부분을 추가합니다.



<!-- Log Stash 사용시 사용할 TCP 통신 정보 -->
<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>127.0.0.1:4560</destination>
<encoder class="net.logstash.logback.encoder.LogstashEncoder"></encoder>
</appender>


<root level="INFO">
<appender-ref ref="dailyRollingFileAppender" />
<appender-ref ref="stash" />
</root>


이 두 부분을 추가합니다.


로그가 쌓일때 Logstash 에서 설정한 TCP Port 4560에 동일한 서버에 있으니 127.0.0.1 로 설정하였습니다.


그리고 실제로 로그가 동작하기 위해 root 태그 아래 부분에 설정하였습니다.


이렇게 설정을 완료 한 후 Logstash를 실행하고 Spring Boot를 실행하면 됩니다.


Logstash 실행방법은 CMD 에서 Logstash 설치한 폴더에 bin폴더로 이동후 logstash -f ../config/logstash.conf 를 입력하면 실행이 됩니다.



그리고 Elasticsearch 실행방법 입니다.


Elasticsearch 실행 방법은 Elasticsearch 설치한 폴더에서 bin 폴더로 이동 후 CMD 에서 elasticsearch 를 입력하면 실행이 됩니다.


만약 포트 정보나 그외의 Elasticsearch 정보를 변경하고 싶으면 Elasticsearch 설치 폴더에서 config 폴더로 이동 후  elasticsearch.yml 파일에서 수정하시면


됩니다. 


실행이 정상적으로 됐는지 확인하려면 브라우저에서 http://localhost:9200/ 를 입력하면 아래와 같은 화면이 나오면 정상적으로 실행이 된것입니다.





마지막으로 Kibans 실행방법입니다.


Kibana도 Elasticsearchd와 마찬가지로 Kibana 설치한 폴더에서 bin 폴더로 이동 후 CMD 에서 kibana 를 입력하면 실행이 됩니다.


Kibana또한 실행이 되었는지 확인을 하려면 브라우저에서 http://localhost:5601 를 입력하면 아래와 같은 화면이 나오면 정상적으로 실행이 된것입니다.







+ Recent posts