Prehľad hybridného monitorovacieho systému Okerr

Pred dvoma rokmi som už napísal príspevok Jednoduché núdzové prepnutie webovej stránky o okerr. Teraz je nejaký vývoj projektu a tiež som publikoval zdrojový kód na strane servera okerr pod otvorená licencia, preto som sa rozhodol napísať túto krátku recenziu na Habr.

Prehľad hybridného monitorovacieho systému Okerr
[ v plnej veľkosti ]

Koho to môže zaujímať

Toto vás môže zaujímať, ak pracujete v malom tíme alebo sami. Nemáte monitoring a nie ste si istí, či ho naozaj potrebujete. Buď ste vyskúšali nejaký populárny seriózny monitoring „pre veľkých chlapcov“, ale nejako vám to „nezabralo“, alebo funguje v takmer predvolenej konfigurácii a váš život príliš nezmenilo. A tiež - ak určite neplánujete vyčleniť celého zamestnanca (alebo dokonca oddelenie), aby monitoroval dashboard aspoň pár hodín denne alebo ho konfiguroval.

Prečo je okerr nezvyčajný

Ďalej ukážem zaujímavé vlastnosti okerra, ktoré ho odlišujú od niektorých iných monitorovacích systémov.

Okerr je hybridné monitorovanie

Počas interného monitorovania beží na monitorovaných strojoch „agent“, ktorý prenáša dáta na monitorovací server (napríklad voľné miesto na disku). Keď je externý, server vykonáva kontroly cez sieť (napríklad ping alebo dostupnosť webovej stránky). Každý prístup má svoje obmedzenia. Okerr využíva obe možnosti. Kontroly vnútri serverov sú vykonávané veľmi ľahkým (30 kB) agentom alebo vašimi vlastnými skriptami a aplikáciami a sieťové kontroly sa vykonávajú prostredníctvom okerr senzorov v rôznych krajinách.

okerr nie je len softvér, ale aj služba

Serverová časť akéhokoľvek monitorovania je veľká a zložitá, je náročná na inštaláciu a konfiguráciu a vyžaduje zdroje. S okerr si môžete nainštalovať svoj vlastný monitorovací server (je bezplatný a opensource), alebo môžete jednoducho použiť iba klientsku časť a využívať služby nášho servera. Tiež zadarmo.

Ak vám monitorovanie umožňuje kompenzovať a zakrývať nedostatočnú spoľahlivosť serverov a aplikácií, potom vyvstáva filozofická otázka – kto je strážcom? Ako nám monitorovanie povie o probléme, ak sám z nejakého dôvodu „zomrel“ samostatne alebo spolu s vašimi inými zdrojmi (napríklad spadol kanál do dátového centra)? Pri použití externej služby okerr - tento problém je vyriešený - dostanete upozornenie, aj keď je celé dátové centrum s vašimi servermi bez prúdu alebo je napadnuté zombíkmi.

Samozrejme, existuje riziko, že samotný server okerr bude nedostupný, to je pravda (ako viete, 90 % spoľahlivosti sa vždy získa jednoducho a „zadarmo“, 99 % s minimálnym úsilím a každá ďalšia deviatka je exponenciálne ťažšie). Ale po prvé, pravdepodobnosť, že sa to stane, je nižšia a po druhé, problém môže zostať nepovšimnutý iba vtedy, ak sa zhoduje s problémami na našich serveroch. Ak máme spoľahlivosť 99.9% a vy máte 99.9% (nie príliš vysoké čísla), potom je šanca na nezistenú poruchu 0.1% z 0.1% = 0.0001%. Pridanie troch deviatok k vašej spoľahlivosti takmer bez námahy a bez nákladov je veľmi dobré!

Ďalšou výhodou monitoringu ako služby je, že poskytovateľ hostingu alebo webové štúdio môže nainštalovať okerr server a poskytnúť klientom prístup ako platenú alebo bezplatnú doplnkovú službu. Vaši konkurenti majú iba hosting a webové stránky, ale vy máte spoľahlivý hosting s monitorovaním.

Okerr je o indikátoroch

Indikátor je „žiarovka“. Má dva hlavné stavy – zelený (OK) alebo červený (ERR). Projekt obsahuje mnoho zoskupených (napríklad podľa servera) indikátorov. Na hlavnej stránke projektu hneď vidíte, že buď je všetko zelené (a môžete to zavrieť), alebo niečo svieti na červeno a treba to opraviť. Pri prechode medzi týmito stavmi sa odošle výstraha. Raz denne počas nastavovania sa posiela zhrnutie projektu.

Prehľad hybridného monitorovacieho systému Okerr

