Sistem nə qədər mürəkkəb olsa, bir o qədər də hər cür xəbərdarlıqlarla dolur. Və bu eyni xəbərdarlıqlara reaksiya vermək, onları toplamaq və vizuallaşdırmaq lazımdır. Düşünürəm ki, bu, çoxlarına əsəbilik həddinə qədər tanış olan bir vəziyyətdir.
Müzakirə ediləcək həll ən gözlənilməz deyil, lakin axtarış bu mövzuda tam hüquqlu bir məqaləni qaytarmır.
Buna görə də, FunCorp-un təcrübəsini bölüşmək və vəzifə prosesinin necə qurulduğu, kimin zəng etdiyi, niyə və necə baxa biləcəyiniz barədə danışmaq qərarına gəldim.
PagerDuty nədir?
Beləliklə, bütün bu problemləri həll etmək üçün rahat bir vasitə axtarmağa başladıq. Bəzi axtarışlardan sonra biz PagerDuty-ni seçdik. PD bizə çoxlu sayda inteqrasiya və parametrlərlə kifayət qədər tam və qısa bir həll kimi görünürdü. O necədir?
Bir sözlə, PagerDuty müxtəlif inteqrasiyalar vasitəsilə daxil olan insidentləri emal edə, növbətçi əmrlər qura və sonra hadisənin səviyyəsindən (yüksək səviyyədə - zəng, aşağı səviyyədə) proqramdan / SMS-dən təkan).
Növbətçi kimdir?
Bu, yəqin ki, PD qurmağa başlamaq üçün ilk yerdir.
FunCorp-da digər şirkətlər kimi fəxri növbətçi vəzifəsi var. Gündə bir dəfə mühəndisdən mühəndisə ötürülür. PagerDuty-dən gələn xəbərdarlığa sözdə birinci və ikinci cavab xətti var. Tutaq ki, yüksək prioritetli xəbərdarlıq gəldi və birinci cərgədən növbətçiyə edilən zəngdən 10 dəqiqə sonra ona heç bir reaksiya yoxdursa (yəni, təsdiq və ya həll edilmiş statusa keçməyib), zəng ikinciyə keçir. növbətçi mühəndis. Bu, PagerDuty-nin özündə Eskalasiya Siyasətləri vasitəsilə konfiqurasiya edilmişdir.
İkinci növbətçi cavab vermədikdə bildiriş geri qayıdır əsasdır növbətçiyə.
Beləliklə, hər hansı yüksək prioritetli gələn xəbərdarlıq emal olunmadan qala bilməz.
İndi gəlin görək hadisələr haradan yarana bilər.
Hansı inteqrasiyalardan istifadə edirik?
PD müxtəlif xidmətlərdən çoxlu müxtəlif hadisələr alır. Hazırda 25-ə yaxın belə xidmətimiz var və onları emal etmək üçün bəzi hazır inteqrasiyalardan istifadə edirik.
- Prometey
Əsas metrik toplama sistemi Prometeydir. Habré-də artıq bu barədə çox şey yazılmışdır, sadəcə deyim ki, bizdə müxtəlif mühitlər üçün onlardan bir neçəsi var: biri virtual maşınlardan və dokerlərdən, digəri Amazon xidmətlərindən, üçüncüsü isə aparat maşınlarından ölçülər toplayır. Teleqraf əsasən metrik ixracatçısı kimi istifadə olunur.
- mina
Burada da, məncə, başlıqdan hər şey aydın görünür. Bu inteqrasiya cron tərəfindən icra edilən bəzi skriptlərdən bildirişlər göndərmək üçün istifadə olunur. PD sizə məktublar göndərdiyiniz müəyyən ünvanı verir. Bu cür inteqrasiya ilə bir xidmət yaratarkən, prioritetləri təyin edə bilərsiniz, daxil olan insidentlərin hansı ardıcıllıqla işlənəcəyini, dəqiq bir siqnalın necə yaradılacağını (hər gələn məktub üçün, gələn məktub üçün + müəyyən qayda və s.)
- Süstlük
Məncə, çox maraqlı inteqrasiya. Elə vaxtlar olur ki, nəsə baş verir, amma hadisələrlə örtülmür. Buna görə də insident yaratmaq üçün Slack-dən inteqrasiya əlavə etdik. Yəni korporativ Slack-ə yaza bilərsiniz /callofduty hər şey yavaşdır və tezliklə pozulacaq və PD onu emal edəcək və hadisəni növbətçi mühəndisə göndərəcək.
Biz edirik:
Biz görürük:
- API
HTTP inteqrasiyası. Əslində burada xüsusi maraqlı heç nə yoxdur, sadəcə JSON formatında gövdəsi olan POST sorğusu. Məsələn, maraqlı bir şey: biz istifadə edərək xarici monitorinq üçün istifadə edirik
- LibreNMS
Bu başqa bir monitorinq sistemidir, bu barədə onların saytında daha çox oxuya bilərsiniz
Datadog, CloudWatch kimi inteqrasiyalar da var idi. Onların başına gələnləri daha çox görə bilərsiniz
Vizualizasiya
Əsas hadisə hesabat sistemi Slack-dir. PD-yə gələn bütün hadisələr xüsusi çata yazılır və onların statusu dəyişərsə, bu da söhbətdə göstərilir.
Tavandan asılmış monitorların ekranlarında faydalı məlumatları göstərmək fürsəti yarandıqda, birdən başa düşdük ki, bizim (devops departamentində) onlarda göstərmək üçün heç bir şeyimiz yoxdur. Gözəl Grafana var, lakin hər şeyi əhatə etmir və işçilər qrafiklərə deyil, xəbərdarlıqlara reaksiya verirlər.
GitHub-da PD üçün qısa və məlumatlandırıcı "lövhə" üçün hərtərəfli, lakin uğursuz axtarışdan sonra biz özümüzü yazmağa qərar verdik - yalnız bizə lazım olanlarla. Əvvəlcə PD interfeysinin özünü göstərmək ideyası olsa da, daha da əlverişsiz görünürdü.
Onu yazmaq üçün yalnız oxumaq hüququ olan PD-dən açar əldə etmək kifayətdir.
Və əldə etdiyimiz budur:
Ekranda cari açıq insidentlər, seçilmiş cədvəldən hazırkı növbətçi mühəndisin adı və yüksək prioritetli insident olmayan vaxt göstərilir (yüksək prioritet hadisə olan panel qırmızı rənglə vurğulanacaq).
Nəticədə, bütün hadisələrimizə baxmaq üçün rahat tablosuna sahib olduq. Bəziləriniz təcrübəmizi faydalı hesab etsəniz, şad olaram.
Mənbə: www.habr.com