📝 Blok B Sınavı — Görebilmek#
"B → C geçiş sinyali: bir arızayı log ve metrikle kanıtladın mı, tahmin etmedin mi?"
Kapı: Blok B sonu (B3'ten sonra, C0/C1'den önce) · Ön koşul: B1–B3 kabul kriterleri geçilmiş
ℹ️ Tüm
bash labs/...komutlarını22-Learning-Path/kökünden çalıştır.
Bu sınavın tek ölçütü şudur: her iddianın arkasında bir çıktı var mı? "Sanırım DB yavaş" cevap değildir; "şu metrik şu eşiği şu dakikada aştı, şu log satırı bunu doğruluyor" cevaptır. Her soru bir modülün kabul kriterine izlenebilir.
🔒 Bu, patikanın en katı kapısıdır. Göremediğin sistemi yönetemezsin. B3'ün kırık lab'ını kanıtla çözmeden C bloğuna (container, K8s) geçme.
1️⃣ Kavram soruları (yazılı)#
| # | Soru | İzlenebilirlik (modül → kabul kriteri) |
|---|---|---|
| 1 | journalctl ile bir servisin son hatalarını nasıl süzersin? (-u, --since, -p err) Çıktının hangi alanı olayı tekilleştirir? | B1 → journalctl … -p err kriteri |
| 2 | Düz-metin log yerine structured (JSON) log niçin sorgulanabilir? Hangi alanlar sorguya girer? | B1 → structured log kriteri |
| 3 | Bir log satırına asla yazılmaması gereken iki alan söyle (bir sır + bir PII) ve niçin. | B1 → "ne loglanmaz" kriteri |
| 4 | Counter ile gauge farkı ne? Hangisini rate() ile okursun, niçin? | B2 → counter/gauge kriteri |
| 5 | Yüksek-cardinality'ye yol açan bir etiket örneği ver; niçin seri patlaması → OOM'a götürür? | B2 → cardinality kriteri |
| 6 | Bir arızayı "kanıtlamak" ile "tahmin etmek" arasındaki farkı bir örnekle yaz. | B3 → A→B/B→C sinyal kriteri |
Geçme: 6 sorunun en az 5'i doğru + gerekçeli. 3. soru (ne loglanmaz) zorunlu doğru — sır/PII sızıntısı güvenlik ipliğinin ilk halkasıdır.
2️⃣ Uygulamalı görev — "kanıtla, tahmin etme"#
Görev A — Kırık VM'yi teşhis et (çekirdek): K01 — kırık VM lab'ını çöz.
-
bash labs/broken/K01-kirik-vm/verify.shsıfır hatayla geçiyor - Kök sebebi log/metrik kanıtıyla gösteren bir
teshis.mdyazdın: belirti → daraltma → kök sebep → düzeltme → doğrulama - Düzeltmeden sonra belirtinin gittiğini ayrı bir komutla kanıtladın (sadece "düzelttim" değil)
Görev B — Metrikle bir sağlık göstergesi: B2/L08 kurulumunu kullan.
- Prometheus Targets ekranında hedef
UP;upsorgusu1döndürüyor - Bir sağlık göstergesi için bir
rate(...[5m])sorgusu yazdın ve çıktısını gösterdin
Görev C — Üç komut, doküman yok: Görev A'da kök sebebe inerken kullandığın üç komutu ve niçin o sırayla geldiğini yaz. Bu, A→B sinyalinin B'de tekrar sınanmasıdır: daraltma refleksi kalıcı mı?
🚫 Bu sınavı kendine karşı kaybetme#
| Anti-pattern | Niye kötü | Doğru |
|---|---|---|
| "Sanırım/muhtemelen …" ile kök sebep | Tahmin; B bloğunun reddettiği tam şey | Metrik/log çıktısı ile göster |
Düzeltip verify.sh'i geçip durmak | Belirtinin gittiğini kanıtlamadın | Ayrı bir komutla belirtinin yok olduğunu göster |
| Sır/PII'yi log'a yazıp "debug" demek | En sık gerçek incident sebebi | Maskele/çıkar; niçinini yaz |
| Her şeye etiket eklemek | Cardinality patlaması → Prometheus OOM | Sabit, sınırlı değer kümesi olan etiket kullan |
teshis.md'yi atlayıp aklında tutmak | İzlenemez; postmortem (E3) kası hiç çalışmaz | Zaman damgalı yazılı teşhis bırak |
✅ Geçtin mi?#
- Kavram: 6/6'nın en az 5'i doğru + 3. soru zorunlu doğru
- Uygulama: K01
verify.shyeşil + kanıtlıteshis.md+up=1& birrate()sorgusu - Daraltma: kök sebebe üç komutla, kanıtla (tahminle değil) indin
Geçemediysen: log'da takıldıysan B1'e, metrik/PromQL'de takıldıysan B2'ye, teşhis akışında takıldıysan B3'e dön.
⏭️ Sırada#
Geçtiysen: C0 — Ops için Python veya C1 — Container.
"Bir arızayı tahmin edebilirsin ama kanıtlayamıyorsan, onu tekrarlanabilir hâle getirmeye (Blok C) hazır değilsin — neyi tekrarladığını bilmiyorsun."