Každý indikátor okerr má zabudované podmienky, ktorými mení stav (v Zabbixe sa to nazýva spúšťač). Napríklad priemerná záťaž by nemala byť väčšia ako 2 (samozrejme, je to konfigurovateľné). A pre každú internú kontrolu (priemerná záťaž, voľný disk, ...) existuje strážny pes. Ak z nejakého dôvodu nedostaneme úspešné potvrdenie v stanovenom čase, zaznamená sa chyba a odošle sa upozornenie.

Našou zvyčajnou prácou je kontrolovať e-maily ráno a pozrieť si súhrn medzi ostatnými listami (naplánujeme to na začiatok práce). Ak je v nej všetko ok, robíme ďalšie dôležité veci (ale pre istotu sa môžeme rýchlo pozrieť na palubnú dosku okerra a uistiť sa, že je v tejto chvíli všetko zelené). Ak príde upozornenie, reagujeme.

Samozrejme je možné jednoducho ponechať „informačné“ indikátory (aby ste videli obraz siete z monitorovania), ale všetko sa robí preto, aby sa jednoducho, jednoducho a rýchlo vytvorili indikátory špeciálne pre automatické monitorovanie a odosielanie upozornení.

Účel, pre ktorý nastavujete okerr, je v upozorneniach, aby ste si vytvorili indikátor za minútu, mohol by rok „spať“, len prijímať aktualizácie a keď sa o rok neskôr niečo pokazí, rozsvieti sa a odošle upozornenie. Minúta, ktorú ste raz strávili vytváraním indikátora, sa vyplatila; o probléme ste sa dozvedeli okamžite, skôr ako ktokoľvek iný. Je možné, že to opravili skôr, ako si to niekto všimol. Niečo, čo sa rýchlo zdvihne, sa nepovažuje za spadnuté!

zabezpečenia

Bola by škoda, keby ste si kvôli zvýšeniu spoľahlivosti nastavili monitoring, no v dôsledku toho ste cez neho cez sieť napadnutí a v rôznych monitorovacích nástrojoch je pomerne veľa sieťových zraniteľností (Zabbix, Nagios).

Agent (okerrmod z balíka okerrupdate) spustený v systéme nie je sieťový server, ale klient. Preto na monitorovanom serveri nie sú žiadne ďalšie otvorené porty, klient ľahko pracuje za firewallom alebo NAT a je veľmi ťažké (povedal by som „nemožné“) hacknúť cez sieť, pretože v zásade nepočúva sieť zásuvka.

Úplné pokrytie monitorovania

Teraz je naším pravidlom, že o všetkých technických problémoch sa dozvieme od spoločnosti okerr. Ak náhle dôjde k porušeniu pravidla (okerr neupozornil na jeho bezprostredný výskyt (ak je to možné) alebo že k nemu už došlo) - pridáme kontroly do okerr.

Externé kontroly

Celkom typická zostava:

  • ping
  • stav http
  • kontrola platnosti a čerstvosti SSL certifikátu (upozorní, ak sa blíži koniec platnosti)
  • otvorte port TCP a banner na ňom
  • http grep (stránka [nesmie] obsahovať špecifický text)
  • sha1 hash na zachytenie zmien stránky.
  • DNS (záznam DNS musí mať špecifickú hodnotu)
  • WHOIS (upozorní, ak sa doména pokazí)
  • Antispam DNSBL (kontrola hostiteľa oproti 50+ antispamovým blacklistom naraz)

Vnútorné kontroly

Tiež celkom štandardná sada (ale ľahko rozšíriteľná).

  • df (voľné miesto na disku)
  • priemer zaťaženia
  • opentcp (otvoriť TCP počúvajúce zásuvky - upozorní, ak sa niečo spustilo alebo zlyhalo)
  • uptime - iba uptime na serveri. Upozorní, ak sa zmenil nadol (t. j. server je preťažený)
  • client_ip
  • dirsize – používame ho na sledovanie, kedy rootfs našich virtuálnych strojov prekročia povolenú veľkosť bez zavedenia prísnych obmedzení a veľkosť domovských adresárov používateľov
  • prázdne a neprázdne – sledujú súbory, ktoré by mali byť prázdne (alebo nie prázdne). Napríklad protokol chýb samotného servera okerr by mal byť prázdny a ak je v ňom dokonca riadok, dostanem upozornenie a skontrolujem ho. Ale mail.log na poštovom serveri NESMIE byť prázdny (N minút po otočení). A niekedy nám bol prázdny po aktualizácii systému, keď logrotate nedokázal správne reštartovať rsyslog.
  • linecount - počet riadkov v súbore (ako wc -l). Používame ho ako jemnejšiu náhradu za prázdne, keď môže chybový protokol ešte rásť, ale len pomaly (napríklad Googlebot narazí na niektoré zatvorené stránky). Limit je 2 riadky za 20 minút. Ak je vyššia, dôjde k varovaniu

