개발강의정리/DevOps

[데브옵스를 위한 쿠버네티스 마스터] 리소스 로깅과 모니터링 - 애플리케이션 로그 관리

nineDeveloper 2021. 1. 19.
728x90

애플리케이션 로그 관리


Kubernetes 애플리케이션 로그 확인

  • 로그는 컨테이너 단위로 로그 확인 가능
  • 싱글 컨테이너 포드의 경우 포드까지만 지정하여 로그 확인
  • 멀티 컨테이너의 경우 포드 뒤에 컨테이너 이름까지 전달하려 로그 확인
  • $ kubectl logs <pod name> <옵션: container name>

kubeapi가 정상 동작하지 않는 경우

  • 쿠버네티스에서 돌아가는 리소스들은 모두 docker를 사용
  • 따라서 docker의 로깅 기능을 사용
  • docker ps -a를 사용하여 조회 가능
  • docker logs <container id>를 사용하여 로그 확인 가능

Kubernetes 애플리케이션 로그 확인

$ kubectl logs kube-dns-6987857fdb-4zbsg -n kube-system dnsmasq
I0102 05:53:18.559043       1 main.go:78] opts: {{/usr/sbin/dnsmasq [-k --cache-size=1000 --no-negcache --dns-forward-max=1500 --log-facility=- --server=/cluster.local/127.0.0.1#10053 --server=/in-addr.arpa/127.0.0.1#10053 --server=/ip6.arpa/127.0.0.1#10053]
 true} /etc/k8s/dns/dnsmasq-nanny 10000000000 127.0.0.1:10053}
I0102 05:53:18.559443       1 nanny.go:124] Starting dnsmasq [-k --cache-size=1000 --no-negcache --dns-forward-max=1500 --log-facility=- --server=/cluster.local/127.0.0.1#10053 --server=/in-addr.arpa/127.0.0.1#10053 --server=/ip6.arpa/127.0.0.1#10053]
I0102 05:53:19.250774       1 nanny.go:149]
W0102 05:53:19.250948       1 nanny.go:150] Got EOF from stdout
I0102 05:53:19.251127       1 nanny.go:146] dnsmasq[9]: started, version 2.78 cachesize 1000
I0102 05:53:19.251250       1 nanny.go:146] dnsmasq[9]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect inotify
I0102 05:53:19.251357       1 nanny.go:146] dnsmasq[9]: using nameserver 127.0.0.1#10053 for domain ip6.arpa
I0102 05:53:19.251434       1 nanny.go:146] dnsmasq[9]: using nameserver 127.0.0.1#10053 for domain in-addr.arpa
I0102 05:53:19.251531       1 nanny.go:146] dnsmasq[9]: using nameserver 127.0.0.1#10053 for domain cluster.local
I0102 05:53:19.251690       1 nanny.go:146] dnsmasq[9]: reading /etc/resolv.conf
I0102 05:53:19.251772       1 nanny.go:146] dnsmasq[9]: using nameserver 127.0.0.1#10053 for domain ip6.arpa
I0102 05:53:19.251857       1 nanny.go:146] dnsmasq[9]: using nameserver 127.0.0.1#10053 for domain in-addr.arpa
I0102 05:53:19.251932       1 nanny.go:146] dnsmasq[9]: using nameserver 127.0.0.1#10053 for domain cluster.local
I0102 05:53:19.252040       1 nanny.go:146] dnsmasq[9]: using nameserver 169.254.169.254#53
I0102 05:53:19.252248       1 nanny.go:146] dnsmasq[9]: read /etc/hosts - 7 addresses

docker를 사용하여 로깅

$ docker logs 16af439e8015

연습문제

  • Kube-apiserver의 로그를 수집하여 /tmp/apiserver.log로 저장하라

kubelet 이 실행되면서 로그 수집현황을 볼 수 있음

$ journalctl -u kubelet -f

프로세스 트리 보기
Docker 경로 /var/log/containers 에 로그가 쌓이는 것을 확인

$ pstree
728x90

댓글

💲 추천 글