fluentd를 docker로 설치하고 logging driver로 fluentd를 설정할 수 있다.
fluentd 홈페이지 실습 문서를 참고하면 쉽게 이해가 가능하다
https://docs.fluentd.org/container-deployment/docker-logging-driver
Docker Logging Driver - Fluentd
2019-08-21 00:51:02 +0000 [info]: spawn command to main: cmdline=["/usr/bin/ruby", "-Eascii-8bit:ascii-8bit", "/usr/bin/fluentd", "-c", "/fluentd/etc/demo.conf", "-p", "/fluentd/plugins", "--under-supervisor"]
docs.fluentd.org
위 실습을 이해하기 위해 몇 가지 참고사항을 정리하였다.
- fluentd의 conf파일을 로컬에 생성하고 docker run 명령시 -v 옵션을 통해 conf 지정 가능
- docker 컨테이너는 기본적으로 컨테이너 내부에 json 파일 형태로 로그를 저장
- docker run 실행시 log-driver 옵션을 지정하면 fluentd, syslog 등으로 로그를 전송 가능
- fluentd로 지정하면 동일 호스트에 fluentd 데몬이 실행되어야 함
- log-opts 옵션등으로 fluentd 수신 IP를 지정하는 등 로그 설정이 가능
- https://docs.docker.com/config/containers/logging/configure/
- 위 실습 예제에서는 ubuntu 이미지로 컨테이너를 실행하는데, 바로 종료되는 이유는 echo 실행 후 백그라운드로 동작하는 프로세스가 없기 때문으로, 일반적으로 ubuntu 이미지로 컨테이너를 실행할 때는 /bin/bash 등을 백그라운드로 실행하기 위해 docker run 명령어 시에 같이 명시
- fluent-plugin-concat 플러그인 설치시 고려할 사항
- 플러그인을 명시한 conf를 지정하면 플러그인이 존재하지 않기 때문에 컨테이너가 실행되지 않으므로, 기본 fluentd 의 conf 설정 파일로 fluentd 컨테이너를 우선 실행
- docker exec 명령어로 플러그인 설치: docker exec -u root fluentd sh -c "gem install fluent-plugin-concat"
- fluentd의 conf파일에 플러그인 명시 후 fleuntd 컨테이너 재시작
'파이프라인' 카테고리의 다른 글
nginx 로그 - fluent - pubsub - apache-beam 샘플 코드 (0) | 2023.06.06 |
---|---|
fluentd-pubsub 예제 (0) | 2023.01.01 |
fluentd example(docker-compose) (1) | 2022.12.25 |
td-agent 설정 (0) | 2022.12.11 |
카프카 기본 개념 정리 (0) | 2021.05.31 |