freeseaboy 님의 멋있어 지려 노력하는 블로그
도커(7) 도커 Logs알아보기 본문
자 오늘 3교시 도커 시간 간단하게 로그관련
내용만 잠깐 보는 영상으로 찍었으니
마음편하게 보세요..
스크립밑
★ ★ ★위 포스팅 내용은 네X버 Blog 아래 링크에도
똑같이 미러링 되어 있습니다.예비 Blg ★ ★ ★
https://blog.naver.com/iwseo7114
#################################################################
자 안녕하세요 오늘 3교시 도커 스터디 및 리뷰죠
일단 오늘은 간단하게 할거에요 한챕터이긴한데 내용이많아서
쪼개서 공부하는거라 일단 노래듣
- 컨테이너 로깅
- json-file 로그
- syslog 로그
- fluentd 로깅
대표적으로 컨테이너 로깅 방법은 3가지정도가 있다고 합니다 위 3개
컨테이너 표준출력 및 표준 에러를 메타데이터 파일로 저장한다
도커를 띄우고
docker logs 이름 을하면 표준 출력을 볼수 있다.
[root@C3 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
244febdfe20b prom/node-exporter "/bin/node_exporter" 3 seconds ago Up 1 second 9100/tcp hopeful_gagarin
[root@C3 ~]# docker logs 244
ts=2024-11-16T07:50:31.822Z caller=node_exporter.go:193 level=info msg="Starting node_exporter" version="(version=1.8.2, branch=HEAD, revision=f1e0e8360aa60b6cb5e5cc1560bed348fc2c1895)"
ts=2024-11-16T07:50:31.822Z caller=node_exporter.go:194 level=info msg="Build context" build_context="(go=go1.22.5, platform=linux/amd64, user=root@03d440803209, date=20240714-11:53:45, tags=unknown)"
ts=2024-11-16T07:50:31.823Z caller=diskstats_common.go:111 level=info collector=diskstats msg="Parsed flag --collector.diskstats.device-exclude" flag=^(z?ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\d+n\d+p)\d+$
ts=2024-11-16T07:50:31.823Z caller=diskstats_linux.go:265 level=error collector=diskstats msg="Failed to open directory, disabling udev device properties" path=/run/udev/data
ts=2024-11-16T07:50:31.823Z caller=filesystem_common.go:111 level=info collector=filesystem msg="Parsed flag --collector.filesystem.mount-points-exclude" flag=^/(dev|proc|run/credentials/.+|sys|var/lib/docker/.+|var/lib/containers/storage/.+)($|/)
ts=2024-11-16T07:50:31.823Z caller=filesystem_common.go:113 level=info collector=filesystem msg="Parsed flag --collector.filesystem.fs-types-exclude" flag=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:111 level=info msg="Enabled collectors"
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=arp
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=bcache
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=bonding
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=btrfs
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=conntrack
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=cpu
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=cpufreq
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=diskstats
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=dmi
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=edac
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=entropy
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=fibrechannel
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=filefd
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=filesystem
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=hwmon
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=infiniband
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=ipvs
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=loadavg
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=mdadm
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=meminfo
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=netclass
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=netdev
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=netstat
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=nfs
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=nfsd
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=nvme
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=os
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=powersupplyclass
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=pressure
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=rapl
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=schedstat
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=selinux
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=sockstat
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=softnet
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=stat
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=tapestats
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=textfile
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=thermal_zone
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=time
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=timex
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=udp_queues
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=uname
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=vmstat
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=watchdog
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=xfs
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=zfs
ts=2024-11-16T07:50:31.824Z caller=tls_config.go:313 level=info msg="Listening on" address=[::]:9100
ts=2024-11-16T07:50:31.824Z caller=tls_config.go:316 level=info msg="TLS is disabled." http2=false address=[::]:9100
[root@C3 ~]#
docker logs --tail [라인] [이름]
을 하면 맨처음부터 라인수만큼 로그가 나온다고 합니다
[root@C3 ~]# docker logs --tail 10 244
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=time
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=timex
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=udp_queues
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=uname
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=vmstat
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=watchdog
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=xfs
ts=2024-11-16T07:50:31.823Z caller=node_exporter.go:118 level=info collector=zfs
ts=2024-11-16T07:50:31.824Z caller=tls_config.go:313 level=info msg="Listening on" address=[::]:9100
ts=2024-11-16T07:50:31.824Z caller=tls_config.go:316 level=info msg="TLS is disabled." http2=false address=[::]:9100
[root@C3 ~]#
그리고 쉘에서 사용한 내역도 볼수있음
[root@C3 ~]# docker run -it ubuntu:14.04
root@36efead75224:/# echo "What"
What
root@36efead75224:/# [root@C3 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
36efead75224 ubuntu:14.04 "/bin/bash" 26 seconds ago Up 21 seconds cranky_dirac
244febdfe20b prom/node-exporter "/bin/node_exporter" 3 minutes ago Up 3 minutes 9100/tcp hopeful_gagarin
[root@C3 ~]# docker logs 36e
root@36efead75224:/# echo "What"
What
[root@C3 ~]#
로우데이터도 볼수있다
root@C3 ~]# cat /var/lib/docker/containers/244febdfe20ba99fd7ae8ae52957baeb2647a81e272939f50b988310e097f2e0/244febdfe20ba99fd7ae8ae52957baeb2647a81e272939f50b988310e097f2e0-json.log
{"log":"ts=2024-11-16T07:50:31.822Z caller=node_exporter.go:193 level=info msg=\"Starting node_exporter\" version=\"(version=1.8.2, branch=HEAD, revision=f1e0e8360aa60b6cb5e5cc1560bed348fc2c1895)\"\n","stream":"stderr","time":"2024-11-16T07:50:31.822341734Z"}
{"log":"ts=2024-11-16T07:50:31.822Z caller=node_exporter.go:194 level=info msg=\"Build context\" build_context=\"(go=go1.22.5, platform=linux/amd64, user=root@03d440803209, date=20240714-11:53:45, tags=unknown)\"\n","stream":"stderr","time":"2024-11-16T07:50:31.82238759Z"}
{"log":"ts=2024-11-16T07:50:31.823Z caller=diskstats_common.go:111 level=info collecto
그리고 이방식말고
syslog형식으로도 가능합니다.
즉 컨테이너에서 실행한 정보를 호스트syslog로 가져와서 볼수있다 이런거죠..
지금 이책에서 말하는게
rsyslog라는 프로그램으로 컨테이너 정보를 수집한다 이말이거든요?
즉 컨테이너에서 rsyslog설정하고 rsyslog호스트로 지정된 서버로 데이터를 보내서
서버에서 컨테이너의 log를 본다는 내용이에요 근데 지금 제가
컨테이너 네트워크 이슈가 있어서 실습은 쫌 하기 그래요 ㅋ
fluentd 로깅은 각종 로그를 수집하고 저장하는 오픈소스라고 합니다.
데이터 포맷은 제이슨json 키 값 두개죠..
오늘은 이게 사실 다에요...
플루언트나 AWS 같은거는 연동을 해야되는데 애로 사항이 있죠...
우리는 어찌되었든 rsyslog랑 syslog 그외 도커 컨테이너 제공 표준 로그 이렇게만
알아도 충분합니다 ..그니깐 걱정마시고잉
다음에는 컨테이너 자원관리쪽을 알아볼거에요...그렇게 아시면 됩니다.
도커 실행하는법 이미지 받는법 네트워크 포워딩하는법 종류 설정법
그외 볼륨 공유 및 제한 하는법 오늘배운 로그 설정하는법
이렇게배웠으니깐 그래서 10분애 0.5는 했다고 할수있어요 ㅋㅋ
무튼 이번영상은 이렇게 짧게 하고 다음에는 자원쪽 찍어 올릴게요 ㅅㄱ요
#################################################################
'컴퓨터 & 서버 > 리눅스' 카테고리의 다른 글
리눅스 탐방(6) 백업ㅋ (0) | 2024.11.17 |
---|---|
리눅스 탐방(5) 시스템 보안 정책 기타등등 1-2 (1) | 2024.11.16 |
리눅스 탐방(5) 시스템 보안 정책 기타등등 1-1 (2) | 2024.11.14 |
도커(6) 도커 밥주기~ (4) | 2024.11.11 |
리눅스 탐방(5) 시스템 보안 정책 기타등등 (1) | 2024.11.10 |