대시보드

지원 버전: Istio 1.28 마지막 업데이트: 2026년 2월 19일

Grafana, Kiali, Prometheus를 통해 Istio 서비스 메시를 종합적으로 시각화하고 모니터링합니다.

목차

대시보드 개요

관찰성 스택 아키텍처

spinner

도구별 용도

도구
주요 용도
데이터 소스

Kiali

서비스 토폴로지, 트래픽 분석, 구성 검증

Prometheus, Istio Config

Grafana

메트릭 시각화, 알림, 로그 분석

Prometheus, Loki, Tempo

Prometheus

메트릭 수집 및 쿼리

Envoy, istiod

Jaeger

분산 추적 분석

Envoy spans

Kiali

Kiali Service Graph

Kiali는 Istio 서비스 메시를 위한 관찰성 콘솔입니다. 서비스 토폴로지를 실시간으로 시각화하고, 트래픽 흐름을 분석하며, Istio 구성을 검증합니다.

Kiali의 핵심 가치

  1. 서비스 그래프 시각화: 마이크로서비스 간의 관계와 트래픽 흐름을 직관적으로 표현

  2. 실시간 모니터링: 요청률, 에러율, 응답시간을 실시간으로 확인

  3. 구성 검증: VirtualService, DestinationRule 등의 Istio CRD 오류 감지

  4. mTLS 상태 확인: 서비스 간 mTLS 적용 여부를 시각적으로 확인

  5. 분산 추적 통합: Jaeger와 연동하여 서비스 그래프에서 바로 트레이스 확인

프로덕션 배포

1. Kiali Operator 설치

2. Kiali CR 생성 (프로덕션 설정)

배포:

Kiali 접속

개발 환경

프로덕션 환경 (Token 인증)

Kiali 주요 기능

1. 서비스 그래프 (Graph)

Kiali Graph Overview

Overview:

  • 네임스페이스별 서비스 토폴로지 시각화

  • 트래픽 흐름 및 요청률(RPS) 표시

  • 에러율 및 응답 시간 시각화

  • 버전별 트래픽 분산 확인

Kiali Traffic Animation

위 그림은 Kiali의 Traffic Animation 기능으로, 실시간 트래픽 흐름을 애니메이션으로 보여줍니다. 점의 크기와 빈도로 트래픽 양을 직관적으로 파악할 수 있습니다.

그래프 뷰 타입:

뷰 타입
설명
사용 시나리오

App Graph

애플리케이션 단위

서비스 간 의존성 파악

Versioned App Graph

버전별 애플리케이션

카나리 배포 모니터링

Workload Graph

워크로드 단위

Deployment/StatefulSet 레벨 분석

Service Graph

서비스 단위

Kubernetes Service 중심 뷰

그래프 필터 옵션:

Find/Hide 기능:

2. 애플리케이션 뷰 (Applications)

각 애플리케이션의 상세 정보:

  • Overview: 전체 상태 요약

  • Traffic: 인바운드/아웃바운드 트래픽 메트릭

    • Request volume (RPS)

    • Request duration (P50, P95, P99)

    • Request size / Response size

  • Inbound Metrics: 들어오는 트래픽 분석

    • Source workloads

    • Request protocols (HTTP/gRPC/TCP)

    • Response codes

  • Outbound Metrics: 나가는 트래픽 분석

    • Destination services

    • Response times

    • Error rates

3. 워크로드 뷰 (Workloads)

Kiali Workload Detail

Deployment, StatefulSet 등 워크로드별 상세 정보:

  • Pods: 파드 목록 및 상태

  • Services: 연결된 Service 목록

  • Logs: 실시간 파드 로그 (Envoy + 애플리케이션)

  • Metrics: 워크로드 메트릭

    • Request volume

    • Duration (P50/P95/P99)

    • Error rate

  • Traces: Jaeger 연동 분산 추적

  • Envoy: Envoy 설정 확인

    • Clusters

    • Listeners

    • Routes

    • Bootstrap config

4. 서비스 뷰 (Services)

