13_check_journal_errors.yml - Kullanım Kılavuzu
Amaç
DevOps / SRE teşhisi için her node’da journalctl ile:
- Kernel hata logları (
errve üzeri) - Kernel uyarıları (
warning) - Sistem genel hata logları (tüm systemd unit’leri,
errve üzeri) - Bu boot içindeki kernel hataları
salt-okunur şekilde toplar ve raporlar. Sistemi değiştirmez.
10_check_system_health genel sağlık özetidir; bu playbook log seviyesinde “ne kırıldı / ne uyarıyor” arar.
Çoklu makine çıktısı
Her host raporunun ilk satırı makine kimliğidir:
################################################################################
# HOST: 192.168.1.21
# hostname: worker1
# aralık: 24 hours ago | satır limiti/bölüm: 80
################################################################################
HOST = inventory’deki adres/isim (inventory_hostname), hostname = makinenin kendi hostname’i. Birden fazla node’da çalıştırınca hangi bloğun hangi makineye ait olduğu buradan okunur. Ansible zaten ok: [host] yazar; uzun raporlarda kaybolmamak için mesajın içine de gömüldü.
Değişkenler
| Değişken | Varsayılan | Açıklama |
|---|---|---|
journal_since | 24 hours ago | journalctl --since değeri |
journal_lines | 80 | Her bölümde en fazla kaç satır |
ansible-playbook -i inventories/musteri_a/hosts.ini playbooks/13_check_journal_errors.yml \
--extra-vars 'journal_since="6 hours ago" journal_lines=120'
ansible-playbook -i inventories/musteri_a/hosts.ini playbooks/13_check_journal_errors.yml --limit workers
Gereksinimler
hosts: allbecome: true(sudo) — sistem journal’ını okumak için genelde root gerekir;ansible_become_passinventory’de olmalı.systemd-journaldçalışan bir Linux host (Ubuntu/Debian vb.)
Çalıştırma Komutu
ansible-playbook -i inventories/cagatayuresincom/hosts.ini playbooks/13_check_journal_errors.yml
Bölümler nasıl yorumlanır?
journalctl öncelik seviyeleri
| Seviye | Anlam |
|---|---|
| emerg / alert / crit | Acil / kritik |
| err | Hata — bakılmalı |
| warning | Uyarı — trend / erken sinyal |
| notice / info / debug | Bu playbook’ta filtrelenmez (gürültü) |
Kernel ERR+
Donanım, sürücü, bellek, dosya sistemi kernel tarafı. Örnek kırmızı bayraklar:
Out of memory/oom-killer→ bellek baskısıI/O error,Buffer I/O error,EXT4-fs error→ disknvme/atareset, timeout → depolama yoluBUG:,Oops,general protection fault→ kernel/sürücü ciddi arızaNETDEV WATCHDOG, NIC reset → ağ
Kernel WARNING
Henüz çökme değil; thrashing, deprecated API, retry, thermal throttle vb. Tek seferlik gürültü olabilir; tekrarlayan aynı uyarılar önemli.
Sistem ERR+ (tüm unit’ler)
sshd, kubelet, containerd, cron, auth, uygulama unit’leri. Kernel boş ama burası doluysa sorun userspace’tedir. Aynı unit’in tekrarlayan fail satırları → systemctl status <unit> / journalctl -u <unit>.
Bu boot kernel ERR+
--since’ten bağımsız; son reboot’tan beri. “Dün düzeldi ama bu açılıştan beri yine var mı?” sorusu için.
Boş bölümler -- Bu aralıkta / bu öncelikte kayıt yok -- yazar; bu genelde iyi haberdir.
Örnek Çıktı (kısaltılmış)
TASK [Journal hata / kernel log raporu] ***
ok: [192.168.1.21] => {
"msg": [
"################################################################################\n# HOST: 192.168.1.21\n# hostname: worker1\n# aralık: 24 hours ago | satır limiti/bölüm: 80\n################################################################################",
"=== Kernel ERR+ (24 hours ago) ===\nYorum: ...\n-- Bu aralıkta / bu öncelikte kayıt yok --",
"=== Sistem ERR+ tüm unit'ler (24 hours ago) ===\n...\n2026-07-29T10:01:02+00:00 worker1 kubelet[1234]: E0729 ... failed to ..."
]
}
Notlar
- Satır limiti aşılırsa en yeni kayıtlar gelir (
-n); daha geriye gitmek içinjournal_linesartır veyajournal_sincegenişlet. - Çok gürültülü ortamlarda önce
--limitile şüpheli node’u hedefle. - Salt-okunur: log silmez, journal’ı truncate etmez.