본문 바로가기
DevOps/Docker

[Docker] : fluentd 로깅

by 오주현 2022. 2. 20.
반응형

 

fluentd는 각종 로그를 수집하고 저장할 수 있는 기능을 제공하는 오픈소스 도구로 도커 엔진의 컨테이너의 로그를 fluentd를 통해 저장할 수 있도록 플러그인을 공식적으로 제공한다.

 

mongoDB 서버와 fluentd와 Ubuntu를 통해 실습을 진행하는데 각각 이미지는 도커 허브를 참고하면 된다.

📝 : 도커 Mongo

📝 : 도커 Fluentd

참고해서 이미지를 pull 받을 수 있다.

 

도커 서버 1과 2에서 2에서 fluentd 서버를 통해 로그를 수집하고 몽고 서버로 전달해 준다.

docker run --name mongoDB -d \\
-p 27017:27017 \\
mongo

mongoDB 컨테이너를 생성한다.

 

fluentd 서버의 호스트에서 fluent.conf 파일을 생성하고 아래 코드를 적어준다.

 

<source>
	@type forward
</source>

<match docker.**>
	@type mongo
	database nginx
	collection access
	host 192.168.0.102
	port 27017
flush_interval 10s
</match>

만약 mongoDB에 인증 정보를 설정한다면 위 내용 중 flush_interval 10s 항목 밑에

 

user alicek106
password mypw

를 정의하면 된다.

fluentd.conf 파일이 저장된 디렉터리에서 아래 명령어로 fluentd 컨테이너를 생성한다.

 

docker run -d --name fluentd -p 24224:24224 \\
-v $(pwd)/fluent.conf:/fluentd/etc/fluent.conf \\
-e FLUENTD_CONF=fluent.conf \\
alicek106/fluentd:mongo

-v 옵션으로 fluentd 컨테이너에 공유하고 설정 파일을 사용한다.

 

docker run -p 80:80 -d \\
--log-driver=fluentd \\
--log-opt fluentd-address=192.168.0.101:24224 \\
--log-opt tag=docker.nginx.webserver \\
nginx

80포트로 nginx 웹 서버에 접근할 수 있다.


📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다.

반응형

댓글