Kubernetes Service별 상세 정보:

  • Overview: 서비스 메타데이터

  • Traffic: 트래픽 메트릭

  • Inbound Metrics: 클라이언트별 요청 분석

  • Traces: 서비스 호출 추적

5. Istio 구성 검증 (Istio Config)

Kiali Config Validation

모든 Istio 리소스 검증 및 관리:

검증 대상:

  • VirtualService

  • DestinationRule

  • Gateway

  • ServiceEntry

  • Sidecar

  • PeerAuthentication

  • RequestAuthentication

  • AuthorizationPolicy

  • Telemetry

검증 수준:

아이콘
수준
설명

Valid

구성이 올바름

⚠️

Warning

잠재적 문제 (권장사항 위반)

Error

구성 오류 (적용 실패)

일반적인 검증 오류 예시:

수정된 버전:

6. 보안 (Security)

Kiali mTLS Status

mTLS 상태 확인:

Kiali 그래프에서 mTLS 상태를 시각적으로 확인:

  • 🔒 잠금 아이콘: mTLS 활성화

  • 🔓 열린 잠금: mTLS 비활성화

  • ⚠️ 경고 아이콘: 부분적 mTLS (PERMISSIVE)

보안 대시보드:

  • Namespace별 mTLS 상태

  • PeerAuthentication 정책 적용 현황

  • AuthorizationPolicy 효과

7. 분산 추적 통합 (Distributed Tracing)

Kiali Jaeger Integration

Kiali는 Jaeger와 통합되어 서비스 그래프에서 바로 trace를 확인할 수 있습니다.

사용 방법:

  1. 그래프에서 서비스 노드 클릭

  2. "View Traces" 링크 클릭

  3. Jaeger UI로 자동 이동하여 해당 서비스의 trace 확인

Trace 상세 정보:

  • Span duration (각 서비스 처리 시간)

  • Request/Response 헤더

  • 에러 상세 내용

  • Service dependency 맵

Kiali 고급 기능

Traffic Shifting 시각화

Kiali Weighted Routing

Kiali 그래프는 실시간 트래픽 분산율을 엣지 레이블로 표시합니다.

Canary 배포 모니터링:

  • 버전별 요청률 (v1: 90%, v2: 10%)

  • 버전별 에러율 비교

  • 버전별 응답 시간 (P50, P95, P99)

  • 실시간 트래픽 애니메이션으로 분산 확인

Namespace 격리 및 접근 제어

Grafana 대시보드

공식 Istio 대시보드

Istio는 다음과 같은 공식 Grafana 대시보드를 제공합니다:

1. Istio Mesh Dashboard

목적: 전체 메시 상태 개요

주요 패널:

  • Global Request Volume

  • Global Success Rate (non-5xx responses)

  • 4xx Response Codes

  • 5xx Response Codes

  • Average Response Time

  • P50/P90/P95/P99 Latency

접속:

2. Istio Service Dashboard

목적: 서비스별 메트릭 상세 분석

주요 패널:

  • Service Request Volume

  • Service Success Rate

  • Service Request Duration (Percentiles)

  • Incoming Request By Source

  • Outgoing Request By Destination

  • Service Workloads

변수:

  • $namespace: 네임스페이스 선택

  • $service: 서비스 선택

3. Istio Workload Dashboard

목적: 워크로드 (Deployment/StatefulSet) 메트릭

주요 패널:

  • Workload Request Volume

  • Workload Success Rate

  • Workload Request Duration

  • Incoming Requests by Source

  • Outgoing Requests by Destination

  • TCP Sent/Received Bytes

변수:

  • $namespace: 네임스페이스

  • $workload: 워크로드 이름

4. Istio Performance Dashboard

목적: Istio 컴포넌트 성능 모니터링

주요 패널:

  • Pilot Metrics

    • Proxy Push Time

    • Pilot XDS Pushes

    • Pilot XDS Errors

  • Envoy Proxy Metrics

    • Memory Usage

    • CPU Usage

    • Active Connections

5. Istio Control Plane Dashboard

목적: istiod 상태 모니터링

