콘텐츠로 이동

데이터 단절 문제 해결

개요

이 문서에서는 Guance의 로그, 트레이스, 메트릭 데이터 단절 문제를 해결하는 방법을 소개합니다.

아키텍처 다이어그램

Guance의 데이터 흐름은 다음과 같습니다.

  1. DataKit이 메트릭과 로그를 Guance DataWay 클러스터로 전송합니다.
  2. DataWay가 데이터를 kodo 서비스로 전달하여 처리합니다.
  3. kodo가 처리 완료된 데이터를 nsqd 메시지 큐 서비스로 전송합니다.
  4. kodo-x가 nsqd 메시지 큐 서비스에 요청하여 데이터를 소비합니다.
  5. kodo-x가 소비한 데이터를 해당 스토리지 엔진으로 전송합니다.

데이터 단절 문제 해결 단계

1단계: 호스트 시간 확인

다음 정보를 확인하세요.

  • Guance 클러스터 호스트 시간이 현재 시간과 일치하는지 확인
  • DataKit 수집기 호스트 시간이 현재 시간과 일치하는지 확인

다음 명령어로 확인할 수 있습니다.

date

호스트 시간이 현재 시간과 일치하지 않는 경우 다음 방법으로 수정하세요.

# ntpdate 설치
yum install ntpdate -y

# 로컬 시간 동기화
ntpdate time.windows.com

# 네트워크 소스와 동기화
ntpdate cn.pool.ntp.org
sudo date -s "2022-01-01 10:30:00"

시간을 수정해야 합니다.

2단계: 수집기 문제 해결

DataKit 데이터 단절 문제 해결을 참조하세요.

3단계: DataWay 서비스 로그 확인

다음 내용을 실행하세요.

# 컨테이너 로그인
kubectl exec -ti -n  <Namespace> <dataway pod name> bash
# 로그 확인
cd /usr/local/cloudcare/dataflux/dataway
# 오류 로그 검색
grep -Ei error log

4단계: 각 서비스의 실행 상태 확인

  • 클러스터 노드 상태가 정상인지 확인
kubectl get node
  • forethought-kodo의 모든 서비스 상태가 정상인지 확인
kubectl get pods -n forethought-kodo
  • nsqd 서비스 상태가 정상인지 확인
kubectl get pods -n middleware | grep nsqd
  • 스토리지 엔진이 정상인지 확인
kubectl get pods -n middleware

5단계: kodo 서비스 로그 확인

참고

kodo 서비스 로그를 확인하면 Guance이 데이터를 소비 큐에 성공적으로 전송했는지 여부를 확인할 수 있습니다.

  • Namespace: forethought-kodo

  • Deployment: kodo

  • Log path: /logdata/log

kodo 서비스가 정상인 경우 다음 내용을 실행하세요.

# 컨테이너 로그인
kubectl exec -ti -n  forethought-kodo <kodo pod name> bash
# 로그 확인
cd /logdata
# 오류 로그 검색
grep -Ei error log

kodo 서비스가 비정상인 경우 컨테이너에 로그인할 수 없습니다. 먼저 kodo 로그 출력 모드를 조정한 후 컨테이너 로그를 확인하세요.

  • kodo 로그 출력 모드 수정
kubectl get configmap kodo -n forethought-kodo -o yaml | \
       sed "s/\/logdata\/log/stdout/g" | \
       kubectl apply -f -
  • kodo 컨테이너 재시작
kubectl rollout restart -n forethought-kodo deploy kodo 
  • kodo 컨테이너 로그 확인
kubectl logs -f -n forethought-kodo <kodo pod name>

6단계: kodo-x 서비스 로그 확인

참고

kodo-x 서비스 로그를 확인하면 Guance이 데이터를 성공적으로 기록했는지, 로그 쓰기 제한이 발생했는지, 로그 쓰기가 느린지 등을 확인할 수 있습니다.

  • Namespace: forethought-kodo
  • Deployment: kodo-x
  • Log path: /logdata/log

kodo-x 서비스가 정상인 경우 다음 내용을 실행하세요.

# 컨테이너 로그인
kubectl exec -ti -n  forethought-kodo <kodo-x pod name> bash
# 로그 확인
cd /logdata
# 오류 로그 검색
grep -Ei error log

kodo 서비스가 비정상인 경우 컨테이너에 로그인할 수 없습니다. 먼저 kodo 로그 출력 모드를 조정한 후 컨테이너 로그를 확인하세요.

  • kodo 로그 출력 모드 수정
kubectl get configmap kodo-x -n forethought-kodo -o yaml | \
       sed "s/\/logdata\/log/stdout/g" | \
       kubectl apply -f -
  • kodo 컨테이너 재시작
kubectl rollout restart -n forethought-kodo deploy kodo-x
  • kodo 컨테이너 로그 확인
kubectl logs -f -n forethought-kodo <kodo-x pod name>

문서 평가

이 페이지가 도움이 되었나요?