[TIL] EFK stack (2)

docker-compose를 이용해 go server와 fluent-bit, elasticsearch를 함께 띄워본다.

아직 kibana는 연동하지 않았다.

단계별로 차근히 공부해 나가는 중이다.

오늘 실습은 이렇다.

  1. go-echo로 간단한 서버 구성. logging을 한다.
  2. fluent-bit로 *.log를 읽어 es로 전달 (plugin: forward)
  3. es는 로그를 수집

이 3개를 docker-compose로 구성해봤다.

fluent-bit.conf

[INPUT]
  Name              tail
  Path /var/log/efk/request.log

[OUTPUT]
  Name es
  Match *
  Host elasticsearch
  Port 9200
  Replace_Dots On

request.log 파일을 읽고 es로 forward 해준다.

version: "3.7"

services:
  fluent-bit:
    image: fluent/fluent-bit
    volumes:
      - ./fluent-bit/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
      - /var/log/efk:/var/log/efk
    depends_on:
      - server
      - elasticsearch

  server:
    build: .
    volumes:
      - /var/log/efk:/var/log/efk
    ports:
      - "8080:8080"

  elasticsearch:
    image: elasticsearch:7.6.2
    ports:
      - "9200:9200"
    environment:
      - discovery.type=single-node

도커 컴포즈로 띄운다.

docker-compose up

http://localhost:8080에 접속해본 후 http://localhost:9200/_all/_search?pretty 에서 es가 인덱스를 잘 생성하는지 확인한다.

References