이번 기술 블로그에서는 Java JHipster와 EFK(ELK + Fluentd + Kibana) 스택의 통합에 대해 알아보겠습니다.
개요
JHipster는 Java 기반의 웹 애플리케이션 개발 플랫폼으로, Spring Boot, AngularJS, Maven 등을 기반으로 한다. JHipster는 애플리케이션의 개발, 빌드, 배포를 쉽게 관리할 수 있도록 도와준다.
EFK 스택은 Elasticsearch, Fluentd, Kibana의 조합으로, 로그 데이터를 수집, 저장, 시각화할 수 있는 강력한 도구들을 제공한다. Elasticsearch는 분산 검색 및 분석 엔진이며, Fluentd는 로그 데이터를 수집하여 Elasticsearch로 전송하는 역할을 담당한다. Kibana는 Elasticsearch로부터 수집된 데이터를 시각화하여 사용자에게 제공하는 역할을 한다.
JHipster와 EFK 통합하기
JHipster 애플리케이션에서 EFK 스택을 사용하여 로그 데이터를 수집하고 시각화하기 위해 몇 가지 단계를 수행해야 한다.
-
Fluentd 설치: JHipster 애플리케이션의 서버에 Fluentd를 설치한다. Fluentd는 로그 데이터를 수집하여 Elasticsearch로 전송하는 역할을 담당한다. Fluentd 설치는 간단하게 패키지 매니저를 사용하여 수행할 수 있다.
$ sudo apt-get install -y td-agent
-
Fluentd 설정: Fluentd의 설정 파일에 Elasticsearch 호스트와 포트 정보를 추가한다. 이를 통해 로그 데이터를 Elasticsearch로 전송할 수 있다. 설정 파일은
/etc/td-agent/td-agent.conf
에 있다. 아래는 설정 파일의 예시이다.<source> @type tail path /path/to/your/application/logs/*.log pos_file /var/log/td-agent/td-agent.log.pos tag jhipster format json read_from_head true </source> <match jhipster> @type elasticsearch host YOUR_ELASTICSEARCH_HOST port YOUR_ELASTICSEARCH_PORT logstash_format true logstash_prefix jhipster </match>
-
JHipster 애플리케이션 설정: JHipster 애플리케이션의
application.yml
또는application.properties
파일에 로그를 JSON 형식으로 출력하도록 설정한다.logging: level: ROOT: INFO pattern: console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n" file: max-history: 30 max-size: 50MB
-
Kibana 설치: Kibana를 사용하여 Elasticsearch로부터 수집된 로그 데이터를 시각화할 수 있다. Kibana는 Elasticsearch와 같은 서버에 설치하거나 별도의 서버에 설치할 수 있다. Kibana의 설치는 공식 사이트에서 제공하는 방법을 따라 수행한다.
-
Elasticsearch와 Kibana 연동: Kibana 설정 파일(
kibana.yml
)에 Elasticsearch 호스트와 포트 정보를 추가하여 Elasticsearch와 Kibana를 연동한다. 파일은 Kibana의 설치 경로에 위치해 있다.elasticsearch.hosts: ["http://YOUR_ELASTICSEARCH_HOST:YOUR_ELASTICSEARCH_PORT"]
-
로그 데이터 시각화: Kibana에 접속하여 Elasticsearch에서 수집된 로그 데이터를 시각화한다. Kibana는 다양한 그래프와 대시보드를 제공하여 사용자가 로그 데이터를 효과적으로 분석할 수 있도록 돕는다.
결론
Java JHipster 애플리케이션과 EFK 스택을 통합하여 로그 데이터를 수집하고 시각화할 수 있다. 이를 통해 애플리케이션의 로그를 효과적으로 분석하여 문제를 해결하고 성능을 향상시킬 수 있다. JHipster와 EFK 스택의 통합은 개발 및 운영 단계에서 중요한 도구로 사용될 수 있다.
참고: JHipster 공식 사이트, Fluentd 공식 사이트, Elasticsearch 공식 사이트, Kibana 공식 사이트