Pregled Okerr hibridnog sistema za nadzor

Prije dvije godine već sam napravio post Jednostavan zamjena za web stranicu oko okerr. Sada postoji neki razvoj projekta, a ja sam i objavio izvorni kod na strani servera okerr ispod otvorena licenca, zato sam odlučio da napišem ovu kratku recenziju na Habru.

Pregled Okerr hibridnog sistema za nadzor
[ puna veličina ]

Kome može biti zanimljivo

Ovo bi vas moglo zanimati ako radite u malom timu ili sami. Nemate nadzor i niste sigurni da li vam je zaista potreban. Ili ste probali neki popularni ozbiljan monitoring "za velike dečke", ali vam nekako "nije iskočio", ili radi u gotovo zadanoj konfiguraciji i nije vam mnogo promijenio život. I također - ako definitivno ne planirate dodijeliti cijelog zaposlenika (ili čak odjel) da nadgleda nadzornu ploču barem nekoliko sati dnevno ili je konfigurirate.

Zašto je oker neobičan

U nastavku ću pokazati zanimljive karakteristike okerre koje ga razlikuju od nekih drugih sistema za praćenje.

Okerr je hibridni monitoring

Tokom internog nadzora, na nadgledanim mašinama radi „agent“ koji prenosi podatke na server za praćenje (na primer, slobodan prostor na disku). Kada je eksterni, server vrši provjere preko mreže (na primjer, ping ili dostupnost web stranice). Svaki pristup ima svoja ograničenja. Okerr koristi obje opcije. Provjere unutar servera se obavljaju od strane vrlo laganog (30Kb) agenta ili vaših vlastitih skripti i aplikacija, a mrežne provjere se vrše preko oker senzora u različitim zemljama.

okerr nije samo softver, već i usluga

Serverski dio svakog nadzora je velik i složen, teško ga je instalirati i konfigurirati i zahtijeva resurse. Sa okerr-om možete instalirati svoj vlastiti server za praćenje (besplatan je i otvorenog koda), ili jednostavno možete koristiti samo klijentski dio i koristiti uslugu našeg servera. Također besplatno.

Ako vam nadzor omogućava da nadoknadite i prikrijete nedostatak pouzdanosti u serverima i aplikacijama, onda se postavlja filozofsko pitanje - ko je čuvar? Kako će nam praćenje reći o problemu ako je on sam iz nekog razloga „umro“, odvojeno ili zajedno sa vašim drugim resursima (na primjer, pao je kanal do centra podataka)? Kada koristite eksterni servis okerr - ovaj problem je riješen - dobit ćete upozorenje čak i ako je cijeli podatkovni centar sa vašim serverima bez napajanja ili napadnut od zombija.

Naravno, postoji rizik da sam okerr server bude nedostupan, to je tačno (kao što znate, 90% pouzdanosti se uvek dobija jednostavno i „besplatno“, 99% uz minimum truda, a svaki sledećih devet je eksponencijalno teže). Ali, prvo, šanse da se to dogodi su manje, a drugo, problem može proći nezapaženo samo ako se poklopi sa problemima na našim serverima. Ako mi imamo 99.9% pouzdanosti, a vi 99.9% (ne previsoke brojke), onda je šansa za neotkriveni kvar 0.1% od 0.1% = 0.0001%. Dodavanje tri devetke vašoj pouzdanosti gotovo bez napora i bez troškova je vrlo dobro!

Još jedna prednost monitoringa kao usluge je da hosting provajder ili web studio može instalirati oker server i omogućiti pristup klijentima kao plaćenu ili besplatnu dodatnu uslugu. Vaši konkurenti imaju samo hosting i web stranice, ali vi imate pouzdan hosting sa nadzorom.

Okerr se odnosi na indikatore

Indikator je "sijalica". Ima dva glavna stanja - zeleno (OK) ili crveno (ERR). Projekat sadrži mnogo grupisanih (na primjer, po serveru) indikatora. Na glavnoj stranici projekta odmah vidite da je ili sve zeleno (i možete ga zatvoriti), ili nešto svijetli crveno i da se treba ispraviti. Prilikom prijelaza između ovih stanja, šalje se upozorenje. Jednom dnevno dok ga postavljate, šalje se sažetak projekta.

Pregled Okerr hibridnog sistema za nadzor

