컨테이너용 Application Gateway에 대한 모니터링을 구축하는 것은 성공적인 운영을 위해 매우 중요합니다. 첫째, 트래픽이 어떻게 제어되는지 시각화하여 성능을 최적화하고 문제를 즉각적으로 해결하는 데 도움이 되는 실행 가능한 인사이트를 제공합니다. 둘째, 모니터링은 조사 중에 귀중한 인사이트를 제공하여 보안 조치를 강화하고 게이트웨이가 위협으로부터 안전하고 복원력이 강한 상태를 유지하도록 보장합니다. 컨테이너용 Application Gateway에 대한 모니터링을 구현하면 지속적인 성능 최적화를 지원할 뿐만 아니라 사전 검색 및 응답 기능을 통해 전반적인 보안 태세를 강화할 수 있습니다.
다음과 같은 방법으로 컨테이너용 Azure Application Gateway 리소스를 모니터링할 수 있습니다. 다이어그램을 참조하세요.
백 엔드 상태 메트릭: ALB 컨트롤러의 메트릭 및 백 엔드 상태 엔드포인트는 백 엔드 상태에 대한 여러 메트릭과 요약을 제공합니다. 메트릭 엔드포인트는 Prometheus에 노출될 수 있도록 합니다.
메트릭: 메트릭 및 활동 로그는 Azure Monitor를 통해 노출되어 컨테이너용 Application Gateway 배포의 성능을 모니터링합니다. 메트릭에는 시계열 데이터의 순서가 지정된 집합에 대한 수치 값이 포함되어 있습니다.
진단 로그: 액세스 로그는 컨테이너용 Application Gateway에 대한 모든 요청을 감사합니다. 로그는 클라이언트의 IP, 요청된 URL, 요청 대기 시간, 반환 코드, 입출력 바이트 등 여러 특성을 제공할 수 있습니다. 액세스 로그는 60초마다 수집됩니다.
서비스에 대해 알아보기
-
Azure Managed Prometheus란?
- Prometheus를 사용해야 하는 이유: Azure Prometheus는 네이티브 통합 및 관리 기능을 제공하여 모니터링 인프라의 설정과 관리를 간소화합니다.
-
Azure Managed Grafana란?
- Grafana를 사용해야 하는 이유: Azure Managed Grafana를 사용하면 모든 원격 분석 데이터를 한곳에 모을 수 있으며 Microsoft Entra ID를 사용하여 Azure Monitor 및 Azure Data Explorer에 대한 기본 지원이 제공됩니다.
-
Azure Log Analytics 작업 영역이란?
- Log Analytics Workspace를 사용해야 하는 이유: Log Analytics 작업 영역은 비즈니스 요구 사항에 따라 크기 조정되어 대량의 로그 데이터를 효율적으로 처리하고 문제를 신속하게 검색하여 진단합니다.
필수 구성 요소
- 회사 또는 학교 및 활성 구독에 대한 Azure 계정입니다. 무료로 계정을 만들 수 있습니다.
- 활성화된 Kubernetes 클러스터.
- 컨테이너 배포를 위한 Active Application Gateway.
- 기여자의 허가를 받은 활성 리소스 그룹.
팁
기여자 역할의 대안으로 다음 사항을 활용할 수도 있습니다.
- 'microsoft.monitor/accounts/write'를 사용한 사용자 지정 역할.
- 읽기 권한.
- Grafana 관리자.
- Log Analytics 기여자.
- 기여자 권한 모니터링. 사용자 지정 역할에 대해 자세히 알아보려면 여기를 클릭합니다.
구성을 위한 새로운 애플리케이션 만들기
Prometheus와 Grafana를 구성하는 단계를 완료합니다.
Azure 계정을 사용하여 Azure Portal에 로그인합니다.
검색 리소스, 서비스 및 문서에서 Kubernetes 서비스를 입력 하고 Kubernetes 클러스터 이름을 선택합니다.
모니터링을 확장하고 인사이트를 선택한 다음 모니터링 구성을 선택합니다.
현재 Kubernetes 클러스터 메트릭을 저장하기 위해 로그 분석, Azure Monitor(Prometheus), Managed Grafana의 새 인스턴스를 만듭니다.
리소스, 서비스 및 문서 검색에서 관리되는 Prometheus를 입력하고 선택합니다.
만들기를 선택하여 Azure Monitor에서 관리되는 Prometheus 서비스를 사용하도록 설정하는 단계를 따릅니다.
Azure Monitor 작업 영역 인스턴스 만들기:
- Azure Monitor 작업 영역 만들기 페이지에서 구독 및 리소스 그룹을 선택합니다.
- 작업 영역에 대한 이름 및 지역을 제공합니다.
- 검토 + 만들기를 선택하여 작업 영역을 만듭니다.
클러스터에 Prometheus 구성 맵을 추가합니다.
- 이 파일을 메모장 또는 Visual Studio Code에 복사합니다. https://github.com/Azure/prometheus-collector/blob/main/otelcollector/configmaps/ama-metrics-settings-configmap.yaml.
- 35번째 줄을 수정하여 podannotationnamespaceregex를 “”에서 "azure-alb-system"으로 설정합니다.
# Example Kusto Query podannotationnamespaceregex = "azure-alb-system"
- 파일을 configprometheus.yaml로 저장합니다.
- 관리 파일에서 CLI(명령줄 인터페이스)에 파일을 추가합니다.
- 다음 명령을 실행합니다.
# Run the Following Command in Bash kubectl apply -f configprometheus.yaml
Managed Grafana를 만듭니다. Grafana 작업 영역 연결:
- 리소스, 서비스 및 문서 검색에 Azure Monitor를 입력합니다.
- 모니터 작업 영역을 선택합니다.
-
연결된 Grafana 작업 영역을 선택합니다.
Grafana 작업 영역을 선택합니다.
링크를 선택합니다.
로깅을 위한 Kubernetes 클러스터 구성
리소스를 만들었고 이제 모든 리소스를 결합하고 Prometheus를 구성합니다.
- 클러스터 구성
- 리소스, 서비스 및 문서 검색에서 Kubernetes 클러스터를 검색합니다.
- 인사이트를 검색하고 모니터링 구성을 선택합니다.
- 각 인스턴스를 지정합니다.
- 로그 분석 작업 영역: 사용자를 위해 만들어진 기본 로그 분석 작업 영역을 사용합니다.
- 관리되는 Prometheus: "Prometheus 메트릭 사용" 확인란을 선택합니다.
- 고급 설정을 선택합니다. 최근에 만든 Azure Monitor 작업 영역을 지정합니다.
- Grafana 작업 영역: Grafana 사용 확인란을 선택합니다.
- 고급 설정을 선택합니다. 최근 만들어진 Grafana 인스턴스를 지정합니다.
- “구성”을 선택합니다.
컨테이너용 Application Gateway에 대한 진단 로그 사용
활동 로깅은 모든 Resource Manager 리소스에 대해 사용하도록 설정됩니다. 액세스 로그의 경우, 액세스 로깅을 사용하도록 설정해야 해당 로그를 통해 사용 가능한 데이터를 수집할 수 있습니다. 로깅을 사용하도록 설정하려면 Azure Monitor에서 진단 설정을 구성할 수도 있습니다.
컨테이너용 Application Gateway에서 로그 분석 작업 영역으로 로그를 보냅니다.
저장을 선택합니다.
Grafana 대시보드에 액세스
이 섹션에서는 Grafana 기본 대시보드로 들어갑니다.
리소스, 서비스 및 문서 검색에서 Managed Grafana를 선택합니다.
클러스터에서 모니터링을 구성하는 데 사용되는 grafana 리소스를 선택합니다.
개요에서 엔드포인트 URL을 선택합니다.
사용자 자격 증명을 입력한 후 Grafana 소개를 참조하세요.
대시보드 아래에서 기본 대시보드에 액세스하려면 왼쪽 사이드바에서 선택합니다.
Grafana의 그래프 Prometheus 메트릭
이 섹션에서는 Prometheus 메트릭의 샘플 메트릭을 시각화합니다. 모든 Prometheus 메트릭 사용 가능 여부는 여기에서 확인합니다. Prometheus 메트릭.
- 오른쪽 상단 모서리에서 대시보드 추가를 선택합니다.
- 시각화 추가를 선택합니다.
- 데이터 원본에서 prometheus를 검색합니다.
- 원하는 메트릭을 선택합니다. 예를 들어,: 백 엔드 서비스의 모든 비정상적인 엔드포인트를 알려 주는 alb_controller_total_unhealthy_endpoints입니다.
- alb-controller로 앱을 선택합니다.
- 패널 이름, 시각화 유형, 시간 범위를 선택합니다.
-
대시보드에 추가하려면 패널을 저장 + 적용합니다.
참고
{{variable_name}}으로 사용자 지정 범례를 추가합니다.
Grafana의 그래프 액세스 로그 및 메트릭
이 섹션에서는 Log Analytics 작업 영역의 샘플 로그를 시각화합니다. 모든 진단 로그의 가용성은 여기에서 확인할 수 있습니다. 진단 로그.
로그에 대한 작업 영역
- 오른쪽 상단 모서리에서 추가 + 대시보드 추가를 선택합니다.
- 시각화 추가를 선택합니다.
- 데이터 원본 + 추가에서 Azure Monitor를 검색합니다.
- 서비스를 로그로 변경합니다.
- 유형:
// Example Kusto Query
AGCAccessLogs
| project BackendResponseLatency, TimeGenerated
- 시각화로 시계열을 선택합니다.
- 패널의 이름, 설명, 시간 범위를 선택합니다.
- 대시보드에 저장 + 적용합니다.
메트릭에 대한 작업 영역
- 오른쪽 상단 모서리에서 추가 + 대시보드 추가를 선택합니다.
- 시각화 추가를 선택합니다.
- 데이터 원본+ 추가에서 Azure Monitor를 검색합니다.
- 서비스를 메트릭으로 변경합니다.
- 컨테이너용 Application Gateway 인스턴스를 선택합니다.
- 메트릭 네임스페이스를 microsoft.servicenetworking/trafficcontrollers로 선택합니다.
-
총 요청 수 및 데이터 시각화 유형과 같은 메트릭을 선택합니다.
- 패널의 이름, 설명, 시간 범위를 선택합니다.
- 대시보드에 저장 + 적용합니다.
축하합니다! 상태 추적을 강화하기 위해 모니터링 서비스를 설정했습니다.