π λͺ¨λν°λ§ κ°μ λ ΈνΈ μΈλ±μ€
μμ λ΄μ© κΈ°λ° μ²΄κ³μ μ 리
2025λ 12μ 9μΌ μμ λ΄μ©μ λ°νμΌλ‘ Exporter κ°λ λΆν° Istio ν΅ν©κΉμ§ μ 리ν μ€λ¬΄ λͺ¨λν°λ§ κ°μ΄λ
π― μλ¦¬μ¦ κ°μ
π‘ νμ΅ λͺ©ν
ν΅μ¬ μ΄ν΄:
- Exporterκ° μ νμνμ§ μμ μ΄ν΄
- κ΄μΈ‘μ± 3λ μΆ (Metrics/Logs/Traces) νμ
- λΈλλ°μ€ λͺ¨λν°λ§μ νμμ±
- Istio νκ²½μμμ λͺ¨λν°λ§ ν΅ν©
μ€λ¬΄ μ μ©:
- νΈλ μ΄λμ€ν κ΄μ μμ λꡬ μ ν
- 4 Golden Signals κΈ°λ° λͺ¨λν°λ§
- μ¬λ°λ₯Έ μ€μΉ μμ μ΄ν΄
- λ¬Έμ ν΄κ²° λ₯λ ₯ λ°°μπ νμ΅ νλ¦
κ°λ
β νλ¨ β λꡬ β ν΅ν© β μ€λ¬΄
β β β β β
01-02 06-07 04-05 08-09 μ€μ
π μλ¦¬μ¦ κ΅¬μ±
π 01νΈ: Exporter κ°λ
νμΌ: 01-Exporter-κ°λ
ν΅μ¬ μ§λ¬Έ
βRedisλ MySQL λͺ¨λν°λ§ν λ μ Exporterλ₯Ό κΌ λ°°ν¬νλμ?β
ν΅μ¬ λ΄μ©:
- Prometheusμ μΈμ΄ μ₯λ²½
- Exporter = ν΅μμ¬
- 3λ¨κ³ λμ λ°©μ (μμ§βλ²μβμ 곡)
- μ YAMLλ‘ λ°λ‘ λ°°ν¬νλ
μ£Όμ ν¬μΈνΈ:
- Prometheus νμ: redis_up 1
- κΈ°μ‘΄ μ± νμ: INFO λͺ
λ Ήμ΄ β ν
μ€νΈ λ©μ΄λ¦¬
- Exporter: μμͺ½ μΈμ΄λ₯Ό λͺ¨λ μλ ν΅μμ¬
- /metrics μλν¬μΈνΈ μ 곡π― 02νΈ: Exporter μ¬μ© μλ리μ€
νμΌ: 02-Exporter-μ¬μ©-μλ리μ€
νλ¨ κΈ°μ€
βκ·Έ μννΈμ¨μ΄κ° νμ΄λ μλβλ₯Ό 보λΌ
ν΅μ¬ λ΄μ©:
- νμν κ²½μ°: λ κ±°μ μ± (MySQL, Redis)
- λΆνμν κ²½μ°: ν΄λΌμ°λ λ€μ΄ν°λΈ μ± (K8s, Istio)
- νλ¨ μ²΄ν¬λ¦¬μ€νΈ
- μ€λ¬΄ μ¬λ‘
λΉκ΅ν:
| μ ν리μΌμ΄μ | Exporter νμ | μ΄μ |
|---|---|---|
| MySQL, Redis | β | Prometheus νμ λ―Έμ§μ |
| Kubernetes | β | /metrics λ΄μ₯ |
| Nginx | β | μν νμ΄μ§λ λ€λ₯Έ νμ |
| μ§μ κ°λ°ν μ± | β | λΌμ΄λΈλ¬λ¦¬λ‘ μ§μ ꡬν |
π 03νΈ: κ΄μΈ‘μ± 3λ μΆ
νμΌ: 03-κ΄μΈ‘μ±-3λ-μΆ
μ€λ¬΄ μλ리μ€
βνλμ λꡬλ‘λ λΆμ‘±νλ€! μΈ κ°μ§ κ΄μ μ΄ νμνλ€β
ν΅μ¬ λ΄μ©:
- Metrics: μ«μ λ°μ΄ν° (Prometheus)
- Logs: ν μ€νΈ λ°μ΄ν° (ELK, Loki)
- Traces: μμ² νλ¦ (Jaeger)
- μ₯μ λμ 3λ¨κ³
μ₯μ λμ μλ리μ€:
1λ¨κ³ Metrics: "μ΄λκ°" λ¬Έμ μΈμ§ νμ
β MySQL μλ΅μκ° κΈμ¦
2λ¨κ³ Logs: "무μ¨" μλ¬μΈμ§ νμΈ
β "Lock wait timeout exceeded"
3λ¨κ³ Traces: "μ΄λ λΆλΆμ΄" λλ¦°μ§ μλ³
β /api/orderμμ κΈ΄ νΈλμμ
π― 07νΈ: 4 Golden Signals
νμΌ: 07-4-Golden-Signals
Google SRE κΆμ₯
무μμ λͺ¨λν°λ§ν μ§ λͺ¨λ₯΄κ² λ€λ©΄? β μ΄ 4κ°μ§λΆν°!
ν΅μ¬ λ΄μ©:
- Latency: μΌλ§λ λΉ λ₯΄κ²?
- Traffic: μΌλ§λ λ§μ΄?
- Errors: μΌλ§λ μ€ν¨?
- Saturation: μΌλ§λ μ°Όλ?
MySQL μ μ© μμ:
# 1. Latency
mysql_global_status_slow_queries
# 2. Traffic
mysql_global_status_queries
# 3. Errors
mysql_global_status_connection_errors_total
# 4. Saturation
mysql_global_status_threads_connected /
mysql_global_variables_max_connectionsπ§ 04νΈ: Prometheus Blackbox Exporter
νμΌ: 04-Prometheus-Blackbox-Exporter
ν΅μ¬ μ² ν
βμλ²κ° μ΄μμλ€β β βμ¬μ©μκ° μΈ μ μλ€β
ν΅μ¬ λ΄μ©:
- νμ΄νΈλ°μ€ vs λΈλλ°μ€
- μ prefixκ°
probe_μΈκ° - ConfigMapμ΄ νμν μ΄μ
- μ μ©ν κ²½μ° vs λΆνμν κ²½μ°
νΈλ μ΄λμ€ν:
| νλͺ© | μ₯μ β | λ¨μ β |
|---|---|---|
| κ΄μ | μ¬μ©μ κ²½ν κ·Έλλ‘ | μμΈ νμ μ΄λ €μ |
| μ€μ | κ°λ¨ (URLλ§) | 볡μ‘ν μλλ¦¬μ€ μ ν |
| λ²μ | μΈλΆ μλΉμ€ κ°λ₯ | κΉμ λΆμ λΆκ° |
πΌ 06νΈ: λͺ¨λν°λ§ νΈλ μ΄λμ€ν
νμΌ: 06-λͺ¨λν°λ§-νΈλ μ΄λμ€ν
μ€λ¬΄ ν΅μ¬ μμΉ
βλ ν μ μλβλ³΄λ€ βμΈμ , μ ν΄μΌ νλβ
ν΅μ¬ λ΄μ©:
- κΈ°μ μ ν μ§λ¬Έ 리μ€νΈ
- λΉμ© κ³μ° (μκ°, 리μμ€, κΈ°ν)
- λ¨κ³λ³ μ κ·Ό (Phase 1-4)
- μλ νΌλ‘ κ΄λ¦¬
μμ¬κ²°μ νλ μμν¬:
μ§λ¬Έ 리μ€νΈ:
β‘ ν κ·λͺ¨λ? (2λͺ
vs 20λͺ
)
β‘ μμ°μ? (λ vs μκ°)
β‘ μΈνλΌλ? (ν΄λΌμ°λ vs μ¨νλ λ―Έμ€)
β‘ κΈ΄κΈλλ? (μ₯μ κ°μ§ vs μ΅μ ν)
β‘ κΈ°μ‘΄ μ€νμ?ποΈ 08νΈ: Istio λͺ¨λν°λ§ ν΅ν©
νμΌ: 08-Istio-λͺ¨λν°λ§-ν΅ν©
볡μ‘λ νλ°
Istioλ₯Ό μΆκ°νλ©΄ κΈ°μ‘΄ λͺ¨λν°λ§μ΄ νλ°ν©λλ€!
ν΅μ¬ λ΄μ©:
- 3κ°μ§ μ£Όμ λ¬Έμ
- μΈλΆ νκ² μ κ·Ό λΆκ°
- Prometheus λ©νΈλ¦ μμ§ λΆκ°
- Health Check μ€ν¨λ‘ Pod μ¬μμ
- ServiceEntry, PeerAuthentication
- μ€λ¬΄ κΆμ₯ ν¨ν΄
ν΄κ²° μμ½:
| λ¬Έμ | μμΈ | ν΄κ²° |
|---|---|---|
| μΈλΆ μ κ·Ό μ λ¨ | Istio μΈλΆ μ°¨λ¨ | ServiceEntry λλ λ€μμ€νμ΄μ€ Istio μ μΈ |
| λ©νΈλ¦ μμ§ μ λ¨ | mTLS μΈμ¦ μ€ν¨ | λ€μμ€νμ΄μ€ Istio μ μΈ (κΆμ₯) |
| Pod μ¬μμ λ°λ³΅ | Health check μ€ν¨ | Probe μ€μ μμ λλ Istio μ μΈ |
π 09νΈ: λͺ¨λν°λ§ μ€ν μ€μΉ μμ
νμΌ: 09-λͺ¨λν°λ§-μ€ν-μ€μΉ-μμ
ν΅μ¬ μμΉ
μΈμ°μ§ λ§κ³ βλ μ΄μ΄βλ‘ μ΄ν΄νλΌ
ν΅μ¬ λ΄μ©:
- λ μ΄μ΄ ꡬ쑰 (K8s β Istio β Prometheus β Kiali)
- μ μ΄ μμμΈκ°?
- λ°μ΄ν° νλ¦ μ΄ν΄
- ConfigMap μμ μ΄ νμν μ΄μ
μ€μΉ μμΉ:
μλμμ μλ‘:
Layer 1: Kubernetes (κΈ°λ°)
Layer 2: Istio (λ©νΈλ¦ μμ±)
Layer 3: Prometheus (λ©νΈλ¦ μμ§)
Layer 4: Kiali (μκ°ν)
μμΉ:
λ°μ΄ν° μμ± β μμ§ β μ μ₯ β μκ°νπ― νμ΅ μμ μΆμ²
μ΄κΈ (1μ£Όμ°¨)
κΈ°λ³Έ μ΄ν΄:
- [ ] [[01-Exporter-κ°λ
]] - Exporterκ° λμ§?
- [ ] [[02-Exporter-μ¬μ©-μλ리μ€]] - μΈμ νμν΄?
- [ ] [[03-κ΄μΈ‘μ±-3λ-μΆ]] - μ 체 κ·Έλ¦Ό μ΄ν΄μ€κΈ (2-3μ£Όμ°¨)
μ€λ¬΄ μ μ©:
- [ ] [[07-4-Golden-Signals]] - 무μμ μΈ‘μ ?
- [ ] [[04-Prometheus-Blackbox-Exporter]] - μΈλΆ λͺ¨λν°λ§
- [ ] [[06-λͺ¨λν°λ§-νΈλ μ΄λμ€ν]] - μΈμ λμ
?κ³ κΈ (4μ£Όμ°¨+)
볡μ‘ν νκ²½:
- [ ] [[08-Istio-λͺ¨λν°λ§-ν΅ν©]] - Istio λ¬Έμ ν΄κ²°
- [ ] [[09-λͺ¨λν°λ§-μ€ν-μ€μΉ-μμ]] - μν€ν
μ² μ΄ν΄π μ°κ΄ λ¬Έμ
π νλ‘λ©ν μ°μ€ μλ¦¬μ¦ μ°κ΄μ±
κΈ°λ° μ§μ:
- [[../00_νλ‘λ©ν
μ°μ€_μ리μ¦_λͺ©μ°¨]] - μ 체 λͺ©μ°¨
- [[../01_νλ‘λ©ν
μ°μ€_κΈ°μ΄_κ°λ
_μλ²½_μ 리]] - κΈ°μ΄ κ°λ
- [[../02_λͺ¨λν°λ§_νμ΄νλΌμΈ_μλ²½_μ΄ν΄]] - νμ΄νλΌμΈ ꡬ쑰
PromQL νμ΅:
- [[../07_PromQL_λ©νΈλ¦_νμ
_μλ²½_κ°μ΄λ]] - λ©νΈλ¦ νμ
- [[../08_PromQL_λ μ΄λΈ_λ§€μ²_μλ²½_κ°μ΄λ]] - λ μ΄λΈ λ§€μΉ
- [[../09_PromQL_ν΅μ¬_κ°λ
_μ 리]] - PromQL 쿼리π μμ±μΌ: 2025λ 12μ 9μΌ π μ΄ νμ΅ μκ°: μ½ 3-4μκ° (μ§μ€ νμ΅ κΈ°μ€) π― μλ£ ν μμ€: Exporter κ°λ λΆν° Istio ν΅ν©κΉμ§ μ€λ¬΄ μ μ© κ°λ₯