Bekçi öldüğünde: sessizlik neden iyi haber değildir

Haftalardır uyarı maili gelmiyor. İki açıklama var ve dışarıdan bakınca ikisi tıpatıp aynı görünüyor: ya her şey yolunda ya da bekçi öldü.

AtlasPVE ·

Bu madde şunları karşılıyor

  • proxmox uyarı maili gelmiyor
  • proxmox mail bildirimi çalışmıyor
  • proxmox izleme çalışıyor mu nasıl anlarım
  • proxmox smtp ayarı test etme
  • proxmox sunucu kapandı haberim olmadı

Uyarıları kurdunuz. Aradan haftalar geçti, tek bir mail gelmedi.

İki açıklama var. Ya gerçekten hiçbir şey olmadı, ya da uyarı sistemi çalışmayı bıraktı ve siz bunu bilmiyorsunuz. Dışarıdan bakınca ikisi tıpatıp aynı görünüyor.

Ve insan zihni sessizliği iyi haber sayma eğilimindedir. Tam da bu yüzden bu arıza türü aylarca fark edilmeden yaşar.

Bu, bir kontrolün susmasından farklı bir sorun

Bu wiki'de daha önce şunu yazmıştık: bir kontrol veriyi okuyamadığında susmamalı, okuyamadığını söylemeli.

Burada anlattığımız bir kademe daha yukarısı. Orada çalışan bir bekçinin içindeki bir kontrol susuyordu. Burada bekçinin kendisi yok. Konuşacak kimse kalmamıştır, dolayısıyla "okuyamadım" diyecek biri de yoktur.

Bekçi sessizce nasıl ölür

Servis durur. Bir güncelleme, bir çökme, bellek yetmemesi. Size haber verecek olan şey, duran şeydir.

Posta yolu kopar. Parola değişir, sağlayıcı engeller, adres geri döner. Bekçi çalışmaya devam eder, mesajları yazar, hiçbiri size ulaşmaz. Bu en aldatıcısıdır çünkü sunucu tarafında her şey sağlıklı görünür.

Biri kapatır ve unutur. Bir sorunu araştırırken bildirimler geçici olarak kapatılır. Sorun çözülür. Bildirimler kapalı kalır.

Makine kapanır. En uç hal: bozulan bir şey yok, sadece her şey sessiz.

Dördünün ortak özelliği şu: hiçbiri bir mesaj üretmez. Ve bir arızayı fark etme yönteminiz mesaj almaksa, mesaj üretmeyen arızaları hiç göremezsiniz.

Çözümün şekli farklı: alarm değil, kalp atışı

Yönü ters çevirmek gerekiyor.

Alarm şudur: bir sorun olduğunda konuş. Kalp atışı şudur: bir şey olmasa da düzenli aralıklarla "yaşıyorum" de. Sonra o söylemenin durduğunu fark edecek biri olsun.

Fark önemli. Alarm bir sorun hakkında mesajdır; kalp atışı habercinin kendisi hakkında mesajdır. İkisi farklı soruları cevaplar ve biri diğerinin yerini tutmaz.

Kalp atışı olduğunda sessizliğin anlamı değişir. Artık sessizlik bilgi taşır: bir şey söylemesi gereken bir şey, söylemiyordur.

Fark edecek olan, izlenen makinenin dışında olmalı

Bu, üzerinde durulması gereken kısım. Bir makine kendi ölümünü haber veremez.

Kalp atışını değerlendiren yer izlenen sunucunun dışında olmalı: başka bir makine, bir telefon, bir dış nokta. Sunucunun içinde çalışan bir kontrol, sunucu kapandığında onunla birlikte kapanır ve kimseye bir şey söylemez.

Buna en basit ev yapımı çözüm bile yeter: sunucu her saat bir yere işaret bıraksın, siz de o işaretin yaşına bakın. Karmaşık bir kurulum gerekmiyor, gereken tek şey değerlendirmenin başka yerde olması.

Kalp atışının kendi tuzağı

Burada ince bir tasarım hatası var ve çoğu kurulum ona düşer: kalp atışını, kullanıcının kapatabildiği bir ayarın programına bağlamak.

Diyelim ki günlük özet maili ile aynı zamanlamayı paylaşıyor. Kullanıcı özet mailini kapatıyor, çünkü fazla bulmuş. Kalp atışı da kesiliyor. Dışarıdaki taraf sinyalin durduğunu görüyor ve hiçbir şey olmadığı hâlde "sunucunuzdan haber yok" alarmı çalıyor.

Sonucu tahmin edin: kullanıcı bir kez boşuna korkuyor, ikinci seferde alarmı kapatıyor. Kendi güvenlik mekanizmanızın ürettiği yanlış alarm, o mekanizmaya olan güveni hiç mekanizma olmamasından daha hızlı bitirir.

Kural: kalp atışının kendi programı olmalı, kapatılabilir hiçbir şeye binmemeli.

Aynı şekil, başka bir yerde

Bu wiki'de yedek görevi maddesinde şunu yazmıştık: göreve durumuna değil, en yeni yedeğin yaşına bakın.

Aynı şekil burada karşımıza çıkıyor: uyarı sistemine "çalışıyor mu" diye sormayın, son sinyalin yaşına bakın. Durum bir iddiadır, yaş bir ölçümdür.

Ve son olarak, kurulum günü yapılacak tek şey: bilerek bir arıza üretin ve mailin geldiğini görün. Denenmemiş bir alarm bir mekanizma değil, bir umuttur.

Atlas ne yapıyor

Atlas Watch günlük bir özet gönderiyor, kritik durumlarda özeti beklemeden anında haber veriyor, ve bunların yanında saat başı bir "yaşıyorum" sinyali üretiyor.

Anlatmaya değer olan, o sinyalin nereye bağlanmadığı.

Sinyal ne günlük özetin programına biniyor ne de alarmın programına. İkisinin de kendi ayarı var ve kullanıcı ikisini de kapatabiliyor. Sinyal onlara bağlı olsaydı, kullanıcı özeti kapattığı anda sinyal de kesilirdi ve karşı taraf hiçbir şey olmadığı hâlde "bu sunucudan haber yok" derdi. Bu yüzden sinyalin kendi programı var.

İkinci ayrıntı da aynı düşüncenin devamı: bildirim ayarı kapalıyken sinyalin zamanlama dosyası hiç yazılmıyor. Yani "açık ama çalışmıyor" diye bir ara hâl bırakılmıyor; ya sinyal vardır ya yoktur.

Bildirim yolunun kendisi sizindir: kendi posta sunucunuzu tanımlarsınız, mail sizin sunucunuzdan çıkar. Dışarıdaki bir noktaya sinyal göndermek isteğe bağlı bir eklentidir, ürünün çalışması ona bağlı değildir.

Buradan çıkan genel ders şu: bir güvenlik mekanizması, koruduğu şeyin kapatılabilir parçalarına yaslanmamalıdır. Yaslanırsa, koruduğu şeyle birlikte sessizce ölür.

Kaynaklar

Proxmox'un kendi belgeleri. İngilizce, ve bu konuda son sözü onlar söyler.

İlgili maddeler

Bu iş Atlas’ta nasıl görünüyor?

Ürün sayfasına git