vRealize Log Insight 8.4 릴리스에서는 Log Insight로 로그를 전송하도록 컨테이너 로그 소스를 구성하는 방법에 대한 제품 내 설명서를 제공하는 Log Source를 추가했습니다. Tanzu Kubernetes Grid 클러스터의 로깅 구성에 대한 몇 가지 질문이 있어, 저는 단계와 예상 결과를 살펴볼 수 있는 간단한 블로그를 쓰고 싶었습니다. 이미 몇 개의 블로그가 있지만, 이 게시물에서는 Log Insight의 초기 버전 설정에 초점을 맞출 것입니다.

CLI 도구 설치

먼저 리눅스 또는 윈도우즈 워크스테이션에 CLI 도구를 설치해야 합니다. 이 기능은 TKG가 배포된 vCenter의 클러스터 보기에서 사용할 수 있습니다. (Menu > Workload Management > Summary 탭)

지침에 따라 해당 OS에 CLI 도구를 설치합니다.

클러스터에 연결

랩 환경에서 근무하기 때문에 인증서를 사용하지 않으므로 TLS를 우회하기 위해 줄을 추가합니다.

kubectl-vsphere.exe login --insecure-skip-tls-verify --server https://10.0.0.54 --vsphere-username jroman@cmbu.local --tanzu-kubernetes-cluster-name fd-cluster-cluster --tanzu-kubernetes-cluster-namespace field-demo-clusters

암호를 입력하라는 메시지가 표시됩니다. 암호를 입력하면 계정에 액세스 권한이 있는 컨텍스트 목록이 표시됩니다.

Password:
Logged in successfully.

You have access to the following contexts:
10.176.192.50
10.176.192.52
10.176.193.1
auctionw1
fd-cluster-dev
field-demo-clusters

로그 원본 문서로 이동

로그 원본에는 로그를 전달하는 데 필요한 구성 파일을 생성하는 데 필요한 정보가 있습니다. Log Insight 배포에 로그인하고 Log Source > Containers > Tanzu Kubernetes Grid로 이동합니다. vSphere 7.0 이상에서 TKG를 사용하는 경우 Fluentd를 설치할 필요가 없습니다. 이미 설치되어 있습니다. ConfigMap을 적용하려면 fluent.conf 파일을 만들어야 합니다. 1단계의 텍스트를 새 파일에 복사하고 fluent.conf라는 이름을 붙이면 됩니다. vSphere 6.7을 실행하는 경우 다음 지침을 사용하여 Fluentd를 설치할 수 있습니다.

ConfigMap 업데이트/생성

fluent.conf 파일에서 다음 코드 블록을 확인하고 그에 따라 업데이트합니다. SSL을 사용하지 않기 때문에 구성을 https에서 http로 변경하고 호스트의 FQDN 또는 IP를 추가하고 포트를 9543에서 9000으로 변경할 예정입니다.

@type vmware_loginsight
scheme http
ssl_verify false
host li-host.domain.com
port 9000
http_method post
serializer json
rate_limit_msec 0
raise_on_error true
include_tag_key true
tag_key tag
http_conn_debug false

필요한 매개 변수를 업데이트하면 이 클러스터에 구성 파일을 적용할 수 있습니다. 로그 소스 설명서에서 구성 맵을 li-fluentd-config vs. login sight-fluentd-config로 전달합니다. (loginsight-fluent.yml에서 구성 맵 이름을 업데이트할 수도 있습니다.) 지침은 8.4.1 릴리스에서 업데이트됩니다.

kubectl -n kube-system create configmap li-fluentd-config --from-file=fluent.conf

다음 출력이 표시되어야 합니다.

configmap/li-fluentd-config created

로그에 대한 액세스 구성

이제 3단계의 내용을 파일 loginsight-fluent.yml로 복사할 수 있습니다. 이렇게 하면 서비스 계정이 생성되고 로그 데이터에 대한 액세스 권한이 부여됩니다. 현재 li-fluentd-config로 설정된 구성 맵의 이름을 변경하지 않는 한 이 파일을 수정할 필요가 없습니다. 다음으로 아래 명령을 실행합니다.

kubectl apply -f loginsight-fluent.yml

다음 출력이 표시되어야 합니다.

clusterrole.rbac.authorization.k8s.io/fluentd created
clusterrolebinding.rbac.authorization.k8s.io/fluentd created
daemonset.apps/log-collector created

로그 수집기 컨테이너가 생성되었는지 확인

실행:

kubectl get pods --all-namespaces | grep log

로그 수집기 컨테이너가 실행 중인지 확인해야 합니다.

NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system log-collector-kqlv5 1/1 Running 0 13s
kube-system log-collector-lffwz 1/1 Running 0 13s
kube-system log-collector-xrvv6 1/1 Running 0 13s

ConfigMap(fluent.conf)을 생성하고 로그 전달을 구성할 각 클러스터에 대해 액세스 제어(loginsight-fluent.yml)를 적용합니다.

로그 흐름 확인

fluent.conf 파일은 데이터를 쉽게 필터링할 수 있도록 로그에 태그를 지정합니다.

environment tanzu_k8s_grid
log_type kubernetes

kube로 log_type start를 검색하고 네임스페이스별로 로그를 봅니다.

문제 해결

문제가 발생하거나 구성을 변경해야 할 경우 몇 가지 사항을 문서화했습니다.

구성 검토 또는 제거

kubectl get configmap -n kube-system
kubectl -n kube-system delete configmap li-fluentd-config
kubectl delete -f fluent.yml

Context 변경 또는 가져오기

kubectl config get-contexts
kubectl config use-context

컨테이너 로그 보기

kubectl logs log-collector-7xtkz -n kube-system

이벤트 보기

예를 들어 “kubectl get pods”를 실행한 후 실행 이외의 상태가 표시되는 경우. 종료, 충돌 루프 백오프, 오류 이미지 풀 등…

실행:

kubectl get events --all-namespaces -sort-by+'.metadata.creationTimestamp'

이렇게 하면 컨테이너가 올바르게 전개되지 않은 이유에 대한 자세한 정보가 제공됩니다.

몇 분 안에 TKG 클러스터에 대한 로깅을 설정하는 데 필요한 모든 정보가 포함됩니다!

출처 : https://blogs.vmware.com/management/2021/05/monitoring-tanzu-kubernetes-grid-tkg-clusters-using-vrealize-log-insight.html

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like

Deploy HA-Proxy for vSphere with Tanzu

Getting Started with vSphere 블로그 게시물에서 Tanzu와 vSphere의 차이점과 Tanzu와 VCF의 차이점에 대해 토론했다. 우리는 또한 Tanzu와 함께…

TKG 1.3과 NSX Advanced Load Balancer

가장 최근에 올린 글에서 클러스터 API가 TKG에서 어떻게 활용되는지 살펴보았습니다. 이 게시물은 TKG(Tantsu Kubernetes Grid) 멀티 클라우드 버전을…