PagerDuty veya Operasyon Departmanı Geceleri Neden Uyuyamıyor?

Sistem ne kadar karmaşık olursa, her türlü uyarıyla o kadar fazla büyümüş olur. Ve aynı uyarılara tepki verme, onları birleştirme ve görselleştirme ihtiyacı var. Sanırım bu pek çok kişinin tedirginlik noktasına kadar aşina olduğu bir durum.

Tartışılacak çözüm en beklenmedik çözüm değil, ancak arama bu konuyla ilgili tam teşekküllü bir makale getirmiyor.

Bu nedenle FunCorp deneyimini paylaşıp görev sürecinin nasıl yapılandırıldığını, kimin aradığını, neden ve nasıl bakabileceğinizi konuşmaya karar verdim.

PagerDuty veya Operasyon Departmanı Geceleri Neden Uyuyamıyor?

PagerDuty nedir?

Tüm bu sorunları çözmek için uygun bir araç aramaya başladık. Biraz araştırdıktan sonra PagerDuty'yi seçtik. PD bize çok sayıda entegrasyon ve ayarla oldukça eksiksiz ve özlü bir çözüm gibi göründü. Neye benziyor?

Kısaca PagerDuty, gelen olayları çeşitli entegrasyonlar aracılığıyla işleyebilen, görev emirleri oluşturabilen ve ardından olayın düzeyine göre (yüksek düzeyde - çağrı, düşük düzeyde -) görevdeki mühendisi uyarabilen bir olay işleme platformudur. uygulamadan / SMS'den bir push) .

Nöbetçi kimdir?

Burası muhtemelen PD kurulumuna başlanacak ilk yerdir.

FunCorp'ta diğer şirketler gibi fahri görevli memur pozisyonu bulunmaktadır. Mühendisten mühendise günde bir kez aktarılır. PagerDuty'den gelen bir uyarıya birinci ve ikinci yanıt hattı denir. Yüksek öncelikli bir uyarının geldiğini ve ilk hattan görevliye çağrıldıktan 10 dakika sonra buna herhangi bir tepki gelmezse (yani onaylandı veya çözümlendi durumuna aktarılmazsa), çağrı ikinci hatta gider. görev mühendisi. Bu, PagerDuty'nin kendisinde Yükseltme İlkeleri aracılığıyla yapılandırılır.

PagerDuty veya Operasyon Departmanı Geceleri Neden Uyuyamıyor?

İkinci nöbetçinin cevap vermemesi halinde bildirim tekrar yerine döner. ana görevli memura.

Bu nedenle, gelen herhangi bir yüksek öncelikli uyarı işlenmeden kalamaz. 

Şimdi olayların nereden gelebileceğini görelim.

Hangi entegrasyonları kullanıyoruz?

PD, çeşitli hizmetlerden birçok farklı olayla karşılaşır. Şu anda bu tür yaklaşık 25 hizmetimiz var ve bunları işlemek için bazı hazır entegrasyonlar kullanıyoruz.

  • Prometheus

Ana metrik toplama sistemi Prometheus'tur. Habré'de bunun hakkında zaten çok şey yazıldı, sadece farklı ortamlar için bunlardan birkaçına sahip olduğumuzu söyleyeceğim: biri sanal makinelerden ve liman işçilerinden, diğeri Amazon hizmetlerinden, üçüncüsü ise donanım makinelerinden metrikler topluyor. Telegraf esas olarak bir metrik ihracatçısı olarak kullanılıyor.

  • e-posta

Burada da başlıktan her şeyin açık olduğunu düşünüyorum. Bu entegrasyon, cron tarafından yürütülen bazı komut dosyalarından bildirim göndermek için kullanılır. PD size mektup göndereceğiniz belirli bir adres verir. Böyle bir entegrasyonla hizmet oluştururken öncelikleri, gelen olayların hangi sırayla işleneceğini, uyarının tam olarak nasıl oluşturulacağını (her gelen mektup için, gelen bir mektup için + belirli bir kural vb.) belirleyebilirsiniz.

