dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Runbooks Library/mongodb/#57
Runbook #57
mongodb
AvailabilitySEV2 · DEGRADATION15-30 dakika / 15-30 minsclusterAdmin / dbAdminAnyDatabase / root

MongoDB Assert Spike: Server Fault or Client Error?

Correlates rising regular, msg, warning, and user assert counters with logs and client errors to assess impact and respond safely.

Related Metrics:M60
Related Scripts:S81S85
#asserts#serverStatus#mongod-log#errors

Operational Safety & Risk Notice

This runbook contains operational intervention steps; several are write-impacting (KILL, terminate, DROP, RESIZE). Verify in a staging environment first, and apply sequentially in production with verification.

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

1. Symptom & Signals

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. Business & Technical 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. Diagnosis & Root-Cause Analysis

🟢 Read-Only1. 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.

🟢 Read-Only2. 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.
🟢 Read-Only3. 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.
🟢 Read-Only4. `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. Remediation & Action Plan

🟡 Reversible1. 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.
🟡 Reversible2. Disk/bellek/küme sağlığı bozuksa ilgili `mongo-disk-full`, `mongo-wiredtiger-cache-pressure` veya `mongo-election-instability` runbook'una geçin.
🔴 HIGH RISK / IRREVERSIBLE3. `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.
🔴 HIGH RISK / IRREVERSIBLE4. 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. Verification & Health Checks

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. Rollback & Contingency Plan

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.

More MONGODB Runbooks