docker-compose를 이용해 go server와 fluent-bit, elasticsearch를 함께 띄워본다.
아직 kibana는 연동하지 않았다.
단계별로 차근히 공부해 나가는 중이다.
오늘 실습은 이렇다.
- go-echo로 간단한 서버 구성. logging을 한다.
- fluent-bit로 *.log를 읽어 es로 전달 (plugin: forward)
- 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가 인덱스를 잘 생성하는지 확인한다.