Svaki okerr indikator ima ugrađene uslove prema kojima mijenja stanje (u Zabbixu se to zove okidač). Na primjer, prosjek opterećenja ne bi trebao biti veći od 2 (naravno, ovo je podesivo). I za svaku internu provjeru (učitavanje prosjek, disk slobodan, ...) postoji watchdog. Ako iz nekog razloga ne dobijemo uspješnu potvrdu u dogovoreno vrijeme, evidentira se greška i šalje se upozorenje.

Naš uobičajeni radni obrazac je da ujutro provjeravamo e-poštu, a pored ostalih pisama pogledamo sažetak (zakazujemo ga na početku rada). Ako je u njemu sve u redu, radimo druge važne stvari (ali da bismo bili sigurni, možemo brzo pogledati u okerra instrument tablu i uvjeriti se da je sve zeleno u ovom trenutku). Ako stigne upozorenje, mi reagujemo.

Naravno, moguće je jednostavno zadržati “informativne” indikatore (da biste vidjeli sliku mreže sa monitoringa), ali sve je učinjeno da se jednostavno, lako i brzo kreiraju indikatori posebno za automatsko praćenje i slanje upozorenja.

Svrha za koju podešavate okerr je u upozorenjima, tako da možete kreirati indikator za minut, mogao bi "spavati" godinu dana, samo prihvatite ažuriranja, a kada godinu dana kasnije nešto pokvari, upali se i pošalje upozorenje. Isplatio se trenutak koji ste jednom potrošili na kreiranje indikatora; saznali ste za problem odmah, prije bilo koga drugog. Moguće je da su to popravili prije nego što je iko primijetio. Nešto što se brzo podigne ne smatra se palim!

Sigurnost

Bilo bi šteta da postavite nadgledanje radi povećanja pouzdanosti, ali kao rezultat, preko njega ste napadnuti preko mreže, a postoji dosta mrežnih ranjivosti u različitim alatima za praćenje (Zabbix, Nagios).

Agent (okerrmod iz paketa okerrupdate) koji radi na sistemu nije mrežni server, već klijent. Dakle, nema dodatnih otvorenih portova na serveru koji se nadgleda, klijent lako radi iza firewall-a ili NAT-a i vrlo ga je teško (rekao bih "nemoguće") hakovati preko mreže, jer u principu ne sluša mrežu socket.

Potpuna pokrivenost nadzorom

Sada je naše pravilo da o svim tehničkim problemima saznajemo od okerr-a. Ako se iznenada pravilo prekrši (okerr nije upozorio na njegovu neposrednu pojavu (ako je to moguće) ili da se već dogodilo) - dodajemo provjere u oker.

Eksterne provjere

Sasvim tipičan set:

  • ping
  • http status
  • provjera valjanosti i svježine SSL certifikata (upozorit će ako uskoro istekne)
  • otvorite TCP port i banner na njemu
  • http grep (stranica [ne smije] sadržavati određeni tekst)
  • sha1 hash kako bi se uhvatile promjene stranice.
  • DNS (DNS zapis mora imati određenu vrijednost)
  • WHOIS (upozorit će ako se domena pokvari)
  • Antispam DNSBL (provjera hosta na 50+ crnih lista antispama odjednom)

Interne provjere

Takođe, prilično standardan set (ali lako proširiv).

  • df (slobodan prostor na disku)
  • prosjek opterećenja
  • opentcp (otvorite TCP utičnice za slušanje - obavijestit će vas ako se nešto pokrene ili sruši)
  • vrijeme rada - samo vrijeme rada na serveru. Obavijestit će ako se promijenio (tj. server je preopterećen)
  • client_ip
  • dirsize - koristimo ga da pratimo kada rootfs naše virtuelne mašine premašuje dozvoljenu veličinu, bez uvođenja strogih ograničenja i veličine kućnih direktorijuma korisnika
  • prazno i ​​neprazno - nadgledajte datoteke koje bi trebale biti prazne (ili ne prazne). Na primjer, dnevnik grešaka samog oker servera trebao bi biti prazan, a ako u njemu postoji i red, dobiću obavijest i provjeriti. Ali mail.log na mail serveru NE bi trebao biti prazan (N minuta nakon rotacije). A ponekad je bio prazan za nas nakon ažuriranja sistema, kada logrotate nije mogao ispravno ponovo pokrenuti rsyslog.
  • linecount - broj redova u datoteci (kao wc -l). Koristimo ga kao mekšu zamjenu za prazno, kada evidencija grešaka i dalje može rasti, ali samo polako (na primjer, Googlebot pogađa neke zatvorene stranice). Postoji ograničenje od 2 reda u 20 minuta. Ako je veći, bit će upozorenje

