[Docker] Syslog 서버 구축
syslog는 서버의 전반적인 로그를 관리하고 생성하는 데몬이자 도구입니다.
docker 컨테이너를 통해 syslog 서버를 구축해봅니다.
이미지 다운로드
balabit/syslog-ng
이미지를 다운받아 syslog 서버 구성에 사용합니다.
# docker pull balabit/syslog-ng:latest
latest: Pulling from balabit/syslog-ng
bc2ca2f3fe95: Pull complete
192f45bd4334: Pull complete
b6703b37ab44: Pull complete
98d97b578ab1: Pull complete
9216e5c2bf8e: Pull complete
Digest: sha256:1a13ed478136ed7a2638095f87da510121fa4d4d15b6171b543bab42948e4ae7
Status: Downloaded newer image for balabit/syslog-ng:latest
docker.io/balabit/syslog-ng:latest
docker-compose 설정
syslog의 로그 저장 경로인 /var/log 디렉토리를 호스트에서 확인할 수 있도록 ./data/log 디렉토리와 마운트 하였으며,
syslog 에서 사용하는 포트 정보(UDP:514/TCP:601/TLS:6514)를 포트 포워딩 하였습니다.
# cat docker-compose.yml
services:
syslog-ng:
image: balabit/syslog-ng:latest
container_name: syslog-ng
volumes:
- ./data/log:/var/log
ports:
- 514:514/udp
- 601:601/tcp
- 6514:6514/tcp
로그 생성 디렉토리인 ./data/log 디렉토리를 생성합니다.
# mkdir -p ./data/log
docker-compose 실행 및 확인
설정이 완료 후 docker-compose up -d
명령어로 컨테이너를 실행합니다.
# docker-compose up -d
Creating network "syslog_default" with the default driver
Creating syslog-ng ... done
docker ps
명령어로 컨테이너 상태를 확인합니다.
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3bd1260b5ce3 balabit/syslog-ng:latest "/usr/sbin/syslog-ng…" 17 seconds ago Up 14 seconds (health: starting) 0.0.0.0:601->601/tcp, :::601->601/tcp, 0.0.0.0:514->514/udp, :::514->514/udp, 0.0.0.0:6514->6514/tcp, :::6514->6514/tcp syslog-ng
netstat
명령어로 포트포워딩 설정이 정상적으로 설정되었는지 확인합니다.
# netstat -nap | grep -E "514|601|6514"
tcp 0 0 0.0.0.0:601 0.0.0.0:* LISTEN 8586/docker-proxy
tcp 0 0 0.0.0.0:6514 0.0.0.0:* LISTEN 8563/docker-proxy
tcp6 0 0 :::601 :::* LISTEN 8594/docker-proxy
tcp6 0 0 :::6514 :::* LISTEN 8569/docker-proxy
udp 0 0 172.31.0.1:37144 172.31.0.2:514 ESTABLISHED 8608/docker-proxy
udp 0 0 0.0.0.0:514 0.0.0.0:* 8608/docker-proxy
udp6 0 0 :::514 :::* 8614/docker-**proxy**
로그 저장 디렉토리에 messages 관련 파일이 자동으로 생성되었는지 확인합니다.
# ls -al ./data/log/
total 16
drwxr-xr-x 2 root root 4096 Nov 1 22:26 .
drwxr-xr-x 3 root root 4096 Nov 1 22:25 ..
-rw------- 1 root root 260 Nov 1 22:29 messages
-rw------- 1 root root 473 Nov 1 22:29 messages-kv.log
syslog 사용법
syslog 서버에 로그를 남기고자 하는 서버에서 syslog 서버의 IP와 포트 정보(UDP:514/TCP:601/TLS:6514)를 지정하여 사용하시면 됩니다.
로그는 기본적으로 마운트한 ./data/log 디렉토리 안에 생성되니 확인해보시면 될 것 같습니다.
추가적으로 syslog 관련 설정을 변경하고 싶으시면 아래와 같이 syslog 관련 설정 파일을 마운트하여 설정을 변경하신 후 컨테이너를 재시작하여 사용가능합니다.
volumes:
- "$PWD/syslog-ng.conf":/etc/syslog-ng/syslog-ng.conf
유익하게 보셨다면 공감을 눌러주고, 댓글로 의견을 공유해 남겨주시면 감사하겠습니다!
'Docker' 카테고리의 다른 글
[Docker] Network 설정 (0) | 2022.12.01 |
---|---|
[Docker] Logging 설정 (0) | 2022.11.07 |
[Docker] Healthcheck 설정을 통한 컨테이너 상태 점검 (0) | 2022.10.19 |
[Docker] Volumes 설정 (0) | 2022.10.11 |
[Docker] Restart 설정 (0) | 2022.09.20 |