Zaujímavé interné kontroly

Ak ste až do tohto bodu čítali „diagonálne“, teraz bude zaujímavejšie čítať pozornejšie.

zálohy

Monitoruje zálohy v adresári. Naše záložné súbory majú názvy ako „ServerName-20200530.tar.gz“. Pre každý server v okerr sa vytvorí indikátor ServerName-DATE.tar.gz (skutočný dátum sa zmení na riadok „DATE“). Sleduje sa aj samotná prítomnosť čerstvej zálohy a jej veľkosť (napríklad nemôže byť menšia ako 90 % predchádzajúcej zálohy).

Čo je potrebné urobiť, aby sa nová záloha začala sledovať po tom, čo sme ju začali vytvárať a vkladať do tohto adresára? Nič! Toto je veľmi pohodlný prístup, keď nepotrebujete robiť „nič“, pretože:

  • Nerobiť „nič“ je dosť rýchle, šetrí to čas
  • Je ťažké zabudnúť na „nič“
  • Je ťažké urobiť „nič“ zle, s chybou. Nič nie je najspoľahlivejšia metóda

Ak sa náhle prestanú zobrazovať nové záložné súbory, zobrazí sa upozornenie. Ak ste napríklad deaktivovali jeden zo serverov a nemali by existovať žiadne ďalšie zálohy, budete musieť indikátor vymazať (cez webové rozhranie alebo z prostredia shell cez API).

maxfilesz