Zanimljive interne provjere

Ako ste do sada čitali „dijagonalno“, sada će biti zanimljivije čitati pažljivije.

rezervne kopije

Nadgleda sigurnosne kopije u direktoriju. Naše sigurnosne kopije imaju nazive poput “ServerName-20200530.tar.gz”. Za svaki server u okerr-u kreira se indikator ServerName-DATE.tar.gz (stvarni datum se mijenja u red “DATE”). Prati se i samo prisustvo sveže rezervne kopije i njena veličina (na primer, ona ne može biti manja od 90% prethodne rezervne kopije).

Šta treba učiniti da bi se nova sigurnosna kopija počela pratiti nakon što smo je počeli kreirati i stavljati u ovaj direktorij? Ništa! Ovo je vrlo zgodan pristup kada ne trebate učiniti "ništa" jer:

  • Raditi "ništa" je prilično brzo, štedi vrijeme
  • Teško je zaboraviti učiniti "ništa"
  • Teško je učiniti “ništa” pogrešno, sa greškom. Ništa nije najpouzdaniji metod

Ako se iznenada prestanu pojavljivati ​​svježe sigurnosne kopije, pojavit će se upozorenje. Ako ste, na primjer, onemogućili jedan od servera, a sigurnosne kopije više ne bi trebalo biti, morat ćete obrisati indikator (preko web sučelja ili iz ljuske preko API-ja).

maxfilesz