주요 패널:

  • Pilot Memory

  • Pilot CPU

  • Pilot Goroutines

  • Configuration Validation Errors

  • Push Queue Depth

  • XDS Push Time

Grafana Loki Dashboard for Istio (#14876)

Dashboard ID: 14876 URL: https://grafana.com/grafana/dashboards/14876

이 대시보드는 Grafana Loki를 사용하여 Istio Access Log를 분석합니다.

설치 방법

1. Grafana UI에서 Import:

2. JSON 파일로 Import (자동화):

주요 패널

1. Overview Panels:

  • Total Requests: 총 요청 수

  • Request Rate: 초당 요청 수 (RPS)

  • Error Rate: 5xx 에러율

  • P95 Latency: 95 백분위수 지연시간

2. Traffic Analysis:

  • Top Services by Request Volume: 요청량 상위 서비스

  • Request Rate by Service: 서비스별 요청 추이

  • Response Code Distribution: HTTP 상태 코드 분포

3. Performance Metrics:

  • Latency Heatmap: 응답 시간 분포 히트맵

  • P50/P95/P99 Latency: 백분위수별 지연시간

  • Slow Requests: 느린 요청 목록 (> 1s)

4. Error Analysis:

  • 4xx Errors: 클라이언트 오류 (잘못된 요청)

  • 5xx Errors: 서버 오류 (내부 에러)

  • Error Logs: 에러 로그 상세 내용

5. Security:

  • mTLS Usage: mTLS 사용률

  • Non-mTLS Traffic: mTLS 미사용 트래픽 경고

LogQL 쿼리 예제

이 대시보드에서 사용하는 LogQL 쿼리:

추가 커뮤니티 대시보드

Istio Workload Dashboard (#7636)

URL: https://grafana.com/grafana/dashboards/7636

워크로드 중심 메트릭:

  • Request Volume

  • Request Duration

  • Request Size

  • Response Size

  • TCP Connections

Import:

Istio Service Mesh Dashboard (#11829)

URL: https://grafana.com/grafana/dashboards/11829

전체 메시 개요:

  • Service Graph 데이터

  • Golden Signals (Latency, Traffic, Errors, Saturation)

  • Control Plane 상태

Istio Gateway Dashboard (#13277)

URL: https://grafana.com/grafana/dashboards/13277

Ingress/Egress Gateway 모니터링:

  • Gateway Request Volume

  • Gateway Latency

  • TLS Handshake Errors

  • Connection Metrics

Grafana Alerting

Alert Rules for Istio

Prometheus

프로덕션 배포

Prometheus Operator 사용

Prometheus Query 예제

Golden Signals

커스텀 대시보드 생성

Grafana Dashboard JSON 템플릿

대시보드 자동 배포

Grafana 설정:

대시보드 통합

Kiali → Grafana 링크

Kiali에서 Grafana 대시보드로 원클릭 이동:

사용 방법:

  1. Kiali에서 서비스 클릭

  2. "Metrics" 탭의 "View in Grafana" 링크 클릭

  3. 자동으로 Grafana 대시보드로 이동 (네임스페이스, 서비스 변수 자동 설정)

Grafana → Jaeger 링크

Grafana에서 로그/메트릭을 보다가 트레이스로 이동:

Loki → Tempo 통합

로그에서 트레이스로 점프:

모범 사례

1. 대시보드 조직

2. 변수 사용

모든 대시보드에 일관된 변수 사용:

3. Alert 관리

  • 계층별 알림: Critical (PagerDuty) → Warning (Slack) → Info (Email)

  • Alert Grouping: 서비스별, 네임스페이스별 그룹화

  • Silencing Rules: 유지보수 중 알림 음소거

4. 성능 최적화

쿼리 최적화:

  • Recording Rules 사용하여 자주 사용하는 쿼리 사전 계산

  • $__interval 변수로 동적 시간 범위 조정

  • rate() 대신 increase() 사용 (카운터가 리셋되지 않는 경우)

5. 접근 제어

6. 백업 및 복구

참고 자료

공식 문서

커뮤니티 대시보드

참고 자료

마지막 업데이트