DevOps Foundations · Modül 1: Linux çalışma modeli
Loglar ve Sistematik Teşhis
Loglar makinenin ne yaptığına dair beyanıdır. Bu ders okuma sırasını sabitler; her olay tesadüf değil neden ile biter.
10 dk okuma
Kazanımlar
- Belirtiden nedene, hiçbir şeyi değiştirmeden loglarla ilerlemek
- Zaman damgalarıyla iki kaynak arasında olanı ve nedeni ayırmak
- Başka mühendisin harekete geçebileceği olay kaydı yazmak
- İlk dört teşhis komutunun her birinin neyi elediğini açıklamak
Neden önemli
Aynı çağrı iki mühendise gider. Biri üç servisi yeniden başlatır, bir konfigürasyonu düzenler, önbellek temizler; sistem toparlanır; hangi eylemin işe yaradığını kimse bilmez, olay geri döner. Diğeri dört kaynağı sabit sırayla okur, tek nedeni bulur, bir kez düzeltir ve sonraki çağrıyı önleyecek on satırı yazar. Fark yetenek değildir; sıradır. Teşhis prosedürdür ve baskı altında prosedür hafızayı yener.
Kavramlar
Servisin kendi sesiyle başla, yeniden eskiye: systemd birimleri için journalctl -u svc-app --since "30 min ago", diğer her şey için uygulamanın log dosyası. Hatalar sonda kümelenir ama nedenler öncedir; gürültüden ileriye değil, ilk hatadan geriye oku. Çekirdeğin sesiyle ilişkilendir: dmesg -T OOM infazlarını, disk hatalarını ve ağ bağlantı olaylarını insan zamanlarıyla gösterir. Sonra 3. dersten iki sayıyı (df -h, df -i, free -h) ve 2. dersten iki olguyu ekle (süreç yaşıyor mu, kim olarak). Dört komut dört dünyayı eler: ölü süreç, izin reddi, kaynak tükenmesi, çekirdek seviyesi arıza. Hipotezi ancak sonra kur ve değiştirmeden önce en ucuz kontrolle test et.
Zaman damgaları birleştirme anahtarıdır. Proxy logundaki 11:42:13 tarihli 502, upstream logunun 11:42:13'te ne aldığıyla ve dağıtım kaydının 11:41'de neyi değiştirdiğiyle eşleşmeden hiçbir şey ifade etmez. Makineler arası saat kayması bu birleşimi sessizce geçersiz kılar; NTP eşleşmiş saatler incelik değil ön koşuldur. İki kaynak sırada anlaşmazsa hikâyeye değil önce saatlere, sonra teoriye yeniden bak.
Kaydı sonra değil yazarken tut: zamanlı belirti, sonuçlu her kontrol, hipotez, düzeltme, doğrulama. Şablon beş satırdır; disiplin formatten önemlidir. "Yeniden başlattım, şimdi çalışıyor" diyen kayıt, nedenin hâlâ üretimde olduğunun itirafıdır.
Uygulamalı örnek
API 11:42'den beri 500 dönüyor. Sıra:
$ journalctl -u svc-api --since "1 hour ago" --no-pager | grep -iE "error|fail|denied" | head -5 Oct 02 11:42:13 api[4182]: ERROR: open /srv/app/config.yaml: permission denied $ ls -l /srv/app/config.yaml -rw------- 1 root root 96 Oct 2 11:41 /srv/app/config.yaml $ journalctl --since "1 hour ago" --no-pager | grep -i deploy | head -3 Oct 02 11:41:02 deploy[9001]: installed config.yaml (owner root, mode 600)
Beklenen okuma: 11:42:13'te ilk hata (izin reddi, 1. ders kalıbı); dosya 11:41:02'deki dağıtımdan root sahipli ve 600 modlu, belirtiden bir dakika önce. Neden: dağıtım, servis tarafından okunabilir konfigürasyonun üzerine root sahipli yazmış. Düzeltme: 1. derse göre grup okunabilir sahipliği geri yükle; servis kullanıcısı gibi okuma ve tek başarılı istekle doğrula; beş satırın tamamını kaydet. Hiçbir şey yeniden başlatılmadı, hiçbir şey silinmedi; takip işi servise değil dağıtım işine yazılır.
Yaygın yanlış hamle
Neyin işe yaradığını görmek için değiştirmek: belirti kıpırdayana kadar yeniden başlatmak, yeniden dağıtmak, önbellek temizlemek. Her değişiklik olay yerini biraz daha bozar; belirti durursa iki değişiklik övgüyü paylaşır, neden bilinmez kalır. Kural önce salt okunurdur: loglar, süreç durumu, kaynak sayıları ve dağıtım geçmişi okuması bedavadır. Sisteme ilk yazma, adlandırılmış nedene uygulanan düzeltme olmalı; ardından adlandırılmış doğrulama gelir.
Lab ve sonraki adım
L01-L03 lablarının her biri teslim olarak bu kaydı ister: belirti, kontroller, neden, düzeltme, doğrulama; komut seçimleri açıklanmış. Buradan yol M02'ye devam eder; aynı yöntem ağla buluşur: neden bu makinede değilse ihtiyacın olan loglar başka yerdedir ve kontrol sırası DNS, port ve TLS üzerinden geçer.
Mini kontrol
4 soruluk isteğe bağlı öz kontrol. Yanıtlar cihazından çıkmaz, saklanmaz ve hiçbir değerlendirmeye sayılmaz.
Ders geri bildirimi
Henüz yayında geri bildirim yok.
Geri bildirim yazmak için giriş yap ve dersi tamamla.
Kaynaklar
Alıştırma
Çözdüğün yakın bir arızayı al (yoksa uydurma: durdurulmuş yerel bir servis kullan). Beş satırlık kaydı yaz: zamanlı belirti, sonuçlu her kontrol, hipotez, düzeltme, doğrulama. Sonra gerçekte atladığın kontrolü işaretle ve neyi eleyebileceğini yaz.
Geçme kriterleri
Kayıtta gerçek zaman damgalı beş satırın tamamı var; sonuçlarıyla en az üç kontrol adlandırılmış; atlanan kontrol dürüstçe belirtilmiş ve neyi eleyeceği yazılmış.