Prati veličinu najvećih datoteka (obično: /var/log/*). Ovo vam omogućava da uhvatite nepredvidive probleme, na primjer, brute force lozinke ili slanje neželjene pošte preko servera.

runstatus/runline

Ovo su dva važna proxy modula za pokretanje drugih programa na serveru. Runstatus prijavljuje izlazni kod programa indikatoru. Na primjer, okerr ne (zahtijeva) modul za provjeru da li sistemski servisi rade. Ovo se radi preko statusa rada (pogledajte dolje). Runline - javlja serveru liniju koju program proizvodi. Na primjer, temp_RUN="cat /sys/class/thermal/thermal_zone0/temp" u Runline konfiguraciji na našem serveru kreira indikator servername:temp sa temperaturom procesora.

sql

Izvršava numerički upit za MySQL i prijavljuje rezultat indikatoru. U jednostavnom slučaju, možete učiniti, na primjer, “SELECT 1” - ovo će provjeriti da li DBMS kao cjelina radi.

Ali mnogo zanimljivija aplikacija je, na primjer, praćenje broja narudžbi u online trgovini. Ako znate da imate 100 ili više narudžbi po satu, možete postaviti minimalno ograničenje na 100 ili 80. Onda ako vam prodaja iznenada padne, dobit ćete upozorenje i to možete shvatiti.

Imajte na umu da nije važno iz kog nepredvidivog razloga se ovo dogodilo:

  • Server je jednostavno nedostupan (isključen ili bez mreže), a upozorenje je stiglo iz činjenice da je indikator „pokvaren“.
  • Server je preopterećen nečim, radi sporo ili se gube paketi, nezgodno je za korisnike i odlaze bez kupovine
  • Server je uključen u spam liste i mail sa njega se ne prihvata, korisnici se ne mogu registrovati
  • Budžet reklamne kampanje je istekao, baneri se ne vrte.

Razloga može biti mnogo, a svi se ne mogu unaprijed predvidjeti, a tehnički ih je teško pratiti. Ali možete lako pratiti konačni parametar (naredbe) i na osnovu njih utvrditi da je situacija sumnjiva i da zaslužuje da se s njom pozabavimo.

Logički indikatori

Dozvoljava upotrebu Booleovih izraza (Python sintaksa) preko modula evalidate(članak o Habréu). Podaci iz projekta i njegovi indikatori dostupni su za izražavanje. Na primjer, u gornjem poglavlju o SQL provjeri možda ste primijetili slabu tačku - danju možemo imati 100 prodaja na sat, a noću - 20, i to je uobičajeno, nije problem. Sta da radim? Indikator će noću stalno paničariti.

Možete kreirati dva indikatora, dan i noć. Učinite oba „tiša“ (neće slati upozorenja). I kreirajte logički indikator koji zahtijeva da indikator dana bude OK prije 20:00, a nakon 20:00 dovoljno je da noćni indikator bude OK.

Drugi primjer korištenja logičkog indikatora je eskalacija. Na primjer, menadžer projekta se odjavljuje od upozorenja (nema potrebe da to radi, administratori bi trebali reagirati na normalne probleme), ali se pretplaćuje na logički indikator koji postaje crven ako se bilo koji indikator u projektu ne ispravi u predviđenom vremenu.

Takođe, moguće je podesiti dozvoljeno vrijeme za rad, na primjer, od 3 do 5 sati ujutro. Nije nas briga hoće li se serveri i web lokacije rušiti za to vrijeme. Ali u 5:00 moraju da rade. Ako ne rade u bilo koje drugo vrijeme - uzbuna. Logički indikator vam takođe omogućava da uzmete u obzir redundantnost servera. Ako imate 5 web servera, onda administratori mogu isključiti 1-2 servera u bilo kojem trenutku. Ali ako ima manje od 3 od 5 servera u borbi, bit će upozorenje.

Gore navedeni primjeri nisu oker funkcije, niti neke funkcije koje je potrebno aktivirati i konfigurirati. Okerra nema sve ove funkcije, ali postoji logički modul koji vam omogućava implementaciju ove funkcionalnosti (otprilike kao u programskom jeziku - ako imamo aritmetičke operatore, onda nam nije potrebna posebna funkcija za izračun 20% PDV-a iz jezika, uvek možete sami da uradite to da odgovara vašim potrebama).

Logički indikator je vjerovatno jedna od rijetkih relativno složenih tema u okerr-u, ali dobra vijest je da ga ne morate savladati dok ne bude potrebno. Ali u isto vrijeme, oni uvelike proširuju mogućnosti, dok sam sistem održavaju prilično jednostavnim.

Dodavanje vlastitih čekova

Zaista bih želio prenijeti ideju da okerr nije skup hiljada gotovih čekova za sve prilike, već naprotiv - prije svega - jednostavan motor s jednostavnom mogućnošću kreiranja vlastitih čekova. Kreiranje vlastitih provjera u okerr-u nije zadatak za hakere, sistemske ko-programere ili barem napredne korisnike okera, već izvodljiv zadatak za svakog administratora koji je instalirao Linux po prvi put prije mjesec dana.

Kroz modul se vrše provjere minimalnih zarada runstatus:

Ova linija u konfiguraciji runstatus će vas obavijestiti ako se /bin/true iznenada ne pokrene ili vrati nešto drugo osim 0.

true_OK=/bin/true

Samo jedan red - i evo nas već malo prošireno funkcionalnost okrr.

Čak i takva provjera već ima svoju vrijednost: ako se iznenada vaš server sruši, odgovarajući indikator na serveru okerr neće biti ažuriran na vrijeme, a nakon isteka vremena pojavit će se upozorenje.

Ova provjera će obavijestiti da se apache2 server srušio (pa, nikad se ne zna...):

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

Dakle, ako govorite bilo koji programski jezik i barem možete pisati shell skripte, tada već možete dodati svoje vlastite provjere.

Još teže - možete napisati (na bilo kojem jeziku) svoj vlastiti modul za okerrmod. U najjednostavnijem slučaju to izgleda ovako:

#!/usr/bin/python3

print("STATUS: OK")

Zar nije jako teško? Modul mora sam izvršiti provjeru i poslati rezultate u STDOUT. Složeniji modul daje, na primjer, ovo:

$ 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

Ažurira nekoliko indikatora odjednom (odvojeno praznom linijom), kreira ih ako je potrebno, ukazuje na detalje verifikacije i oznaku pomoću koje je lako pronaći potrebne indikatore na kontrolnoj tabli.

telegram

Postoji Telegram bot @OkerrBot. Ne morate da zatrpate telefon zasebnim aplikacijama (ne sviđa mi se što za Pyaterochku trebate jednu aplikaciju sa mapom, za Lentu drugu, za MTS treću, i tako dalje za sve, sve, sve). Jedan telegram je dovoljan. Putem telegrama možete odmah primati upozorenja, provjeriti status projekta i dati naredbu za ponovnu provjeru svih problematičnih indikatora. Izašli smo iz pozorišta/aviona, dva sata nismo držali prst na pulsu, uključili telefon, pritisnuli jedno dugme u chatbotu i uverili se da je sve u redu.

Status Pages

Danas su statusne stranice gotovo neophodan za svaki biznis koji ima IT, odgovoran odnos prema pouzdanosti i koji se s poštovanjem odnosi prema svojim klijentima/korisnicima.

Zamislite situaciju - korisnik želi nešto učiniti, pogledati informacije ili naručiti, a nešto ne radi. Ne zna šta se dešava, na čijoj je strani problem i kada će se rešiti. Možda vaša kompanija jednostavno ima nefunkcionalnu web stranicu? Ili se pokvario prije šest mjeseci pa će se popraviti za dvije godine? Ali sad treba da kupis frizider, on je vec u kolicima... A sasvim je druga stvar kad covek vidi da sa tobom nesto nije u redu (barem je jasno da problem nije na njegovoj strani), da je problem je otkriven, da već radite na njemu, a možda čak i zapisali okvirno vrijeme za ispravku. Korisnik se može pretplatiti i dobiti e-mail obavještenje kada je problem riješen i može raditi šta želi (kupiti frižider).

Pregled Okerr hibridnog sistema za nadzor

Problemi i zastoji se dešavaju svima. Ali korisnici i partneri više vjeruju onima koji su transparentniji i odgovorniji u svom pristupu ovome.

ovdje pregled 10 drugih projekata koji vam omogućavaju da kreirate statusne stranice. Evo primjera kako izgledaju ove stranice projekta piton и Dropbox. oker status page.

failover

Kako ovaj članak ne bi bio duži, još jednom ću se osvrnuti na moj prethodni članak - Jednostavan zamjena za web stranicu . Ako možete napraviti duplikat servera, onda koristeći prelazak na grešku, u osnovi nećete imati dugo zastoje - čim se otkrije problem, korisnici će automatski biti preusmjereni na ispravan backup server. I čini mi se da je ovo vrlo zanimljiva, svijetla karakteristika koja je rijetko gdje dostupna.

Niski sistemski zahtjevi

Za oker servere koristimo mašine sa RAM memorijom od 2Gb. Za mrežne senzore je dovoljno čak 512Mb. Klijentski dio je općenito gotovo nula. (Plasticna kesa okerrupdate težak je 26 Kb, ali zahtijeva Python3 i standardne biblioteke). Klijent se pokreće iz cron skripte, tako da nema stalnu potrošnju memorije. Među mašinama koje smo pratili imamo senzore (super jeftin VPS sa 512Mb RAM-a) i Raspberry Pi. Moguće je i bez klijentskog dijela slanje ažuriranja putem curl-a! (vidi dolje)

Uzimajući ovo u obzir - okerr, vjerovatno najslobodniji sistem za praćenje od dostupnih, jer čak i da biste koristili drugi besplatni open-source sistem kao što je Zabbix ili Nagios, morate mu dodijeliti resurse (server), a to je već novac. Osim toga, još uvijek je potrebno određeno održavanje servera. Uz okerr, ovaj dio se može ukloniti. Ili ga ne morate ukloniti i koristiti vlastiti server, ovisno o tome šta vam se najviše sviđa.

API i integracija u vlasnički softver

Jednostavna i otvorena arhitektura. okerr ima prilično jednostavan API, sa kojim je lako raditi. Trebate kreirati 1000 indikatora? Jedna shell skripta od 3-4 reda će to učiniti. Trebate rekonfigurirati 1000 indikatora? Takođe je veoma lako. Na primjer, želimo još jednom provjeriti sve naše HTTPS certifikate sa ruskog 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

Možete ažurirati indikator pomoću našeg klijentskog modula, čak i bez njega, samo preko curl-a.

# 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/

Možete ažurirati indikatore direktno iz vašeg programa. Na primjer, slanje signala otkucaja srca tako da okerr zna da radi i podiže alarm ako se sruši ili zamrzne. Usput, oker komponente rade upravo to - oker nadzire sebe, a problemi u gotovo svakom modulu će biti otkriveni i generirati upozorenje o problemu. (A u slučaju ovog "skoro" - oni se unakrsno provjeravaju sa drugog servera)

Evo koda (pojednostavljenog) u našem telegram botu:

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))

Postoji biblioteka za ažuriranje indikatora iz Python programa okerrupdate, za bilo koje druge jezike ne postoje biblioteke, ali možete ili pozvati okerrupdate skriptu ili napraviti HTTP zahtjev za okerr server.

Kako nam okerr pomaže

Okerr je promijenio naše živote. Zaista. Možda bi drugi sistem za praćenje mogao učiniti isto, ali rad sa okerr-om nam je lak i jednostavan i ima sve funkcije koje su nam potrebne (dodali smo ono što nije imao). Inače, ako nedostaju neke karakteristike, pitajte i ja ću ih dodati (ne obećavam, ali želim da okerr bude najbolji sistem za praćenje malih i srednjih projekata). Ili još bolje, dodajte ga sami - lako je.

Uspjeli smo živjeti po principu „o svim problemima učite od kerre“. Ako se iznenada pojavi problem za koji nismo saznali od okerr-a, dodajemo provjeru okerr-u. (u ovom slučaju, pod „mi“ mislim na nas kao korisnike sistema, a ne kao ko-programere). U početku je to bilo uobičajeno, ali sada je postalo vrlo rijetko.

Monitoring

Preko okerr-a pratimo veličine dnevnika na svim serverima. Naravno, nemoguće je zamišljeno pročitati svaki red dnevnika očima, ali jednostavno praćenje stope rasta već daje mnogo. Kroz ovo smo otkrili slanje neželjene pošte i brute force pretrage lozinki, a kada neka od aplikacija “polude”, nešto im ne polazi za rukom i oni to ponavljaju iznova i iznova (svaki put dodajući par redaka u dnevnik ).

SSL sertifikati. Gotovo odmah nakon lansiranja LetsEncrypt naš klijent je počeo da pruža besplatne SSL sertifikate svojim klijentima (njih oko hiljadu). I ispostavilo se da je to samo pakao za administraciju! Činjenica je da su sajtovi „živi“, klijenti povremeno traže od njih da nešto urade, programeri to rade. Oni mogu potpuno slobodno prenijeti stranicu na drugi DocumentRoot, na primjer. Ili dodajte bezuvjetni Rewrite u konfiguraciju virtualnog hosta. Naravno, nakon toga dolazi do prekida automatskog obnavljanja certifikata. Sada imamo sve SSL hostove koji su automatski dodani u okerr kroz još jedan od naših korisnih uslužnih programa iz paketa a2conf. Hajde samo da pokrenemo a2okerr.py — i ako se nekoliko novih lokacija pojavi na serveru, one će se automatski pojaviti u okerr-u. Ako se iznenada iz nekog razloga sertifikat ne obnovi, tri nedelje pre isteka sertifikata, mi smo u toku, pa ćemo shvatiti zašto se ne ažurira, takav pas. a2certbot.py iz istog paketa - dosta pomaže u ovome (odmah proverava najverovatnije probleme - i napiše šta je dobro provereno, a gde je najverovatnije problem).

Pratimo datum isteka svih naših domena. I svi naši mail serveri koji šalju poštu također se provjeravaju u odnosu na 50+ različitih crnih lista. (I ponekad upadnu u njih). Usput, jeste li znali da su i Google mail serveri na crnoj listi? Samo radi samotestiranja, dodali smo mail-wr1-f54.google.com na nadgledane servere, i dalje je na crnoj listi SORBS-a! (Ovdje se radi o vrijednosti “anti-spamera”)

Sigurnosne kopije - već sam gore napisao kako ih je lako pratiti pomoću okerr-a. Ali pratimo i najnovije sigurnosne kopije na našem serveru i (koristeći poseban uslužni program koji koristi okerr) sigurnosne kopije koje otpremamo na Amazon Glacier. I, da, problemi se dešavaju s vremena na vrijeme. Nije ni čudo što su gledali.

Koristimo indikator eskalacije. Pokazuje ako neki problem nije riješen duže vrijeme. I sama, kada riješim neke probleme, ponekad mogu zaboraviti na njih. Eskalacija je dobar podsjetnik, čak i ako sami sebe nadgledate.

Sve u svemu, vjerujem da je kvalitet našeg rada porastao za red veličine. Zastoja gotovo da i nema (ili klijent nema vremena da to primijeti. Samo pssst!), dok je obim posla manji, a uslovi rada mirniji. Sa hitnog rada sa krpljenjem rupa selotejpom prešli smo na miran i odmeren rad, kada su mnogi problemi unapred predviđeni i ima vremena da ih sprečimo. Čak i problemi koji su se desili takođe su postali lakši za otklanjanje: prvo, saznamo za njih pre nego što klijenti uspaniče, a drugo, često se dešava da je problem vezan za nedavne poslove (dok sam radio jednu stvar, pokvario sam drugu) - tako da je vruće. Lakše se tragovi nose s tim.

Ali bio je još jedan slučaj...

Jeste li znali da je u popularnom Debianu 9 (Stretch) tako popularan paket kao što je phpmyadmin još uvijek (mjeseci!) u ranjivom statusu? (CVE-2019-6798). Kada se ranjivost pojavila, brzo smo je pokrili na različite načine. Ali postavio sam praćenje stranice za praćenje sigurnosti u okerr-u da znam kada će izaći “prelijepo” rješenje (preko SHA1 zbira sadržaja). Indikator mi se nekoliko puta trzao, stranica se mijenjala, ali kao što vidite, još uvijek (od januara 2019!) ne ukazuje da je problem riješen. Možda, uzgred, neko zna u čemu je problem što je tako važan paket i dalje ranjiv više od godinu dana?

Drugi put u sličnoj situaciji: nakon ranjivosti u SSH-u, bilo je potrebno ažurirati sve servere. A kada postavite zadatak, morate kontrolirati izvršenje. (Podređeni imaju tendenciju da pogrešno razumiju, zaborave, zbune se i greše). Stoga smo prvo dodali provjeru SSH verzije za okerr na svim serverima, a preko okerr-a smo se pobrinuli da se ažuriranja uvedu na sve servere. (Pogodno! Izabrao sam ovu vrstu indikatora, i odmah možete vidjeti koji server ima koju verziju). Kada smo bili sigurni da je zadatak završen na svim serverima, uklonili smo indikatore.

Par puta se desila situacija da se pojavi određeni problem, a onda sam od sebe nestane. (vjerovatno svima poznato?). Dok to primijetite, dok provjerite – a nemate šta provjeriti – sve je već dobro funkcioniralo. Ali onda opet pukne. To nam se dogodilo, na primjer, s proizvodima koje smo postavili na Amazon Marketplace (MWS). U nekom trenutku, učitani inventar je bio neispravan (pogrešne količine robe i pogrešne cijene). Shvatili smo. Ali da bismo to shvatili, bilo je važno odmah saznati za problem. Nažalost, MWS je, kao i svi Amazon servisi, malo spor, tako da je uvijek bilo kašnjenja, ali ipak smo uspjeli barem približno shvatiti vezu između problema i skripti koje ga uzrokuju (provjerili smo, zaglavili smo to okerr-u i odmah ga provjerio primivši upozorenje).

Nedavno je u kolekciju dodao jedan interesantan kofer od velikog i skupog evropskog hostera koji koristi naš kupac. Odjednom su SVI naši serveri nestali sa radara! Prvo je sam kupac (brže od okerre!) primijetio da se stranica s kojom je radio ne otvara i napravio tiket o tome. Ali nije pala samo jedna lokacija, već sve! (Natasha, sve smo ispustili!). Ovdje je Okerr počeo slati dugačke obloge za stopala sa svim indikatorima koji su mu upalili. Panika, panika, trčimo se u krug (šta drugo možemo?). Onda se sve podiglo. Ispostavilo se da je bilo rutinskog održavanja u data centru (jednom u više godina) i, naravno, trebalo je da budemo upozoreni. Ali desio im se neki problem i nisu nas upozorili. Pa, više srčanih udara, manje srčanih udara. Ali nakon vraćanja svega, morate sve još jednom provjeriti! Ne mogu da zamislim kako bih to uradio svojim rukama. Okerr je sve testirao za nekoliko minuta. Ispostavilo se da je većina servera jednostavno bila privremeno nedostupna, ali su radili. Neki su bili preopterećeni, ali i ustali kako treba. Od svih gubitaka, izgubili smo dvije rezervne kopije, koje je po kruni trebalo napraviti i učitati dok je trajala ova puna banana. Nisam se ni trudio da ih kreiram, samo dan kasnije stigla su upozorenja da je sve u redu, pojavile su se sigurnosne kopije. Jako mi se sviđa ovaj primjer jer se okerr pokazao vrlo korisnim u situaciji o kojoj nismo unaprijed ni razmišljali, ali to je svrha praćenja - oduprijeti se nepredvidivom.

Za Okerr senzore koristimo najjeftiniji mogući hosting (gdje kvalitet i pouzdanost nisu bitni, oni se međusobno osiguravaju). Dakle, nedavno smo pronašli vrlo dobar hosting i super jeftin, mjerila su odlična. Ali... ponekad se ispostavi da su odlazne veze sa virtuelne mašine napravljene sa druge (susedne) IP adrese. Čuda. Client_ip modul sa https://diagnostic.opendns.com/myip dobije pogrešan IP. A iz evidencije servera indikatora jasno je da je ažuriranje takođe došlo sa ove susedne IP adrese. Pozabavimo se sada podrškom. Dobro je da smo to primetili u mirnodopskim vremenima. Ali, na primjer, često se dešava da se pristup registruje prema IP bijeloj listi - a ako server ponekad kratko treperi ovako - možete pokušavati da uhvatite ovaj problem jako dugo.

Pa, još nešto – pošto govorimo o VPS hostingu – uvijek koristimo jeftine (hetzner, ovh, scaleway). Zaista mi se sviđa iu pogledu mjerila i stabilnosti. Koristimo i mnogo skuplji Amazon EC2 za druge projekte. Dakle, zahvaljujući okerr-u, imamo vlastito utemeljeno mišljenje. Oboje padaju. I ne bih rekao da su se tokom dugog perioda naših posmatranja jeftini hostingi poput hetznera pokazali znatno manje stabilnima od EC2. Stoga, ako niste vezani za druge funkcije Amazona, zašto plaćati više? 🙂

Što je sljedeće?

Ako vas u ovoj fazi još nisam uplašio od Okera, pokušajte! Možete ići direktno na ovaj link okerr demo račun (Kliknite sada!) Ali imajte na umu da postoji samo jedan demo nalog za sve, tako da ako nešto uradite, neko drugi na istom nalogu može da vam smeta u isto vreme. Ili (bolje) registrirajte se putem linka na offsite okerr - sve je jednostavno, bez SMS-a. Ako ne volite da koristite svoju pravu e-poštu, možete koristiti jednokratnu, kao što je mailinator (preporučujem getnada.com). Takvi nalozi mogu biti obrisani tokom vremena, ali će biti u redu za testiranje.

Nakon registracije, od vas će se tražiti da prođete obuku (izvršite nekoliko ne baš teških zadataka obuke). Početni limiti su vrlo mali, ali za trening ili jedan server su dovoljni. Nakon završetka obuke, granice (na primjer, maksimalni broj indikatora) će se povećati.

Iz dokumentacije - prije svega WIKI na strani servera i na klijentu (okerrupdate wiki). Ali ako nešto nije jasno, pišite podršci (na) okerr.com ili ostavite kartu - pokušat ćemo sve brzo riješiti.

Ako ga ozbiljno koristite i ovi povećani limiti nisu dovoljni, pišite podršci i mi ćemo ih povećati (besplatno).

Želite li instalirati okerr server na vaš server? Evo okerr-dev spremište. Preporučujemo instalaciju na čistu virtuelnu mašinu, a onda to jednostavno možete učiniti pomoću instalacijske skripte. Na vašoj virtuelnoj mašini - bez ograničenja :-). Pa, opet, ako se nešto desi, uvijek ćemo pokušati pomoći.

Želimo da ovaj projekat krene, kako bi svijet zahvaljujući nama postao pouzdaniji. Zahvaljujući besplatnom softveru i uslugama, svijet je postao prijateljskiji i dinamičniji se razvija. Izvori se mogu pohraniti u besplatni github, a za poštu možete koristiti besplatni gmail. Koristimo besplatno svježi proizvodi za podršku. Za bilo šta od ovoga ne morate da plaćate servere, ne morate da preuzimate i konfigurišete, i ne morate da rešavate razne operativne probleme. Svaki novi projekat, svaki tim odmah ima poštu, spremišta i CRM. I sve je to vrlo kvalitetno i besplatno i odmah. Želimo da tako bude i za praćenje - male kompanije i projekti mogu besplatno koristiti oker, a čak iu fazi rođenja i rasta imaju pouzdanost ozbiljnih projekata za odrasle.

izvor: www.habr.com