EC2의 Kubernetes에 있는 기존 Prometheus 서버에서의 수집 설정 - Amazon Managed Service for Prometheus

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

EC2의 Kubernetes에 있는 기존 Prometheus 서버에서의 수집 설정

Amazon Managed Service for Prometheus는 Amazon EKS를 실행하는 클러스터와 Amazon EC2에서 실행되는 자체 관리형 Kubernetes 클러스터의 Prometheus 서버에서 지표 수집을 지원합니다. 이 섹션의 세부 지침은 Amazon EKS 클러스터의 Prometheus 서버를 위한 것입니다. Amazon EC2의 자체 관리형 Kubernetes 클러스터의 경우 서비스 계정의 OIDC 공급자 및 IAM 역할을 직접 설정해야 한다는 점을 제외하고 수집 설정 단계는 동일합니다.

이 섹션의 지침에서는 Helm을 Kubernetes 패키지 관리자로 사용합니다.

1단계: 서비스 계정의 IAM 역할 설정

문서화하는 온보딩 방법에 대해서는 Prometheus 서버가 실행되는 Amazon EKS 클러스터에서 서비스 계정에 대한 IAM 역할을 사용해야 합니다. 이러한 역할을 서비스 역할이라고도 합니다.

서비스 역할을 사용하면 IAM 역할을 Kubernetes 서비스 계정에 연결할 수 있습니다. 그러면 이 서비스 계정이 해당 서비스 계정을 사용하는 모든 포드의 컨테이너에 AWS 권한을 제공할 수 있습니다. 자세한 내용은 서비스 계정에 대한 IAM 역할을 참조하세요.

이러한 역할을 아직 설정하지 않은 경우 Amazon EKS 클러스터의 지표 수집을 위한 서비스 역할 설정의 지침에 따라 역할을 설정하세요.

2단계: Helm을 사용하여 기존 Prometheus 서버 업그레이드

이 섹션의 지침에는 Prometheus 서버가 Amazon Managed Service for Prometheus WorkSpace에 원격 쓰기를 수행할 수 있도록 인증하고 권한을 부여하기 위한 원격 쓰기 및 sigv4 설정 방법이 포함되어 있습니다.

Prometheus 버전 2.26.0 이상 사용

버전 2.26.0 이상의 Prometheus 서버 이미지에서 차트 Helm을 사용하는 경우 다음 단계를 따르세요.

차트 Helm을 사용하여 Prometheus 서버에서 원격 쓰기를 설정하려면
  1. Helm 구성 파일에 새 원격 쓰기 섹션을 생성합니다.

    • 에서 amp-iamproxy-ingest-role생성한 ${IAM_PROXY_PROMETHEUS_ROLE_ARN} ARN으로 대체합니다. 1단계: 서비스 계정의 IAM 역할 설정 역할 ARN의 형식은 arn:aws:iam::your account ID:role/amp-iamproxy-ingest-role입니다.

    • ${WORKSPACE_ID}를 Amazon Managed Service for Prometheus WorkSpace ID로 바꿉니다.

    • ${REGION}을 Amazon Managed Service for Prometheus WorkSpace의 리전(예: us-west-2)으로 바꿉니다.

    ## The following is a set of default values for prometheus server helm chart which enable remoteWrite to AMP ## For the rest of prometheus helm chart values see: https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus/values.yaml ## serviceAccounts: server: name: amp-iamproxy-ingest-service-account annotations: eks.amazonaws.com/role-arn: ${IAM_PROXY_PROMETHEUS_ROLE_ARN} server: remoteWrite: - url: https://aps-workspaces.${REGION}.amazonaws.com/workspaces/${WORKSPACE_ID}/api/v1/remote_write sigv4: region: ${REGION} queue_config: max_samples_per_send: 1000 max_shards: 200 capacity: 2500
  2. Helm을 사용하여 기존 Prometheus 서버 구성을 업데이트합니다.

    • prometheus-chart-name을 Prometheus 릴리스 이름으로 바꿉니다.

    • prometheus-namespace를 Prometheus 서버가 설치된 Kubernetes 네임스페이스로 바꿉니다.

    • my_prometheus_values_yaml을 Helm 구성 파일의 경로로 바꿉니다.

    • current_helm_chart_version을 Prometheus 서버 차트 Helm의 현재 버전으로 바꿉니다. helm list 명령을 사용하여 현재 차트 버전을 찾을 수 있습니다.

    helm upgrade prometheus-chart-name prometheus-community/prometheus \ -n prometheus-namespace \ -f my_prometheus_values_yaml \ --version current_helm_chart_version

이전 버전의 Prometheus 사용

2.26.0 이전의 Prometheus 버전을 사용하는 경우 다음 단계를 따르세요. 이전 버전의 Prometheus에서는 서명 버전 4 서명 프로세스 (SigV4) 를 기본적으로 AWS 지원하지 않기 때문에 이러한 단계에서는 사이드카 접근 방식을 사용합니다.AWS

이 지침에서는 Helm을 사용하여 Prometheus를 배포한다고 가정합니다.

Prometheus 서버에서 원격 쓰기를 설정하려면
  1. Prometheus 서버에서 새 원격 쓰기 구성을 생성합니다. 먼저 새 업데이트 파일을 생성합니다. amp_ingest_override_values.yaml 파일을 호출합니다.

    YAML 파일에 다음 값을 추가합니다.

    serviceAccounts: server: name: "amp-iamproxy-ingest-service-account" annotations: eks.amazonaws.com/role-arn: "${SERVICE_ACCOUNT_IAM_INGEST_ROLE_ARN}" server: sidecarContainers: - name: aws-sigv4-proxy-sidecar image: public.ecr.aws/aws-observability/aws-sigv4-proxy:1.0 args: - --name - aps - --region - ${REGION} - --host - aps-workspaces.${REGION}.amazonaws.com - --port - :8005 ports: - name: aws-sigv4-proxy containerPort: 8005 statefulSet: enabled: "true" remoteWrite: - url: http://localhost:8005/workspaces/${WORKSPACE_ID}/api/v1/remote_write

    ${REGION}을 Amazon Managed Service for Prometheus 워크스페이스의 리전으로 바꿉니다.

    에서 amp-iamproxy-ingest-role생성한 ${SERVICE_ACCOUNT_IAM_INGEST_ROLE_ARN} ARN으로 대체합니다. 1단계: 서비스 계정의 IAM 역할 설정 역할 ARN의 형식은 arn:aws:iam::your account ID:role/amp-iamproxy-ingest-role입니다.

    ${WORKSPACE_ID}를 워크스페이스 ID로 바꿉니다.

  2. Prometheus 차트 Helm을 업그레이드합니다. 먼저 다음 명령을 입력하여 차트 Helm 이름을 찾습니다. 이 명령의 출력에서 이름에 prometheus가 포함된 차트를 찾아보세요.

    helm ls --all-namespaces

    이어서 다음 명령을 입력합니다.

    helm upgrade --install prometheus-helm-chart-name prometheus-community/prometheus -n prometheus-namespace -f ./amp_ingest_override_values.yaml

    이전 prometheus-helm-chart-name명령에서 반환된 Prometheus helm 차트의 이름으로 바꾸십시오. prometheus-namespace를 네임스페이스의 이름으로 바꿉니다.

차트 Helm 다운로드

차트 Helm을 아직 로컬로 다운로드하지 않은 경우, 다음 명령을 사용하여 다운로드할 수 있습니다.

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm pull prometheus-community/prometheus --untar