dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Runbook #57
mongodb
AvailabilitySEV2 · CİDDİ BOZULMA15-30 dakika / 15-30 minsclusterAdmin / dbAdminAnyDatabase / root

MongoDB Assert Sayıları Artıyor: Sunucu Hatası mı İstemci Hatası mı?

Artan regular, msg, warning ve user assert sayaçlarını log ve uygulama hatalarıyla ilişkilendirip üretim etkisini ve güvenli müdahale adımlarını belirler.

İlişkili Metrik:M60
İlişkili Script:S81S85
#asserts#serverStatus#mongod-log#errors

Operasyonel Güvenlik ve Risk Uyarısı

Bu runbook müdahale adımları içerir; birçok adım yazma etkilidir (KILL, terminate, DROP, RESIZE). Önce test ortamında deneyin, üretimde adımları sırayla ve doğrulayarak uygulayın.

🟢 Salt Okunur (Read-Only)·🟡 Geri Alınabilir (Reversible)·🔴 Yüksek Etkili / Geri Alınamaz (High Impact)

1. Belirti / Symptom

M60 regular/msg assert sayacında artış; logda tekrarlayan hata satırları veya uygulamada artan sorgu başarısızlıkları. `user` assert her zaman sunucu bozulması değildir, geçersiz uygulama komutu da olabilir.

2. Etki / Impact

Etkilenen işlemler başarısız olabilir; sürekli regular/msg artışı altında servisin sağlığı belirsizdir. Tek seferlik geçmiş sayaç değeri aktif olay kanıtı değildir.

3. Teşhis / Diagnosis

🟢 Salt Okunur1. Kümülatif sayaçların zaman içindeki **farkını** alın:
javascript
const s = db.serverStatus();
({ host: s.host, version: s.version, uptime: s.uptime, asserts: s.asserts });

Restart sonrası sıfırlanmayı hesaba katın; üye bazında değerlendirin.

🟢 Salt Okunur2. Aynı zaman aralığındaki `mongod` loglarını inceleyin. 4.4'ten itibaren yapılandırılmış JSON log biçimi yaygındır; 5.0/6.0/7.0 için hata kodu/mesajını logdan kontrol edin, sadece metne göre eşleme yapmayın.
🟢 Salt Okunur3. Sorunlu namespace ve sorgu kalıbını APM, slow logs veya profiler açık ise S85 ile eşleştirin; aktif uzun işlemler için S81'i kullanın. Profiler yoksa açmak ek yük yaratır, sırf assert için ilk müdahale olarak açmayın.
🟢 Salt Okunur4. `user` baskınsa istemci doğrulama/şema/izin hatalarına, `regular`/`msg` artışı loglarda internal veya kaynak sorununa, `warning` artışı bağlamına bakın. Sayaç tipi tanı değil, **sınıflandırma ipucudur**.

4. Müdahale / Response

🟡 Geri Alınabilir1. Kök hata belirli bir uygulama sürümüne bağlıysa onu geri alın; geçici olarak hata üreten batch'i durdurun. Hata kodu ve sunucu sürümüyle destek kaydı açın; hassas veri içeren logları paylaşmadan önce redakte edin.
🟡 Geri Alınabilir2. Disk/bellek/küme sağlığı bozuksa ilgili `mongo-disk-full`, `mongo-wiredtiger-cache-pressure` veya `mongo-election-instability` runbook'una geçin.
🔴 YÜKSEK RİSK / GERİ ALINAMAZ3. `mongod`'u yalnızca sayaçları sıfırlamak için yeniden başlatmayın; sorunu gizler. `--repair` çalıştırmayın, dbPath dosyası silmeyin; veri kaybı riski vardır.
🔴 YÜKSEK RİSK / GERİ ALINAMAZ4. Sürücü hatasını maskelemek için tüm assert sınıflarına genel retry eklemeyin; sadece geçici hata etiketlerinde kontrollü retry kullanın.

5. Doğrulama / Verification

M60 regular/msg **rate** baz çizgiye indi, logda aynı hata tekrarlanmıyor; uygulama hata oranı düştü, oplog/replika ve disk durumu sağlıklı.

6. Geri Alma / Rollback

Uygulama/batch değişikliğini önceki sürüme dönün. Önceden başarısız işlemler otomatik başarıya dönüşmez; idempotent yeniden işleme veya veri uzlaştırması gerekir.

Diğer MONGODB Runbook'ları