클러스터 관찰

이 페이지에서는 연결 해제 모드에서 실행되는 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"}
    
  • 다음 쿼리는 클러스터 운영자 로그를 선택합니다.

    {cluster="admin", namespace="kube-system", resources="k8s_container", control_plane="anthos-cluster-operator"}
    

    클러스터 운영자는 Anthos on bare metal에서 제공되는 리소스로, 관리자 클러스터의 사용자 클러스터 및 관련 리소스를 관리합니다.

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

    {cluster="admin", resources="k8s_node"}
    
  • 다음 쿼리는 감사 로그를 선택합니다.

    {cluster="admin", resources="k8s_audit"}
    
  • 다음 쿼리는 사용자 클러스터 부트스트랩 로그를 선택합니다.

    {cluster="admin", namespace="cluster-user-1"}
    

    사용자 클러스터가 부트스트랩되는 위치는 'user-1'입니다.

관리 센터 로그

  • 다음 쿼리는 acm-controller-manager 로그를 선택합니다.

    {cluster="admin", namespace="anthos-management-center", resources="k8s_container", control_plane="acm-controller-manager"}
    
  • 다음 쿼리는 asm-controller-manager 로그를 선택합니다.

    {cluster="admin", namespace="anthos-management-center", resources="k8s_container", control_plane="asm-controller-manager"}
    
  • 다음 쿼리는 bootstrap-service-controller-manager 로그를 선택합니다.

    {cluster="admin", namespace="anthos-management-center", resources="k8s_container", control_plane="bootstrap-service-controller-manager"}
    
  • 다음 쿼리는 billing-controller-manager 로그를 선택합니다.

    {cluster="admin", namespace="anthos-management-center", resources="k8s_container", control_plane="billing-controller-manager"}
    
  • 다음 쿼리는 anthos-admin-controller-manager 로그를 선택합니다.

    {cluster="admin", namespace="anthos-management-center", resources="k8s_container", control_plane="anthos-admin-controller-manager"}
    
  • 다음 쿼리는 iam-controller-manager 로그를 선택합니다.

    {cluster="admin", namespace="anthos-management-center", resources="k8s_container", control_plane="iam-controller-manager"}
    

커스텀 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 커스텀 리소스에 저장하려면 명령줄 편집기를 저장하고 종료합니다.

다음 단계