TKE는 CLS 통합을 통해 제품화된 완전한 능력을 제공하여 Nginx-ingress 로그 수집 및 소비 기능을 구현합니다. 자세한 내용은 Nginx-ingress 로그 구성을 참고하십시오. 기본 로그 인덱스가 요구 사항을 충족하지 않는 경우 인덱스를 사용자 지정할 수 있습니다. 이 문서는 Nginx Ingress의 로그 인덱스를 업데이트하는 방법을 설명합니다. 전제 조건
1. Nginx Ingress는 v1.1.0 이상입니다. TKE 콘솔에 로그인하고 클러스터 세부 정보 > 애드온 관리를 선택하면 Nginx Ingress 애드온의 버전을 볼 수 있습니다. 주의사항:
이 기능은 Nginx Ingress 버전 v1.1.0 이상에서만 지원됩니다. 예를 들어 버전 v1.0.0과 같은 v1.1.0 미만의 버전에서는 로그 인덱스 수정이 애드온에 의해 롤백되어 덮어씌워질 수 있습니다.
2. Nginx Ingress 인스턴스는 v0.49.3 이상입니다. TKE 콘솔에 로그인하고 클러스터 세부 정보 > 서비스 및 라우팅에서 NginxIngress를 선택한 후 대상 인스턴스 오른쪽에 있는 YAML 보기를 클릭합니다. YAML 파일에서 ccr.ccs.tencentyun.com/paas/nginx-ingress-controller 이미지는 v0.49.3 이상이어야 합니다. 작업 단계
주의사항
로그 구조를 수정하려면 로그 출력, 로그 수집, 로그 인덱싱으로 구성된 Nginx Ingress의 로그 스트림을 이해해야 합니다. 여기에서 로그 출력 또는 수집이 누락되거나 잘못 구성된 경우 로그 수정이 실패합니다.
1단계: Nginx Ingress 인스턴스의 로그 출력 형식 수정
Nginx Ingress 인스턴스의 로그 구성은 프라이머리 구성 ConfigMap 인스턴스 이름-ingress-nginx-controller에 있으며 여기에서 log-format-upstream Key를 수정해야 합니다.
예시
두 개의 연속 문자열 $namespace 및 $service_name을 로그 끝에 추가합니다. 추가 위치는 아래 그림과 같습니다.
Nginx Ingress의 로그 필드에 대한 자세한 내용은 문서를 참고하십시오. 2단계: 클러스터 로그 수집 및 Agent 리포트 형식 수정
클러스터 로그 수집 규칙은 logconfigs.cls.cloud.tencent.com 유형의 리소스 객체에 있습니다. TKE 콘솔에 로그인하고 클러스터 세부 정보 > Kubernetes 리소스 관리자를 선택한 후, 인스턴스 이름-ingress-nginx-controller 리소스 객체를 찾고 YAML 편집을 클릭하여 수정할 수 있습니다. 다음 필드를 수정해야 합니다.
beginningRegex: 로그 시작의 정규식
keys: 로그 필드
logRegex: 로그 종료의 정규식
정규식은 Nginx 로그 행 형식과 일치합니다. 기존 Nginx 로그 형식에 필드를 추가하고, keys 끝에 선언하고, 정규식 구문 분석 결과를 각각 beginningRegex 및 logRegex 끝에 추가하는 것이 좋습니다.
예시
1단계에서 키 두 개를 keys 끝에 추가하고 정규식 문자열을 각각 beginningRegex 및 logRegex 끝에 추가합니다. (선택 사항)3단계: CLS의 로그 인덱스 형식 수정
필드를 검색하려면 인덱스 구성에 따라 CLS 콘솔의 해당 로그 항목에 새 필드의 인덱스를 추가해야 합니다. 이렇게 하면 수집된 모든 로그를 인덱스로 검색할 수 있습니다. 초기 설정 복원
로그 규칙 수정은 복잡하고 정규식을 포함하므로 잘못된 단계로 인해 로그 수집 실패가 발생할 수 있습니다. 로그 수집 오류가 발생할 경우 로그 수집 기능을 비활성화했다가 다시 로그 수집 활성화하여 초기 로그 수집 기능으로 복원할 것을 권장합니다.