Terraform으로 Grafana Cloud의 Cloud Provider Observability 관리
Terraform으로 Grafana Cloud의 Cloud Provider Observability 관리 (Manage Cloud Provider Observability in Grafana Cloud using Terraform)
이 문서는 Terraform을 사용해 Grafana Cloud의 Cloud Provider Observability를 관리하는 방법을 안내해요. Amazon CloudWatch와 Microsoft Azure 리소스를 다루며, Grafana Provider 인증 설정부터 지원되는 리소스 종류까지 설명해요.
출처: 문서
본문
Terraform을 사용해 Grafana Cloud에서 Amazon CloudWatch와 Microsoft Azure 리소스를 포함한 Cloud Provider Observability를 관리해요. Cloud Provider Observability에 대한 자세한 내용은 Cloud Provider Observability 문서를 참고해요.
시작하기 전에 (Before you begin)
시작하기 전에 다음 항목이 있는지 확인해요:
- Grafana Cloud 계정. Grafana Cloud 계정 설정에 대한 자세한 내용은 Get started를 참고해요.
- 머신에 설치된 Terraform. 설치 방법은 Terraform install documentation을 참고해요.
- Grafana 인스턴스의 관리자 권한. Grafana RBAC 역할 할당에 대한 자세한 내용은 Assign RBAC roles을 참고해요.
Note 다음의 모든 Terraform 구성 파일을 같은 디렉터리에 저장해요.
Grafana Provider 인증 구성 (Configure authentication for the Grafana Provider)
Grafana Provider는 Grafana Cloud 리소스와 상호작용하는 데 사용할 수 있는 업스트림 API의 논리적 추상화예요. 다음 정보로 구성해야 해요:
- Grafana Cloud Provider API에 접근하는 데 provider가 필요한 권한을 포함하는 Grafana Cloud 접근 정책 토큰(access policy token).
- 접근 중인 Grafana Cloud 스택을 확인하기 위한 지역(regional) 클라우드 provider API 엔드포인트.
Grafana Provider 인증을 구성하려면:
- Grafana Cloud 접근 정책과 토큰을 만들어요. 조직의 접근 정책을 만들려면 스택용 접근 정책 생성 단계를 참고하고, 지원되는 Amazon CloudWatch 또는 Microsoft Azure 리소스에 나열된 다음 스코프를 사용해요:
- Amazon CloudWatch
- 메트릭 스크레이프 또는 리소스 메타데이터 스크레이프:
integration-management:read,integration-management:write,stacks:read - Metric streams:
metrics:write - ALB access logs, logs with Lambda, 또는 logs with Amazon Data Firehose:
logs:write
- 메트릭 스크레이프 또는 리소스 메타데이터 스크레이프:
- Microsoft Azure
- Serverless metrics:
integration-management:read,integration-management:write,stacks:read - Logs with Azure functions:
logs:write
- Serverless metrics:
- 지역 Cloud Provider API 엔드포인트를 얻어요. 접근 정책 토큰과 다음 명령을 사용해 소유한 모든 Grafana 스택 목록과 각 스택의 Cloud Provider API 호스트 이름을 반환해요:
curl -sH "Authorization: Bearer @@@GRA...N@@@" "https://grafana.com/api/instances" | \
jq '[.items[]|{stackName: .slug, clusterName:.clusterSlug, cloudProviderAPIURL: "https://cloud-provider-api-\(.clusterSlug).grafana.net"}]'
Note 이 엔드포인트가 작동하지 않는다면 Grafana Cloud Provider API 엔드포인트가 새 URL 형식을 사용하고 있을 수 있어요. Grafana Cloud URL에 대한 자세한 내용은 지역별 Grafana Cloud URL 확인을 참고해요.
cloud-provider.tf파일을 만들고 다음 코드 블록을 추가해요:
terraform {
required_providers {
grafana = {
source = "grafana/grafana"
}
}
}
provider "grafana" {
cloud_api_url = "<@@@CLOUD_PROVIDER_API_URL@@@"
cloud_access_policy_token = "@@@CLOUD_ACCESS_POLICY_TOKEN@@@>"
}
variables.tf파일을 만들고CLOUD_ACCESS_POLICY_TOKEN과CLOUD_PROVIDER_API_URL변수를 값과 함께 붙여넣어요.- 다음 Terraform 명령을 실행해요:
terraform apply -var-file="variables.tf"
리소스 구성 (Configure your resources)
Terraform으로 Cloud Provider Observability에서 특정 Amazon CloudWatch 및 Microsoft Azure 리소스를 구성하는 방법은 다음 문서를 참고해요:
- Amazon CloudWatch
- Metrics scrape: Grafana Alloy를 설치하지 않고 AWS 계정의 여러 지역에서 CloudWatch 메트릭을 가져와요.
- Metric streams: Amazon Data Firehose로 CloudWatch metric streams를 사용해 메트릭을 푸시해요. 실시간 인사이트와 확장성을 제공하고 구성·비용·수동 작업을 줄여요.
- ALB access logs: Lambda 함수로 AWS의 애플리케이션 로드 밸런서 접근 로그를 Grafana Cloud로 보내요.
- Logs with Lambda: lambda-promtail 함수로 여러 AWS 서비스의 로그를 Grafana Cloud로 보내요.
- Logs with Amazon Data Firehose: Amazon Data Firehose와 최소 인프라로 AWS의 로그를 Grafana Cloud로 보내요.
- Microsoft Azure
- Serverless metrics: Cloud Provider Observability를 사용해 컬렉터를 구성하거나 배포하지 않고 Azure 리소스를 모니터링해요.
- Logs with Azure functions: Azure 이벤트 허브를 구독하는 Azure 함수로 Azure 이벤트 로그를 Loki 엔드포인트로 보내요.
Grafana cloud provider 리소스 (Grafana cloud provider resources)
Terraform으로 다음 Cloud Provider Observability 리소스와 데이터 소스를 정의할 수 있어요:
| Resource name | Description |
|---|---|
grafana_cloud_provider_aws_account |
Grafana Cloud가 일련의 지역에 대해 Amazon CloudWatch 메트릭을 가져오도록 승인하는 AWS IAM 역할을 나타내요. 보통 구성된 AWS 계정당 하나의 리소스가 있어요. 전체 참조는 Terraform Grafana Provider reference documentation을 참고해요. |
grafana_cloud_provider_aws_cloudwatch_scrape_job |
Grafana AWS 스크레이프 작업을 나타내요. 주어진 grafana_cloud_provider_aws_account에 대해 하나 이상의 AWS 서비스의 메트릭과 통계 목록을 가져오도록 Grafana를 구성해요. 전체 참조는 Terraform Grafana Provider reference documentation을 참고해요. |
grafana_cloud_provider_aws_resource_metadata_scrape_job |
Grafana AWS 리소스 메타데이터 스크레이프 작업을 나타내요. 주어진 grafana_cloud_provider_aws_account에 대해 하나 이상의 AWS 서비스의 리소스 메타데이터를 가져오도록 Grafana를 구성해요. 전체 참조는 Terraform Grafana Provider reference documentation을 참고해요. |
grafana_cloud_provider_azure_credential |
Grafana Cloud가 하나 이상의 구독에서 Azure Monitor 메트릭을 가져오는 데 사용하는 Azure Service Principal 자격 증명을 나타내는 리소스예요. 전체 참조는 Terraform Grafana Provider resource documentation을 참고해요. |