PagerDuty veya Operasyon Departmanı Geceleri Neden Uyuyamıyor?

  • Gevşeklik

Bana göre çok ilginç bir entegrasyon. Bir şeyin olduğu ama olayların kapsamına girmeyen zamanlar vardır. Bu nedenle olay yaratmak için Slack'ten entegrasyon ekledik. Yani kurumsal Slack'e yazabilirsiniz /callofduty her şey yavaş ve yakında bozulacak ve PD bunu işleyecek ve olayı görevli mühendise gönderecektir.

Yaparız:

PagerDuty veya Operasyon Departmanı Geceleri Neden Uyuyamıyor?

Görürüz:

PagerDuty veya Operasyon Departmanı Geceleri Neden Uyuyamıyor?

  • API

HTTP entegrasyonu. Aslında burada özellikle ilginç bir şey yok, yalnızca JSON formatında bir gövdeye sahip bir POST isteği var. Örneğin ilginç bir şey: Bunu harici izleme için kullanıyoruz. https://www.statuscake.com/. Bu hizmet, sitelerimizin dünyanın farklı yerlerinden erişilebilirliğini kontrol eder. Kabul edilemez bir yanıt kodu aldığımızda (örneğin 502), bir olay yaratılır ve her şey yukarıda anlatılan zinciri takip eder. StatusCake'in kendisi dahili URL'leri, SSL sertifikasını veya etki alanı süresinin sona ermesini izleme yeteneğine sahiptir.

  • özgür NMS

Bu başka bir izleme sistemidir, bununla ilgili daha fazla bilgiyi web sitelerinde okuyabilirsiniz. https://www.librenms.org/. Onun yardımıyla sunuculardaki ağ arayüzlerini ve iDRAC'ı izliyoruz.

PagerDuty veya Operasyon Departmanı Geceleri Neden Uyuyamıyor?

Datadog, CloudWatch gibi entegrasyonlar da vardı. Onlara ne olduğu hakkında daha fazlasını görebilirsiniz burada.

Görüntüleme

Ana olay raporlama sistemi Slack'tir. PD'ye gelen tüm olaylar özel bir sohbete yazılır ve durumları değişirse bu da sohbette görüntülenir.

PagerDuty veya Operasyon Departmanı Geceleri Neden Uyuyamıyor?

Tavandan sarkan monitörlerin ekranlarında yararlı verileri görüntüleme fırsatı doğduğunda, aniden bizim (devops departmanında) onlar üzerinde görüntüleyecek hiçbir şeyimiz olmadığını fark ettik. Harika bir Grafana var ama her şeyi kapsamıyor ve çalışanlar çizelgelere değil uyarılara tepki veriyor.

GitHub'da PD için kısa ve bilgilendirici bir "pano" için kapsamlı ancak başarısız bir arama yaptıktan sonra, yalnızca ihtiyacımız olanı kullanarak kendi metnimizi yazmaya karar verdik. İlk başta PD arayüzünün kendisini görüntüleme fikri olsa da, daha da sakıncalı görünüyordu.

Bunu yazmak için tek yapmanız gereken, salt okunur haklara sahip bir PD'den bir anahtar almaktır.
Ve elimizde şu var:

PagerDuty veya Operasyon Departmanı Geceleri Neden Uyuyamıyor?

Ekranda mevcut açık olaylar, seçilen programdan görevdeki mevcut mühendisin adı ve yüksek öncelikli bir olayın olmadığı zaman görüntülenir (yüksek öncelikli bir olayın olduğu panel kırmızı renkle vurgulanacaktır).

Bu uygulamanın kaynaklarına buradan bakın.

Sonuç olarak, tüm olaylarımızı görüntülemek için kullanışlı bir kontrol paneline sahip olduk. Aranızdan bazıları deneyimlerimizi yararlı bulursa çok sevinirim.

Kaynak: habr.com

Yorum ekle