- fluentd는 각종 로그를 수집하고 저장할 수 있는 기능을 제공하는 오픈소스 도구이다
- fluentd는 데이터 포맷으로 JSON을 사용하기 때문에 쉽게 사용할 수 있을뿐만 아니라 수집되는 데이터를 AWS S3, HDFS (Hadoop Distributed File System), MongoDB 등 다양한 저장소에 저장할 수 있다는 장점이 있다
- fluentd와 몽고DB와 연동해 데이터를 저장해보겠다
- 로그가 수집되는 순서
도커 서버 → 로그 수집 → fluentd 서버 → 로그 저장 → MongoDB 서버
- 위와 같은 순서를 적용하기 위해서 서버를 다음과 같이 설정해준다
도커 서버: 192.168.0.100
fluentd 서버 : 192.168.0.101
몽고DB 서버 :192.168.0.102
- fuentd 다운로드
curl -L <https://toolbelt.treasuredata.com/sh/install-ubuntu-focal-td-agnet4.sh> | sh
//설치완료 후
sudo service td-agent start
데몬 실행
sudo service td-agent status
데몬 상태확인
- 몽고 DB서버 생략
- 다음으로 27017포트를 개방해준 뒤 몽고 컨테이너 생성
docker run --name mongoDB -d \\
-p 27017:27017 \\
mongo
<match docker.**> 를 확인해준다
혹시 비밀번호를 설정하고 싶다면 flush_interval 10s 밑에 username , password 형태로 설정
- 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옵션으로 fluent.conf를 fluent 컨테이너에 공유하고 설정 파일로 사용함
- 도커 서버에서 로그를 수집할 컨테이너를 생성해줌
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
—log-driver 를 flunetd로 설정하고, —log-opt의 fluentd-address 값을 fluentd 서버 주소를 지정
—log-opt tag를 명시하여 nginx.webserver로 지정했지만 fluent 설정 정보에 맞는 값으로 로그가 저장됨
이 글은 시작하세요! 도커/쿠버네티스를 보고 공부한 글입니다
'서버 > 도커' 카테고리의 다른 글
[도커] Block I/O 제한 (0) | 2022.03.02 |
---|---|
[도커] 컨테이너 제한 (0) | 2022.03.01 |
[도커] json-file 로그 사용하기 (0) | 2022.02.28 |
[도커] 브리지 네트워크와 —net-alias (0) | 2022.02.25 |
[도커] 도커 네트워크 (0) | 2022.02.25 |
댓글