다음을 통해 공유


Prometheus용 관리 서비스를 사용하여 Argo CD 메트릭 수집

Argo CD는 Kubernetes에 대한 선언적인 GitOps 지속 업데이트 도구입니다. Argo CD는 Git 리포지토리를 진실의 원천으로서 사용하여 원하는 애플리케이션 상태를 정의하는 GitOps 패턴을 따릅니다. 지정된 대상 환경에서 원하는 애플리케이션 상태의 배포를 자동화합니다. 애플리케이션 배포는 브랜치나 태그의 업데이트를 추적할 수 있으며, 또는 Git 커밋에서 매니페스트 파일의 특정 버전에 고정할 수 있습니다.

이 문서에서는 AkS(Azure Kubernetes Service) 및 Azure Arc 지원 Kubernetes를 사용하여 Prometheus 메트릭을 스크래핑하여 Argo CD를 모니터링하도록 Prometheus용 Azure Monitor 관리 서비스를 구성하는 방법을 설명합니다.

필수 조건

  • AKS 또는 Azure Arc 지원 Kubernetes에서 실행되는 Argo CD
  • 클러스터에서 Prometheus에 대한 관리되는 서비스가 사용하도록 설정되었습니다. 자세한 내용은 Prometheus 및 Grafana 사용을 참조하세요.

서비스 감시 프로그램 배포

Prometheus용 관리 서비스 추가 기능을 구성하여 Argo CD 워크로드에서 Prometheus 메트릭을 스크래핑하려면 다음 서비스 모니터를 배포합니다.

참고

샘플에 구성된 레이블과 일치하지 않는 경우 서비스 모니터에 대해 matchLabels에 올바른 레이블을 지정합니다.

apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: azmon-argocd-metrics
spec:
  labelLimit: 63
  labelNameLengthLimit: 511
  labelValueLengthLimit: 1023
  selector:
    matchLabels:
     app.kubernetes.io/name: argocd-metrics
  namespaceSelector:
    any: true
  endpoints:
  - port: metrics
---
apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: azmon-argocd-repo-server-metrics
spec:
  labelLimit: 63
  labelNameLengthLimit: 511
  labelValueLengthLimit: 1023
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-repo-server
  namespaceSelector:
    any: true
  endpoints:
  - port: metrics
---
apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: azmon-argocd-server-metrics
spec:
  labelLimit: 63
  labelNameLengthLimit: 511
  labelValueLengthLimit: 1023
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-server-metrics
  namespaceSelector:
    any: true
  endpoints:
  - port: metrics

참고

다른 서비스나 Pod 모니터를 구성하려면 다음 지침을 따릅니다.

규칙 배포

  1. 경고 규칙에 대한 템플릿 파일매개 변수 파일을 다운로드합니다.

  2. 매개 변수 파일에서 다음 값을 편집합니다.

    매개 변수
    azureMonitorWorkspace Azure Monitor 작업 영역의 리소스 ID입니다. Azure Monitor 작업 영역의 개요 페이지에 있는 JSON 보기에서 검색합니다.
    location Azure Monitor 작업 영역의 위치입니다. Azure Monitor 작업 영역의 개요 페이지에 있는 JSON 보기에서 검색합니다.
    clusterName AKS 클러스터의 이름입니다. 클러스터의 개요 페이지에서 JSON 뷰에서 검색합니다.
    actionGroupId 경고 작업 그룹의 리소스 ID입니다. 작업 그룹의 개요 페이지에서 JSON 뷰에서 검색합니다. 작업 그룹에 대해 자세히 알아보세요.
  3. Azure Resource Manager 템플릿을 설치하기 위한 표준 방법을 사용하여 템플릿을 배포합니다. 자세한 내용은 Azure Monitor용 Resource Manager 템플릿 샘플을 참조하세요.

  4. 템플릿을 배포한 후에는 Prometheus 규칙 그룹 보기에 설명된 대로 Azure Portal에서 규칙을 볼 수 있습니다. 클러스터와 워크로드에 적합한지 확인하려면 경고 임계값을 검토합니다. 이에 따라 임계값을 업데이트합니다.

    참고

    규칙은 클러스터에 국한되지 않습니다. 규칙을 특정 클러스터로 제한하려면 규칙을 특정 클러스터로 제한을 참조하세요.

Prometheus 경고에 대해 자세히 알아봅니다. 다른 오픈 소스 Prometheus 경고/기록 규칙을 사용하려면 az-prom-rules-converter를 사용하여 Azure와 동등한 Prometheus 규칙을 만듭니다.

Grafana 대시보드 가져오기

ID 또는 JSON을 사용하여 Argo CD용 Grafana 대시보드(ID 14191) 를 가져오려면 Grafana Labs에서 대시보드 가져오기의 지침을 따릅니다.

문제 해결

서비스 모니터가 성공적으로 적용되면 추가 기능이 서비스 모니터 대상을 선택하도록 하려면 다음 지침을 따릅니다.