Sleduje veľkosť najväčších súborov (zvyčajne: /var/log/*). To vám umožní zachytiť nepredvídateľné problémy, napríklad heslá hrubou silou alebo odosielanie spamu cez server.

runstatus/runline

Toto sú dva dôležité moduly proxy na spustenie iných programov na serveri. Runstatus oznamuje indikátor ukončenia programu. Okerr napríklad nevyžaduje (nevyžaduje) modul na kontrolu, či sú spustené služby systemd. Toto sa vykonáva cez runstatus (pozri nižšie). Runline - hlási serveru riadok, ktorý program vytvára. Napríklad, temp_RUN="cat /sys/class/thermal/thermal_zone0/temp" v konfigurácii Runline na našom serveri vytvorí indikátor servername:temp s teplotou procesora.

sql

Vykoná numerický dotaz na MySQL a výsledok oznámi indikátoru. V jednoduchom prípade môžete urobiť napríklad „SELECT 1“ - tým sa skontroluje, či DBMS ako celok funguje.

Oveľa zaujímavejšou aplikáciou je ale napríklad sledovanie počtu objednávok v internetovom obchode. Ak viete, že máte 100 a viac objednávok za hodinu, môžete si nastaviť minimálny limit na 100 alebo 80. Ak vám potom predaj náhle klesne, dostanete upozornenie a môžete na to prísť.

Všimnite si, že nezáleží na tom, z akého nepredvídateľného dôvodu sa to stalo:

  • Server je jednoducho nedostupný (bez napájania alebo bez siete) a upozornenie prišlo zo skutočnosti, že indikátor bol „zhnitý“.
  • Server je niečím preťažený, funguje pomaly alebo sa strácajú pakety, je to pre používateľov nepohodlné a odchádzajú bez nákupu
  • Server je zahrnutý v zoznamoch spamu a pošta z neho nie je akceptovaná, používatelia sa nemôžu registrovať
  • Rozpočet reklamnej kampane sa minul, bannery sa nekrútia.

Dôvodov môže byť viacero a všetky sa nedajú predvídať vopred a technicky je ťažké ich sledovať. Ale môžete pohodlne sledovať konečný parameter (objednávky) a z nich určiť, že situácia je podozrivá a zaslúži si riešenie.

Logické ukazovatele

Umožňuje použitie booleovských výrazov (syntax Pythonu) prostredníctvom modulu overiť(článok o Habrém). Údaje z projektu a jeho ukazovatele sú k dispozícii na vyjadrenie. Napríklad v kapitole o SQL kontrole vyššie ste si mohli všimnúť slabé miesto - cez deň môžeme mať 100 predajov za hodinu, ale v noci - 20, a to je bežné, nie je to problém. Čo mám robiť? Indikátor bude v noci neustále panikať.

Môžete vytvoriť dva indikátory, deň a noc. Urobte oboje „tiché“ (nebudú posielať upozornenia). A vytvorte logický indikátor, ktorý vyžaduje, aby bol denný indikátor v poriadku pred 20:00 a po 20:00 stačí, aby bol v poriadku nočný indikátor.

Ďalším príkladom použitia logického indikátora je vystupňovaniu. Napríklad projektový manažér sa odhlási z odberu upozornení (nemusí to robiť, správcovia by mali reagovať na bežné problémy), ale prihlási sa na odber logického indikátora, ktorý sa zmení na červenú, ak niektorý indikátor v projekte nie je opravený v určenom čase.

Taktiež je možné nastaviť povolený čas práce, napríklad od 3 do 5 hodín ráno. Nezáleží nám na tom, či počas tejto doby zlyhajú servery a stránky. Ale o 5:00 musia pracovať. Ak v inom čase nefungujú - upozornite. Logický indikátor vám tiež umožňuje vziať do úvahy redundanciu servera. Ak máte 5 webových serverov, správcovia môžu kedykoľvek vypnúť 1-2 servery. Ale ak sú v boji menej ako 3 z 5 serverov, bude upozornenie.

Vyššie uvedené príklady nie sú funkcie oker, nie niektoré funkcie, ktoré je potrebné aktivovať a nakonfigurovať. Okerra nemá všetky tieto funkcie, ale existuje logický modul, ktorý vám umožňuje implementovať túto funkcionalitu (Približne ako v programovacom jazyku - ak máme aritmetické operátory, potom nepotrebujeme špeciálnu funkciu na výpočet 20% DPH z jazyka, vždy to môžete urobiť sami, aby vyhovoval vašim potrebám).

Logic Indicator je pravdepodobne jedna z mála pomerne zložitých tém v okerri, ale dobrou správou je, že ho nemusíte ovládať, kým to nepotrebujete. Zároveň však výrazne rozširujú možnosti, pričom samotný systém je pomerne jednoduchý.

Pridávanie vlastných šekov

Naozaj by som rád vyjadril myšlienku, že okerr nie je súbor tisícok hotových šekov pre všetky príležitosti, ale naopak - v prvom rade - jednoduchý engine s jednoduchou možnosťou vytvárať si vlastné šeky. Vytváranie vlastných kontrol v okerr nie je úlohou pre hackerov, systémových spoluvývojárov alebo aspoň pokročilých používateľov okerr, ale realizovateľnou úlohou pre každého správcu, ktorý si pred mesiacom prvýkrát nainštaloval Linux.

Kontroly minimálnej mzdy sa vykonávajú prostredníctvom modulu runstatus:

Tento riadok v konfigurácii runstatus upozorní vás, ak sa /bin/true zrazu nespustí alebo vráti niečo iné ako 0.

true_OK=/bin/true

Len jeden riadok - a tu sme už trochu rozšírené funkčnosť okerr.

Aj takáto kontrola už má svoju hodnotu: ak váš server náhle zlyhá, príslušný indikátor na serveri okerr sa neaktualizuje včas a po uplynutí času sa zobrazí upozornenie.

Táto kontrola upozorní, že server apache2 zlyhal (no, nikdy neviete...):

apache_OK="systemctl is-active --quiet apache2"

Takže, ak hovoríte akýmkoľvek programovacím jazykom a aspoň viete písať shell skripty, potom už môžete pridať svoje vlastné kontroly.

Zložitejšie - môžete napísať (v akomkoľvek jazyku) svoj vlastný modul pre okerrmod. V najjednoduchšom prípade to vyzerá takto:

#!/usr/bin/python3

print("STATUS: OK")

Nie je to veľmi ťažké? Modul musí vykonať kontrolu sám a odoslať výsledky do STDOUT. Zložitejší modul poskytuje napríklad toto:

$ okerrmod --dump df
NAME: pi:df-/
TAGS: df
METHOD: numerical|maxlim=90
DETAILS: 49.52%, 13.9G/28.2G used, 13.0G free
STATUS: 49.52

NAME: pi:df-/boot
TAGS: df
METHOD: numerical|maxlim=90
DETAILS: 84.32%, 53.1M/62.9M used, 9.9M free
STATUS: 84.32

Aktualizuje niekoľko indikátorov naraz (oddelených prázdnym riadkom), v prípade potreby ich vytvorí, uvedie podrobnosti o overení a značku, pomocou ktorej je možné ľahko nájsť potrebné indikátory na palubnej doske.

telegram

Existuje telegramový bot @OkerrBot. Nemusíte zapĺňať telefón samostatnými aplikáciami (nepáči sa mi, že pre Pyaterochku potrebujete jednu aplikáciu s mapou, pre Lentu druhú, pre MTS tretiu a tak ďalej pre všetkých, všetkých, všetkých). Stačí jeden telegram. Prostredníctvom telegramu môžete okamžite prijímať upozornenia, kontrolovať stav projektu a dať príkaz na prekontrolovanie všetkých problematických indikátorov. Odišli sme z divadla/lietadla, nedržali sme prst na tepe dve hodiny, zapli telefón, stlačili jedno tlačidlo na chatbote a ubezpečili sa, že je všetko v poriadku.

Stavové stránky

Stavové stránky sú v dnešnej dobe takmer nevyhnutnosťou pre každú firmu, ktorá má IT, zodpovedný prístup k spoľahlivosti a ktorá sa ku svojim klientom/používateľom správa s rešpektom.

Predstavte si situáciu – používateľ chce niečo urobiť, zobraziť informácie alebo zadať objednávku a niečo nefunguje. Nevie, čo sa deje, na koho strane je problém a kedy sa vyrieši. Možno má vaša spoločnosť jednoducho nefunkčnú webovú stránku? Alebo sa to pred pol rokom pokazilo a o dva roky sa to opraví? Ale chladničku si treba kúpiť hneď, už je v košíku... A úplne iné je, keď človek vidí, že s tebou niečo nie je v poriadku (aspoň je jasné, že problém nie je na jeho strane), že zistil sa problém, že už na tom pracujete a možno ste si aj zapísali približný čas nápravy. Používateľ sa môže prihlásiť na odber a dostávať e-mailové upozornenia, keď je problém vyriešený a môže si robiť, čo chcel (kúpiť chladničku).

Prehľad hybridného monitorovacieho systému Okerr

Problémy a výpadky sa stávajú každému. Používatelia a partneri však viac dôverujú tým, ktorí sú v tomto prístupe transparentnejší a zodpovednejší.

Tu prehľad 10 ďalších projektov, ktoré vám umožňujú vytvárať stavové stránky. Tu sú príklady, ako tieto stránky projektu vyzerajú Pytón и Dropbox. stavová stránka okerr.

Failover

Aby tento článok nebol ešte dlhší, ešte raz odkážem na môj predchádzajúci článok - Jednoduché núdzové prepnutie webovej stránky . Ak dokážete vytvoriť duplicitný server, potom pomocou núdzového prepnutia v zásade nebudete mať dlhé prestoje – akonáhle sa zistí problém, používatelia budú automaticky presmerovaní na funkčný záložný server. A zdá sa mi, že je to veľmi zaujímavá, svetlá funkcia, ktorá je zriedka dostupná kdekoľvek.

Nízke systémové požiadavky

Pre okerr servery používame stroje s RAM od 2Gb. Pre sieťové senzory stačí aj 512Mb. Klientska časť je vo všeobecnosti takmer nulová. (Plastový sáčok okerrupdate váži 26 Kb, ale vyžaduje Python3 a štandardné knižnice). Klient beží z cron skriptu, takže má nulovú trvalú spotrebu pamäte. Medzi strojmi, ktoré sme sledovali, máme senzory (superlacné VPS s 512 Mb RAM) a Raspberry Pi. Je to možné aj bez klientskej časti posielať aktualizácie cez curl! (Pozri nižšie)

Keď to vezmeme do úvahy - pravdepodobne okerr najviac zadarmo monitorovací systém z dostupných, pretože aj na používanie iného bezplatného open-source systému ako Zabbix alebo Nagios je potrebné alokovať zdroje (server), a to už sú peniaze. Okrem toho je stále potrebná určitá údržba servera. Pomocou okerr je možné túto časť odstrániť. Alebo ho nemusíte odstraňovať a používať svoj vlastný server, v závislosti od toho, čo sa vám najviac páči.

API a integrácia do proprietárneho softvéru

Jednoduchá a otvorená architektúra. okerr to má celkom jednoduché API, s ktorým sa ľahko pracuje. Potrebujete vytvoriť 1000 ukazovateľov? Urobí to jeden shell skript s 3-4 riadkami. Potrebujete prekonfigurovať 1000 indikátorov? Je to tiež veľmi jednoduché. Napríklad chceme dvakrát skontrolovať všetky naše HTTPS certifikáty z ruského senzora:

#!/bin/sh

for indicator in `okerrclient --api-filter sslcert`
do
    echo set location for $indicator
    okerrclient --api-set location=ru retest=1 --name $indicator
done

Indikátor môžete aktualizovať pomocou nášho klientskeho modulu aj bez neho, len cez curl.

# short and nice (using okerrupdate and config file)
$ okerrupdate MyIndicator OK

# only curl is enough!
$ curl -d 'textid=MyProject&name=MyIndicator&secret=MySecret&status=OK' https://bravo.okerr.com/

Indikátory môžete aktualizovať priamo z vášho programu. Napríklad odosielanie signálov srdcového tepu, aby okerr vedel, že beží, a spustí alarm, ak sa zrúti alebo zamrzne. Mimochodom, komponenty okerr to robia - okerr sa sám monitoruje a problémy v takmer každom module budú detekované a vygenerujú upozornenie na problém. (A v prípade tohto „takmer“ - sú krížovo kontrolované z iného servera)

Tu je kód (zjednodušený) v našom telegramovom robote:

from okerrupdate import OkerrProject, OkerrExc

op = OkerrProject()
uptimei = op.indicator("{}:telebot_uptime".format(hostname))
...
uptimei.update('OK', 'pid: {} Uptime: {} cmds: {}'.format(
        os.getpid(), dhms(uptime), commands_cnt))

Existuje knižnica na aktualizáciu indikátorov z programov Python okerrupdate, pre žiadne iné jazyky neexistujú žiadne knižnice, ale môžete buď zavolať skript okerrupdate, alebo zadať požiadavku HTTP na server okerr.

Ako nám pomáha okerr

Okerr zmenil naše životy. Naozaj. Možno by to dokázal aj iný monitorovací systém, ale práca s okerrom je pre nás ľahká a jednoduchá a má všetky funkcie, ktoré sme potrebovali (pridali sme to, čo nemal). Mimochodom, ak niektoré funkcie chýbajú, opýtajte sa a ja ich pridám (nesľubujem, ale chcem, aby bol okerr najlepší monitorovací systém pre malé a stredné projekty). Alebo ešte lepšie, pridajte si to sami – je to jednoduché.

Podarilo sa nám žiť podľa princípu „učte sa o všetkých problémoch z kerry“. Ak sa zrazu vyskytne problém, o ktorom sme sa od okerr nedozvedeli, pridáme do okerr kontrolu. (v tomto prípade „my“ myslím nás ako používateľov systému, nie spoluvývojárov). Spočiatku to bolo bežné, ale teraz sa to stalo veľmi zriedkavé.

monitorovanie

Prostredníctvom okerr monitorujeme veľkosti protokolov na všetkých serveroch. Je, samozrejme, nemožné premyslene čítať každý riadok denníka očami, ale jednoduché sledovanie rýchlosti rastu už dáva veľa. Vďaka tomu sme odhalili rozosielanie nevyžiadanej pošty a vyhľadávanie hesiel hrubou silou, a keď sa niektoré z aplikácií „zbláznia“, niečo im nefunguje a opakujú to znova a znova (zakaždým, keď do protokolu pridajú pár riadkov ).

SSL certifikáty. Takmer okamžite po spustení Umožňuje šifrovať náš zákazník začal svojim klientom (asi tisícke) poskytovať bezplatné SSL certifikáty. A ukázalo sa, že je to len peklo pre administratívu! Faktom je, že stránky sú „živé“, klienti ich pravidelne žiadajú, aby niečo urobili, programátori to robia. Môžu úplne voľne preniesť web napríklad do iného DocumentRoot. Alebo pridajte bezpodmienečné prepísanie do konfigurácie virtuálneho hostiteľa. Prirodzene, potom sa automatická obnova certifikátov pokazí. Teraz máme všetkých hostiteľov SSL pridaných do okerr automaticky prostredníctvom ďalšieho z našich užitočných nástrojov z balíka a2conf. Poďme len spustiť a2okerr.py — a ak sa na serveri objaví niekoľko nových stránok, automaticky sa objavia v okerr. Ak sa náhle z nejakého dôvodu certifikát neobnoví, tri týždne pred vypršaním platnosti certifikátu, vieme a zistíme, prečo nie je aktualizovaný, taký pes. a2certbot.py z toho istého balíka - veľmi to pomáha (okamžite skontroluje najpravdepodobnejšie problémy - a napíše, čo bolo skontrolované dobre a kde je s najväčšou pravdepodobnosťou problém).

Sledujeme dátum expirácie všetkých našich domén. A všetky naše poštové servery, ktoré odosielajú poštu, sú tiež kontrolované podľa viac ako 50 rôznych zoznamov zakázaných položiek. (A niekedy do nich spadnú). Mimochodom, vedeli ste, že poštové servery Google sú tiež na čiernej listine? Len pre samotestovanie sme na monitorované servery pridali mail-wr1-f54.google.com, ktorý je stále na čiernej listine SORBS! (Toto je o hodnote „anti-spamerov“)

Zálohy - už som písal vyššie, aké jednoduché je sledovať ich pomocou okerr. Sledujeme však najnovšie zálohy na našom serveri a (pomocou samostatného nástroja, ktorý používa okerr) zálohy, ktoré nahrávame na ľadovec Amazon. A áno, z času na čas sa vyskytnú problémy. Niet divu, že sa pozerali.

Používame indikátor eskalácie. Ukazuje, či nejaký problém nebol dlho vyriešený. A ja sám, keď riešim nejaké problémy, niekedy na ne dokážem zabudnúť. Eskalácia je dobrou pripomienkou, aj keď sa monitorujete.

Celkovo si myslím, že kvalita našej práce sa rádovo zvýšila. Nedochádza takmer k žiadnym prestojom (alebo si to klient nestihne všimnúť. Len pst!), zatiaľ čo množstvo práce sa zmenšilo a pracovné podmienky sa upokojili. Od núdzových prác s prelepovaním dier páskou sme prešli k pokojnej a odmeranej práci, kedy sa mnohé problémy predpovedajú vopred a je čas im predchádzať. Dokonca aj problémy, ktoré sa vyskytli, sa tiež ľahšie riešia: po prvé sa o nich dozvieme skôr, ako klienti prepadnú panike, a po druhé sa často stáva, že problém súvisí s nedávnou prácou (keď som robil jednu vec, porušil som druhú) - takže je to horúce Ľahšie sa s tým vysporiadajú stopy.

Ale bol tu ďalší prípad...

Vedeli ste, že v populárnom Debiane 9 (Stretch) je taký populárny balík ako phpmyadmin stále (už mnoho mesiacov!) v zraniteľnom stave? (CVE-2019 6798,). Keď sa objavila zraniteľnosť, rýchlo sme ju zakryli rôznymi spôsobmi. Nastavil som však monitorovanie stránky sledovania zabezpečenia v okerr, aby som vedel, kedy vyjde „krásne“ riešenie (cez súčet obsahu SHA1). Indikátor mi niekoľkokrát trhol, stránka sa zmenila, ale ako vidíte, stále to (od januára 2019!) nenaznačuje, že by bol problém vyriešený. Možno, mimochodom, niekto vie, v čom je problém, že taký dôležitý balík je stále zraniteľný viac ako rok?

Inokedy v podobnej situácii: po zraniteľnosti v SSH bolo potrebné aktualizovať všetky servery. A keď zadáte úlohu, musíte kontrolovať jej vykonávanie. (Podriadení majú tendenciu nepochopiť, zabúdať, byť zmätení a robiť chyby). Preto sme najprv pridali kontrolu verzie SSH do okerr na všetkých serveroch a prostredníctvom okerr sme sa ubezpečili, že aktualizácie boli spustené na všetkých serveroch. (Pohodlné! Zvolil som tento typ indikátora a hneď vidíte, ktorý server má akú verziu). Keď sme si boli istí, že úloha bola dokončená na všetkých serveroch, indikátory sme odstránili.

Niekoľkokrát sa vyskytla situácia, keď sa objavil určitý problém, ktorý potom sám od seba zmizne. (asi všetkým známy?). V čase, keď si to všimnete, v čase, keď skontrolujete – a nie je čo kontrolovať – už všetko funguje dobre. Ale potom sa to znova zlomí. Stalo sa nám to napríklad pri produktoch, ktoré sme nahrali na Amazon Marketplace (MWS). V určitom okamihu boli načítané zásoby nesprávne (nesprávne množstvá tovaru a nesprávne ceny). Prišli sme na to. Ale aby sme na to prišli, bolo dôležité sa o probléme dozvedieť hneď. Bohužiaľ, MWS, rovnako ako všetky služby Amazonu, je trochu pomalý, takže vždy došlo k oneskoreniu, ale napriek tomu sme boli schopní aspoň približne pochopiť spojenie medzi problémom a skriptami, ktoré ho spôsobujú (urobili sme kontrolu, zasekli sme sa ho do okerr a okamžite ho skontroloval a dostal upozornenie).

Veľký a drahý európsky hoster nedávno pridal do zbierky zaujímavé puzdro, ktoré používa náš zákazník. Zrazu VŠETKY naše servery zmizli z radaru! Po prvé, samotný zákazník (rýchlejšie ako okerra!) si všimol, že stránka, s ktorou pracuje, sa neotvára a urobil si o tom lístok. Ale nespadla len jedna stránka, ale všetky! (Natasha, všetko sme nechali!). Tu Okerr začal posielať dlhé obväzy nôh so všetkými indikátormi, ktoré sa mu rozsvietili. Panika, panika, bežíme v kruhoch (čo iné môžeme robiť?). Potom všetko povstalo. Ukázalo sa, že v dátovom centre prebiehala bežná údržba (raz za mnoho rokov) a mali sme byť, samozrejme, upozornení. Ale stal sa im nejaký problém a nevarovali nás. No, viac infarktov, menej infarktov. Ale keď je všetko obnovené, musíte všetko skontrolovať! Neviem si predstaviť, ako by som to urobil rukami. Okerr všetko otestoval za pár minút. Ukázalo sa, že väčšina serverov bola jednoducho dočasne nedostupná, ale fungovali. Niektorí boli preťažení, ale aj sa postavili, ako sa patrí. Zo všetkých strát sme prišli o dve zálohy, ktoré mali byť podľa koruny vytvorené a načítané počas tohto plného banánu. Ani som sa neobťažoval ich vytváraním, len o deň neskôr prišli upozornenia, že je všetko v poriadku, objavili sa zálohy. Tento príklad sa mi veľmi páči, pretože okerr sa ukázal ako veľmi užitočný v situácii, o ktorej sme vopred ani neuvažovali, ale práve to je účelom monitorovania – odolávať nepredvídateľnému.

Pre senzory Okerr používame najlacnejší možný hosting (kde nie je dôležitá kvalita a spoľahlivosť, poistia sa navzájom). Nedávno sme teda našli veľmi dobrý hosting a super lacný, referenčné hodnoty sú úžasné. Ale... niekedy sa ukáže, že odchádzajúce spojenia z virtuálneho stroja sú vytvorené z inej (susednej) IP. Zázraky. Modul Client_ip s https://diagnostic.opendns.com/myip dostane nesprávnu IP. A zo serverových protokolov indikátora je jasné, že aktualizácia prišla aj z tejto susednej IP. Poďme sa teraz zaoberať podporou. Je dobré, že sme si to všimli v čase mieru. Ale napríklad sa často stáva, že prístup je zaregistrovaný podľa bielej listiny IP - a ak server niekedy na krátky čas takto zabliká - môžete sa snažiť tento problém zachytiť veľmi dlho.

No a ešte jedna vec – keďže hovoríme o VPS hostingu – vždy používame tie lacné (hetzner, ovh, scaleway). Veľmi sa mi páči z hľadiska benchmarkov aj stability. Oveľa drahší Amazon EC2 používame aj na iné projekty. Takže vďaka okerr máme vlastný informovaný názor. Obaja padajú. A nepovedal by som, že počas dlhého obdobia našich pozorovaní sa lacné hostingy ako hetzner ukázali byť výrazne menej stabilné ako EC2. Preto, ak nie ste viazaní na iné funkcie Amazonu, prečo platiť viac? 🙂

Čo bude ďalej?

Ak som vás v tejto fáze ešte neodstrašil od Okerra, skúste to! Môžete prejsť priamo na tento odkaz demo účet okerr (Kliknite teraz!) Majte však na pamäti, že pre každého existuje len jeden demo účet, takže ak niečo urobíte, môže do vás naraz zasahovať aj niekto iný na tom istom účte. Alebo sa (lepšie) zaregistrujte cez odkaz na offsite okerr - všetko je jednoduché, bez SMS. Ak nechcete používať svoj skutočný e-mail, môžete použiť jednorazový, napríklad mailinátor (odporúčam getnada.com). Takéto účty môžu byť časom odstránené, ale na testovanie budú v poriadku.

Po registrácii budete vyzvaní, aby ste absolvovali školenie (vykonanie niekoľkých nie veľmi náročných tréningových úloh). Počiatočné limity sú veľmi malé, ale na školenie alebo jeden server stačia. Po absolvovaní školenia sa limity (napríklad maximálny počet ukazovateľov) zvýšia.

Z dokumentácie - v prvom rade WIKI na strane servera a na strane klienta (okerrupdate wiki). Ak vám však niečo nie je jasné, napíšte na podporu (zavináč) okerr.com alebo zanechajte lístok – pokúsime sa všetko rýchlo vyriešiť.

Ak to užívate vážne a nestačia vám tieto zvýšené limity, napíšte na podporu a my vám to (zadarmo) navýšime.

Chcete nainštalovať server okerr na váš server? Tu okerr-dev úložisko. Odporúčame inštaláciu na čistý virtuálny stroj, potom to môžete jednoducho urobiť pomocou inštalačného skriptu. Na vašom virtuálnom stroji - žiadne obmedzenia :-). No opäť, ak sa čokoľvek stane, vždy sa pokúsime pomôcť.

Chceme, aby sa tento projekt rozbehol, aby sa svet vďaka nám stal spoľahlivejším. Vďaka slobodnému softvéru a službám sa svet stal prívetivejším a dynamickejšie sa rozvíja. Zdroje môžu byť uložené v bezplatnom githube, pre poštu môžete použiť bezplatný gmail. Používame zadarmo čerstvé práce za podporu. Za nič z toho nemusíte platiť za servery, nemusíte ich sťahovať a konfigurovať a nemusíte riešiť rôzne prevádzkové problémy. Každý nový projekt, každý tím má okamžite poštu, úložiská a CRM. A to všetko veľmi kvalitne a zadarmo a okamžite. Chceme, aby to tak bolo aj pri monitorovaní – malé firmy a projekty by mohli využívať okerr zadarmo a dokonca aj vo fáze zrodu a rastu majú spoľahlivosť ako dospelé seriózne projekty.

Zdroj: hab.com