클러스터 관찰

이 페이지에서는 Anthos 비공개 모드에서 사용할 수 있는 로깅 및 모니터링 옵션을 사용하는 방법을 설명합니다.

이 페이지는 플랫폼 관리자용으로 작성되었습니다.

대시보드 모니터링

Athos 관리 센터에서 클러스터 및 노드 측정항목 모니터링의 샘플 대시보드를 사용할 수 있습니다.

모니터링 탭

Grafana 모니터링 대시보드 버튼을 누르면 관리 클러스터에서 호스팅되는 Grafana 애플리케이션이 열립니다. Grafana 액세스는 관리 센터를 통해 제어됩니다. 관리 센터에 로그인되어 있으면 추가 로그인이 필요하지 않습니다.

로그인하면 데모용 샘플 대시보드 목록을 볼 수 있습니다.

Grafana 대시보드

쿼리 로그

Grafana Loki 로그 버튼을 누르면 Grafana 탐색기가 열립니다. 여기서 Kubernetes 시스템 로그를 포함한 로그를 쿼리할 수 있습니다. 다음 섹션의 설명대로 로그에 라벨이 지정됩니다.

로그 라벨

로그 유형 라벨
컨테이너 로그
  • cluster=CLUSTER_NAME
  • resources=k8s_container
  • namespace=NAMESPACE_NAME
  • node=NODE_NAME
  • pod=POD_NAME
  • container=CONTAINER_NAME
  • 기타 Kubernetes 라벨
노드 Journald 로그
  • cluster=CLUSTER_NAME
  • resources=k8s_node
  • node=NODE_NAME
  • identifier=SYSLOG_IDENTIFIER
  • machine=MACHINE_ID
감사 로그
  • cluster=CLUSTER_NAME
  • resource=k8s_audit
  • level=LEVEL
  • vert=VERB

모든 Kubernetes 라벨과 클러스터 라벨이 로그 라벨로 포함됩니다.

샘플 쿼리

  • 다음 쿼리는 컨테이너 로그를 선택합니다.

    {cluster="admin", namespace="kube-system", resources="k8s_container", container="kube-apiserver"}
    

    Grafana 쿼리 컨테이너 로그

  • 다음 쿼리는 노드 Journald 로그를 선택합니다.

    {cluster="admin", resources="k8s_node"}
    

    Grafana 쿼리 노드 로그

  • 다음 쿼리는 감사 로그를 선택합니다.

    {cluster="admin", resources="k8s_audit"}
    

    Grafana 쿼리 감사 로그

커스텀 StorageClass 구성

Anthos 비공개 모드는 PersistentVolumeClaims를 사용하여 측정항목, 로그, 대시보드, 알림을 저장할 공간을 프로비저닝합니다. 클러스터를 만들면 클러스터가 자동으로 LogMon 커스텀 리소스를 만듭니다. 기본 StorageClass를 재정의하려면 다음 단계를 완료합니다.

  1. 다음 명령어를 실행하여 명령줄 편집기에서 LogMon 커스텀 리소스를 엽니다.

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  2. LogMon 커스텀 리소스에서 spec 필드 아래의 storageClassName을 업데이트합니다.

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          default_loki:
            deployment:
              storageClassName: anthos-system # configure the new storage class here 
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              storageClassName: anthos-system # configure the new storage class here
    
  3. 변경사항을 LogMon 커스텀 리소스에 저장하려면 명령줄 편집기를 저장하고 종료합니다.

스토리지 크기 구성

클러스터를 만들면 클러스터가 자동으로 LogMon 커스텀 리소스를 만듭니다. 측정항목, 로그, 대시보드, 알림에 대한 스토리지 크기를 재정의하려면 다음 단계를 완료합니다.

  1. 다음 명령어를 실행하여 명령줄 편집기에서 LogMon 커스텀 리소스를 엽니다.

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  2. LogMon 커스텀 리소스에서 spec 필드 아래의 storageSize을 업데이트합니다.

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          default_loki:
            deployment:
              components:
                loki:
                   storageSize: 20Gi # configure the new storage size for logs here
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              components:
                alertmanager:
                   storageSize: 1Gi # configure the new storage size for alerts here
                grafana:
                   storageSize: 1Gi # configure the new storage size for dashboards here
                prometheus:
                   storageSize: 20Gi # configure the new storage size for metrics here
    ````
    
  3. 변경사항을 LogMon 커스텀 리소스에 저장하려면 명령줄 편집기를 저장하고 종료합니다.

보관 기간 구성

클러스터에서 실행되는 Prometheus 및 Loki 에이전트에서 로그 보관 기간을 구성하려면 다음 단계를 완료합니다.

  1. 다음 명령어를 실행하여 명령줄 편집기에서 LogMon 커스텀 리소스를 엽니다.

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  2. LogMon 커스텀 리소스에서 spec 필드 아래의 retentionTime을 업데이트합니다.

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          default_loki:
            deployment:
              retentionPolicy:
                retentionTime: 720h # configure the new retention time for logs here
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              retentionPolicy:
                retentionTime: 720h # configure the new retention time for metrics here
    
  3. 변경사항을 LogMon 커스텀 리소스에 저장하려면 명령줄 편집기를 저장하고 종료합니다.

fluent-bit 추가 출력 구성

클러스터에서 실행되는 Loki 외에 다른 대상으로 로그 내보내기도 지원됩니다. 지원되는 대상 목록을 참조하세요. 추가 로그 출력 대상을 구성하려면 다음 단계를 완료합니다.

  1. kube-system 네임스페이스에서 logmon: system_logs 라벨로 configmap을 만듭니다. 추가 출력 구성은 fluent-bit 출력 플러그인과 동일한 구문을 포함하며, data 필드 아래의 output.conf 파일에 추가됩니다. 샘플 구성 파일을 참조하세요.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      # The name should match the configmap name specified in step 3.
      name: <customized-system-logs-fluent-bit-output-config>
      # Don't change the namespace
      namespace: kube-system
      labels:
        # This label is required.
        logmon: system_logs
    data:
      # The file name must be output.conf
      output.conf: |
        # Add a customized fluent-bit output plugin configuration here
    
  2. 다음 명령어를 실행하여 명령줄 편집기에서 LogMon 커스텀 리소스를 엽니다.

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  3. LogMon 커스텀 리소스에서 spec/system_logs/outputs 필드 아래에 additionalOutput 필드를 추가합니다.

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          additionalOutput:
            fluentbitConfigmaps:
            # The name should match the configmap name created in step 1.
            - "<customized-system-logs-fluent-bit-output-config>"
            # Scheme: []v1.VolumeMount. Add volumeMounts if necessary
            volumeMounts:
            - ...
            - ...
            # Scheme: []v1.Volume. Add volumes if necessary
            volumes:
            - ...
            - ...
    
  4. 변경사항을 LogMon 커스텀 리소스에 저장하려면 명령줄 편집기를 저장하고 종료합니다.