docker로 EFK 스택 틀 잡아보기

Uhan33·2024년 4월 2일
0

TIL

목록 보기
56/72

저번에 docker로 로컬 개발 환경을 만들었는데, 이번엔 모니터링과 로깅을 위한 EFK 스택을 구축해보려 한다.

docker-compose.yaml에 아래 코드를 추가해서 elasticsearch, fluentd, kibana 컨테이너를 정의한다.

# docker-compose.yaml

version: '3.9'

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.13.0
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      - discovery.type=single-node

  fluentd:
    image: fluent/fluentd:latest
    volumes:
      - ./fluentd/conf:/fluentd/etc
    ports:
      - "24224:24224"
      - "24224:24224/udp"

  kibana:
    image: docker.elastic.co/kibana/kibana:8.13.0
    ports:
      - "5601:5601"
    environment:
      ELASTICSEARCH_HOSTS: "http://elasticsearch:9200"

그리고 fluent.conf를 정의한다

# fluent.conf

<source>
  @type forward
  port 24224
  bind 0.0.0.0
</source>

<match *.**>
  @type elasticsearch
  hosts elasticsearch
  port 9200
  index_name fluentd
  type_name fluentd
</match>

엄청 간단하게 표현한 상태이다. 이렇게 정의를 하고 docker-compose build로 이미지 생성 후 실행하면
kibana가 실행되는 포트에 접속해 대쉬보드를 확인할 수 있다.
추가적으로 아직 결과값은 얻지 못했지만 nestjs를 사용해서 winston 로거 모듈을 이용해 fluentd에 로그를 전달하는 방식으로 사용해보려 한다.

0개의 댓글