Okerr monitorizazio sistema hibridoaren ikuspegi orokorra

Duela bi urte jada egin nuen post bat Webgune baterako hutsegite sinplea buruz okerr. Orain proiektuaren garapena dago, eta argitaratu ere egin nuen okerr zerbitzariaren alboko iturburu-kodea beherako lizentzia irekia, horregatik erabaki nuen Habr-en kritika labur hau idaztea.

Okerr monitorizazio sistema hibridoaren ikuspegi orokorra
[ tamaina osoa ]

Nori interesatzen zaion

Hau interesgarria izan daiteke talde txikian edo bakarrik lan egiten baduzu. Ez duzu monitorizaziorik eta ez dakizu ziur benetan behar duzun ala ez. Edo "mutil handientzako" monitorizazio serio ezagun bat probatu zenuen, baina nolabait "ez zen kendu" zuretzako, edo ia konfigurazio lehenetsian funtzionatzen du eta ez dizu bizitza asko aldatu. Eta, gainera, behin betiko langile osoa (edo sail bat ere) esleitzeko asmoa ez baduzu, jarraipen-panela egunean gutxienez ordu pare bat kontrolatzeko edo konfiguratzeko.

Zergatik okerr ezohikoa da

Jarraian, okerraren ezaugarri interesgarriak erakutsiko ditut beste monitorizazio sistema batzuetatik bereizten duten.

Okerr monitorizazio hibrido bat da

Barne monitorizazioan, "agente" bat exekutatzen ari da monitorizatutako makinetan, eta datuak monitorizazio zerbitzariari transmititzen dizkio (adibidez, disko libreko espazioa). Kanpokoa denean, zerbitzariak egiaztapenak egiten ditu sarean (adibidez, ping-a edo webgunearen erabilgarritasuna). Planteamendu bakoitzak bere mugak ditu. Okerrek bi aukerak erabiltzen ditu. Zerbitzarien barruko egiaztapenak oso arin (30Kb) agente batek edo zure script eta aplikazio propioak egiten ditu, eta sareko egiaztapenak herrialde ezberdinetako okerr sentsoreen bidez egiten dira.

okerr ez da softwarea soilik, zerbitzu bat ere bada

Edozein monitorizazioren zerbitzariaren zatia handia eta konplexua da, zaila da instalatzea eta konfiguratzea eta baliabideak behar ditu. Okerr-ekin zure monitorizazio zerbitzaria instalatu dezakezu (doakoa eta kode irekikoa da), edo besterik gabe, bezeroaren zatia bakarrik erabil dezakezu eta gure zerbitzariaren zerbitzua erabili. Doan ere.

Monitorizazioak zerbitzarien eta aplikazioen fidagarritasun eza konpentsatzeko eta estaltzeko aukera ematen badu, galdera filosofiko bat sortzen da: nor da guardia? Nola jakinaraziko digu monitorizazioak arazo baten berri, arrazoiren batengatik bera "hil" bada, bereizita edo zure beste baliabideekin batera (adibidez, datu-zentrorako kanala erori egin zen)? Kanpoko zerbitzua okerr erabiltzean - arazo hau konponduta dago - alerta bat jasoko duzu zure zerbitzariekin datu-zentro osoa energiarik gabe edo zonbiek erasotzen badute ere.

Jakina, arriskua dago okerr zerbitzaria bera erabilgarri ez egotea, hori egia da (dakizuenez, fidagarritasunaren % 90 beti lortzen da soil eta "doan", % 99 ahalegin minimo batekin, eta ondorengo bederatzi bakoitza da. esponentzialki zailagoa). Baina, lehenik, hori gertatzeko aukerak txikiagoak dira, eta, bigarrenik, arazoa oharkabean pasa daiteke gure zerbitzarietako arazoekin bat badator. % 99.9ko fidagarritasuna badugu, eta % 99.9koa (zenbaki handiegiak ez), orduan detektatu gabeko hutsegite bat izateko aukera % 0.1eko % 0.1 = % 0.0001 da. Zure fidagarritasunari hiru bederatzi gehitzea ia ahaleginik gabe eta kosturik gabe oso ona da!

Zerbitzu gisa monitorizazioaren beste abantaila bat ostalaritza-hornitzaile edo web estudio batek okerr zerbitzari bat instalatu eta bezeroei sarbidea eman diezaiekeela ordainpeko edo doako zerbitzu osagarri gisa. Zure lehiakideek hostinga eta webguneak besterik ez dituzte, baina ostatu fidagarria duzu monitorizazioarekin.

Okerr adierazleei buruzkoa da

Adierazlea "bonbilla" bat da. Bi egoera nagusi ditu: berdea (OK) edo gorria (ERR). Proiektuak taldekatutako (adibidez, zerbitzariaren arabera) adierazle asko ditu. Proiektuaren orrialde nagusian, berehala ikusten duzu dena berdea dela (eta itxi dezakezula), edo zerbait gorriz piztuta dagoela eta zuzendu behar dela. Egoera horien arteko trantsizioan, alerta bat bidaltzen da. Egunean behin konfiguratzen ari zaren bitartean, proiektuaren laburpena bidaltzen da.

Okerr monitorizazio sistema hibridoaren ikuspegi orokorra

Okerr adierazle bakoitzak egoera aldatzeko baldintzak ditu (Zabbixen abiarazlea deitzen zaio). Adibidez, kargaren batez bestekoa ez da 2 baino gehiago izan behar (noski, hau konfiguragarria da). Eta barne egiaztapen bakoitzeko (karga batez bestekoa, disko librea, ...) zaintzaile bat dago. Arrazoiren batengatik ez badugu berrespen arrakastatsurik jasotzen ezarritako orduan, errore bat erregistratuko da eta alerta bat bidaliko da.

Gure ohiko lan eredua goizean mezu elektronikoak egiaztatzea da, eta laburpena beste gutun batzuen artean begiratzea (lanaren hasieran programatzen dugu). Bertan dena ondo badago, beste gauza garrantzitsu batzuk egiten ditugu (baina seguru egoteko, okerraren aginte-panela azkar begiratu eta momentu honetan dena berde dagoela ziurtatu dezakegu). Alerta bat iristen bada, erreakzionatzen dugu.

Jakina, posible da adierazle "informatiboak" besterik gabe gordetzea (sarearen irudia monitorizatzetik ikusteko), baina dena egiten da, besterik gabe, erraz eta azkar adierazleak monitorizazio automatikorako eta alertak bidaltzeko bereziki.

Okerr konfiguratzen ari zaren helburua abisuetan dago, eta, beraz, minutu batean adierazle bat sor dezakezu, urtebetez "lo egin" dezake, eguneratzeak onartu besterik ez dago, eta urtebete geroago zerbait apurtzen denean, argitu eta bidaltzen du. alerta bat. Adierazle bat sortzen eman zenuen minutuak emaitza eman zuen; berehala ezagutu zenuen arazoaren berri, inork baino lehen. Baliteke inor konturatu baino lehen konpondu izana. Azkar altxatzen den zerbait ez da erori denik!

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

Pena izango litzateke fidagarritasuna areagotzeko monitorizazioa konfiguratzen baduzu, baina, ondorioz, sarearen bidez erasotzen zaituzte, eta sareko ahultasun asko daude monitorizazio tresna ezberdinetan (Zabbix, Nagios).

Agentea (okerrmod paketetik okerrupdate) sisteman exekutatzen ari den ez da sareko zerbitzari bat, bezero bat baizik. Hori dela eta, monitorizatutako zerbitzarian ez dago portu irekirik, bezeroak erraz lan egiten du suebaki edo NAT baten atzean eta oso zaila da ("ezinezkoa" esango nuke) sarean hackeatzea, printzipioz ez baitu sarea entzuten. entxufea.

Jarraipen-estaldura osoa

Orain gure araua da arazo tekniko guztiak okerr-etik ikasten ditugula. Bat-batean araua urratzen bada (okerr-ek ez du ohartarazi bere berehalako agerraldiaz (hau posible bada) edo dagoeneko gertatu dela) - okerr-i egiaztapenak gehitzen dizkiogu.

Kanpoko egiaztapenak

Nahiko multzo tipikoa:

  • ping
  • http egoera
  • SSL ziurtagiriaren baliozkotasuna eta freskotasuna egiaztatzea (iraungitzear dagoen abisatuko du)
  • ireki TCP ataka eta pankarta bertan
  • http grep (orriak [ez du] testu jakinik eduki)
  • sha1 hash orrien aldaketak atzemateko.
  • DNS (DNS erregistroak balio zehatz bat izan behar du)
  • WHOIS (domeinua hondatzear dagoen abisatuko du)
  • Spamaren aurkako DNSBL (ostalariaren egiaztapena aldi berean spamaren aurkako 50+ zerrenda beltzen aurka)

Barne egiaztapenak

Gainera, nahiko multzo estandarra (baina erraz zabal daitekeena).

  • df (diskoko espazio librea)
  • karga batez bestekoa
  • opentcp (TCP entzuteko socket irekiak - zerbait hasi edo huts egiten bada jakinaraziko du)
  • uptime - zerbitzariaren funtzionamendu-denbora besterik ez. Aldatu egin den jakinaraziko du (hau da, zerbitzaria gainkargatu den)
  • bezero_ip
  • dirsize - gure makina birtualeko rootf-ek baimendutako tamaina gainditzen dutenean jarraitzeko erabiltzen dugu, murrizketa zorrotzik sartu gabe eta erabiltzailearen etxeko direktorioen tamaina
  • hutsik eta ez hutsik - kontrolatu hutsik (edo hutsik ez) egon behar duten fitxategiak. Adibidez, okerr zerbitzariaren beraren errore-erregistroak hutsik egon behar du, eta lerro bat ere badago, jakinarazpen bat jasoko dut eta egiaztatuko dut. Baina posta-zerbitzariko mail.log EZ da hutsik egon behar (N minutu biraketa ondoren). Eta batzuetan hutsik zegoen sistema eguneratu ondoren, logrotate ezin izan zuenean rsyslog behar bezala berrabiarazi.
  • linecount - fitxategiko lerro kopurua (wc -l bezala). Hutsaren ordezko leunago gisa erabiltzen dugu, errore-erregistroa oraindik hazten denean, baina poliki-poliki (adibidez, Googlebot-ek itxitako orrialde batzuetara jotzen du). 2 minututan 20 lerroko muga dago. Goiagoa bada, alerta bat egongo da

Barne egiaztapen interesgarriak

Orain arte β€œdiagonalean” irakurtzen aritu bazara, orain interesgarriagoa izango da arreta handiagoz irakurtzea.

backups

Direktorioko babeskopiak kontrolatzen ditu. Gure babeskopien fitxategiek "ServerName-20200530.tar.gz" bezalako izenak dituzte. Okerr-eko zerbitzari bakoitzeko, ServerName-DATE.tar.gz adierazlea sortzen da (benetako data "DATE" lerrora aldatzen da). Babeskopia berri baten presentzia bera eta haren tamaina ere kontrolatzen dira (adibidez, ezin da izan aurreko babeskopiaren % 90 baino gutxiago).

Zer egin behar da babeskopia berri bat jarraipena egiten hasteko, sortzen hasi eta direktorio honetan jartzen hasi ondoren? Ezer ez! Hau oso erosoa da "ezer ez" egin behar duzunean, zeren eta:

  • "Ezer ez" egitea nahiko azkarra da, denbora aurrezten du
  • Zaila da "ezer ez" egitea ahaztea
  • Zaila da "ezer" gaizki egitea, akats batekin. Ezer ez da metodo fidagarriena

Bat-batean babeskopia-fitxategi freskoak agertzeari uzten badiote, alerta bat egongo da. Esaterako, zerbitzarietako bat desgaitu baduzu, eta babeskopia gehiago egon behar ez baduzu, adierazlea ezabatu beharko duzu (web interfazearen bidez edo shell-etik APIaren bidez).

maxfilesz

Fitxategi handienen tamainaren jarraipena egiten du (normalean: /var/log/*). Horrek ezusteko arazoak harrapatzeko aukera ematen du, adibidez, indar gordinaren pasahitzak edo spam-a zerbitzariaren bidez bidaltzea.

runstatus/runline

Hauek bi proxy modulu garrantzitsu dira zerbitzarian beste programa batzuk exekutatzeko. Runstatus programaren irteera kodearen berri ematen dio adierazleari. Adibidez, okerr-ek ez du (behar) modulurik systemd zerbitzuak exekutatzen ari direla egiaztatzeko. Hau runstatus bidez egiten da (ikus behean). Runline - programak sortzen duen lerroaren berri ematen dio zerbitzariari. Adibidez, temp_RUN="cat /sys/class/thermal/thermal_zone0/temp" gure zerbitzariko Runline konfigurazioan zerbitzariaren izena:temp adierazle bat sortzen du prozesadorearen tenperaturarekin.

sql

Zenbakizko kontsulta bat exekutatzen du MySQL-ri eta emaitzaren berri ematen dio adierazleari. Kasu sinple batean, adibidez, "HAUSTU 1" egin dezakezu; honek DBMS osoak funtzionatzen duela egiaztatuko du.

Baina askoz aplikazio interesgarriagoa da, adibidez, lineako denda bateko eskaera kopuruaren jarraipena egitea. Badakizu orduko 100 eskaera edo gehiago dituzula, gutxieneko muga 100 edo 80ean ezar dezakezu. Orduan zure salmentak bat-batean jaisten badira, alerta bat jasoko duzu eta asmatu ahal izango duzu.

Kontuan izan ez duela ezusteko arrazoiengatik gertatu den:

  • Zerbitzaria besterik gabe ez dago erabilgarri (energiarik gabe edo sarerik gabe), eta adierazlea "ustelduta" zegoelako izan zen alerta.
  • Zerbitzaria zerbaitez gainkargatuta dago, poliki funtzionatzen du edo paketeak galtzen dira, erabiltzaileentzat deserosoa da eta erosketarik egin gabe uzten dute
  • Zerbitzaria spam zerrendetan sartuta dago eta bertatik bidalitako posta ez da onartzen, erabiltzaileek ezin dute erregistratu
  • Publizitate kanpainaren aurrekontua agortu da, pankartak ez dira biraka.

Arrazoi ugari egon daitezke, eta horiek guztiak ezin dira aldez aurretik aurreikusi, eta teknikoki zaila da jarraipena egitea. Baina azken parametroa (aginduak) ondo kontrolatu dezakezu eta horietatik egoera susmagarria dela eta aurre egitea merezi duela zehaztu dezakezu.

Adierazle logikoak

Modulu baten bidez adierazpen boolearrak (Python sintaxia) erabiltzeko aukera ematen du balioztatu(HabrΓ©ri buruzko artikulua). Proiektuaren datuak eta bere adierazleak adierazteko eskuragarri daude. Adibidez, goiko SQL egiaztapenari buruzko kapituluan, baliteke puntu ahul bat nabaritzea - ​​egunean zehar 100 salmenta orduko izan ditzakegu, baina gauez - 20, eta hori ohikoa da, ez da arazo bat. Zer egin beharko nuke? Adierazlea gauez etengabe izutuko da.

Bi adierazle sor ditzakezu, eguna eta gaua. Egin biak β€œisil” (ez dute alertarik bidaliko). Eta sortu adierazle logiko bat, eguneko adierazlea 20:00ak baino lehen ondo egotea eskatzen duena, eta 20:00etatik aurrera nahikoa da gaueko adierazlea ondo egotea.

Adierazle logiko bat erabiltzearen beste adibide bat da eskalada. Adibidez, proiektuaren kudeatzaile batek abisuetatik kentzen du (ez du hori egin beharrik, administratzaileek arazo arruntei erantzun beharko diete), baina gorri bihurtzen den adierazle logiko batera harpidetzen da, baldin eta proiektuko adierazleren bat zuzentzen ez bada emandako denboran.

Gainera, lan egiteko baimendutako ordua ezar daiteke, adibidez, goizeko 3etatik 5etara. Berdin zaigu denbora horretan zerbitzariak eta guneak huts egitea. Baina 5:00etan lan egin behar dute. Beste edozein momentutan funtzionatzen ez badute - erne. Adierazle logikoak zerbitzariaren erredundantzia ere kontuan hartzeko aukera ematen du. 5 web zerbitzari badituzu, administratzaileek 1-2 zerbitzari desaktibatu ditzakete edozein unetan. Baina borrokan 3 zerbitzaritik 5 baino gutxiago badaude, alerta bat egongo da.

Goiko adibideak ez dira oker funtzioak, ez aktibatu eta konfiguratu behar diren funtzio batzuk. Okerrak ez ditu funtzio horiek guztiak, baina badago funtzionaltasun hori inplementatzeko aukera ematen duen modulu logiko bat (Gutxi gorabehera programazio-lengoaia batean bezala - operadore aritmetikoak baditugu, orduan ez dugu funtzio berezirik behar %20ko BEZa kalkulatzeko. hizkuntzatik, beti egin dezakezu zure beharretara egokitzeko).

Adierazle logikoa seguruenik okerr-eko gai nahiko konplexuetako bat da, baina berri ona da ez duzula menperatu behar arte. Baina, aldi berean, gaitasunak asko zabaltzen dituzte, sistema nahiko sinplea mantenduz.

Zure txekeak gehitzea

Benetan helarazi nahiko nuke okerr ez dela une guztietarako prest egindako milaka egiaztapenen multzoa, baizik eta aitzitik, lehenik eta behin, zure egiaztapenak sortzeko gaitasuna duen motor soil bat. Okerr-en zure egiaztapenak sortzea ez da hackerren, sistemaren garatzaileen artean edo, gutxienez, okerr-en erabiltzaile aurreratuen zeregina, baizik eta duela hilabete Linux lehen aldiz instalatu zuen edozein administratzaileentzako zeregina.

Gutxieneko soldataren egiaztapenak moduluaren bidez egiten dira runstatus:

Lerro hau konfigurazioan runstatus /bin/true bat-batean hasten ez bada edo 0 ez den beste zerbait itzultzen badu jakinaraziko dizu.

true_OK=/bin/true

Lerro bat besterik ez - eta hemen gaude dagoeneko pixka bat zabaldu funtzionaltasuna okerr.

Egiaztapen horrek badu bere balioa ere: bat-batean zure zerbitzaria huts egiten badu, okerr zerbitzarian dagokion adierazlea ez da garaiz eguneratuko, eta denbora igaro ondoren, alerta bat agertuko da.

Egiaztapen honek apache2 zerbitzaria huts egin duela jakinaraziko du (beno, ez dakizu inoiz...):

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

Beraz, edozein programazio-lengoaia hitz egiten baduzu, eta gutxienez shell script-ak idazten badituzu, dagoeneko zure egiaztapenak gehi ditzakezu.

Zailagoa - okerrmoderako zure modulua idatz dezakezu (edozein hizkuntzatan). Kasurik sinpleenean itxura hau:

#!/usr/bin/python3

print("STATUS: OK")

Ez al da oso zaila? Moduluak berak egin behar du egiaztapena eta emaitzak STDOUT-era atera. Modulu konplexuago batek, adibidez, hau ematen du:

$ 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

Hainbat adierazle eguneratzen ditu aldi berean (lerro huts batez bereizita), behar izanez gero sortzen ditu, egiaztapen xehetasunak eta etiketa bat adierazten du, zeinaren bidez erraz aurki daitezkeen beharrezko adierazleak arbelean.

Telegrama

Telegram bot bat dago @OkerrBot. Ez duzu zure telefonoa nahastu behar aplikazio bereiziekin (ez zait gustatzen Pyaterochka-ri aplikazio bat mapa batekin behar duzula, Lentarako beste bat, MTSrako hirugarren bat, eta abar guztiontzat, denentzat). Telegrama bat nahikoa da. Telegram bidez berehala jaso ditzakezu alertak, proiektuaren egoera egiaztatu eta arazo-adierazle guztiak berriro egiaztatzeko komando bat eman. Antzokitik/hegazkinetik irten ginen, bi orduz ez genuen hatza pultsuan mantendu, telefonoa piztu, txatboteko botoi bat sakatu eta dena ondo zegoela ziurtatu genuen.

Egoera-orriak

Gaur egun, egoera-orriak ia ezinbestekoak dira informatika duen edozein negoziorentzat, fidagarritasunarekiko jarrera arduratsua eta bezero/erabiltzaileak errespetuz tratatzen dituena.

Imajinatu egoera bat: erabiltzaile batek zerbait egin, informazioa ikusi edo eskaera egin nahi du, eta zerbaitek ez du funtzionatzen. Ez daki zer gertatzen ari den, noren alde dagoen arazoa eta noiz konponduko den. Agian zure enpresak webgune ez-funtzionala besterik ez du? Edo duela sei hilabete hautsi zen eta bi urte barru konponduko da? Baina orain hozkailu bat erosi behar duzu, dagoeneko gurdian dago... Eta guztiz bestelakoa da pertsona batek zerbait gaizki dagoela ikusten duenean (argi dago behintzat arazoa ez dagoela bere alde), arazoa aurkitu da, dagoeneko lanean ari zarela, eta agian zuzentzeko gutxi gorabeherako denbora ere idatzi du. Erabiltzaileak harpidetu eta posta elektroniko bidezko jakinarazpena jaso dezake arazoa konpontzen denean eta nahi duena egin dezake (hozkailu bat erosi).

Okerr monitorizazio sistema hibridoaren ikuspegi orokorra

Arazoak eta geldialdiak denei gertatzen zaizkie. Baina erabiltzaileek eta bazkideek gehiago fidatzen dute honen inguruan gardenagoak eta arduratsuagoak direnengan.

Hemen egoera-orriak sortzeko aukera ematen duten beste 10 proiekturen berrikuspena. Hona hemen proiektu-orri hauen itxuraren adibideak Python ΠΈ Dropbox. okerr egoera orria.

Failover

Artikulu hau are luzeagoa izan ez dadin, berriro ere nire aurreko artikulua aipatuko dut - Webgune baterako hutsegite sinplea . Bikoiztutako zerbitzari bat egin dezakezun, hutsegitea erabiliz gero, funtsean, ez duzu geldialdi luzerik izango; arazo bat detektatu bezain laster, erabiltzaileak automatikoki funtzionatzen duen babeskopia zerbitzari batera birbideratuko dira. Eta oso ezaugarri interesgarria eta distiratsua dela iruditzen zait, inon oso gutxitan eskuragarri dagoena.

Sistemaren eskakizun baxuak

Okerr zerbitzarietarako, 2Gb-ko RAMa duten makinak erabiltzen ditugu. Sare-sentsoreetarako, 512Mb ere nahikoa da. Bezeroaren zatia, oro har, ia zero da. (Plastikozko poltsa okerrupdate 26 Kb pisatzen du, baina Python3 eta liburutegi estandarrak behar ditu). Bezeroak cron script batetik exekutatzen du, beraz, ez du memoria-kontsumo iraunkorrik. Monitorizatu ditugun makinen artean, sentsoreak (512 Mb RAM dituen VPS super merkeak) eta Raspberry Pi bat ditugu. Posible da bezeroaren zatirik gabe ere bidali eguneraketak curl bidez! (ikus behean)

Hau kontuan hartuta - okerr, ziurrenik libreenak eskuragarri daudenetatik monitorizazio sistema, Zabbix edo Nagios bezalako kode irekiko beste sistema libre bat erabiltzeko ere baliabideak (zerbitzaria) esleitu behar dizkiozu, eta hori jada dirua da. Gainera, zerbitzariaren mantentze-lan batzuk behar dira oraindik. Okerr-ekin, zati hau kendu daiteke. Edo ez duzu kendu beharrik eta zure zerbitzaria erabili behar, gehien gustatzen zaizunaren arabera.

APIa eta jabedun softwarean integratzea

Arkitektura sinplea eta irekia. okerr-ek nahiko sinplea du API, lan egiteko erraza dena. 1000 adierazle sortu behar dituzu? 3-4 lerroko shell script batek egingo du. 1000 adierazle birkonfiguratu behar dituzu? Gainera, oso erraza da. Adibidez, gure HTTPS ziurtagiri guztiak birritan egiaztatu nahi ditugu Errusiako sentsore batetik:

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

Adierazlea eguneratu dezakezu gure bezero-modulua erabiliz, berau gabe ere, kizkur bidez.

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

Adierazleak zuzenean egunera ditzakezu zure programatik. Adibidez, bihotz-taupadak bidaltzea, okerr-ek martxan dagoela jakin dezan eta alarma bat piztuko du huts egiten badu edo izozten bada. Bide batez, okerr osagaiek hori egiten dute - okerr-ek bere burua kontrolatzen du, eta ia edozein modulutako arazoak detektatuko dira eta arazoari buruzko alerta bat sortuko da. (Eta "ia" honen kasuan - beste zerbitzari batetik egiaztatzen dira)

Hona hemen kodea (sinplifikatua) gure telegram bot-an:

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

Python programetako adierazleak eguneratzeko liburutegi bat dago okerrupdate, beste edozein hizkuntzatarako ez dago liburutegirik, baina okerrupdate script-era deitu edo HTTP eskaera egin dezakezu okerr zerbitzariari.

Nola laguntzen digun okerr

Okerrek gure bizitza aldatu zuen. Hain zuzen ere. Agian beste monitorizazio sistema batek ere gauza bera egin dezake, baina okerr-ekin lan egitea erraza eta erraza da guretzat eta behar genituen funtzio guztiak ditu (ez zuena gehitu genuen). Bide batez, ezaugarri batzuk falta badira, galdetu eta gehituko ditut (ez dut agintzen, baina okerr proiektu txiki-ertainen jarraipen-sistemarik onena izatea nahi dut). Edo hobeto esanda, gehitu zuk zeuk - erraza da.

"Arazo guztiak kerratik ikasi" printzipioaren arabera bizitzea lortu genuen. Bat-batean okerr-etik ezagutu ez dugun arazoren bat gertatzen bada, okerr-en kontrol bat gehitzen dugu. (kasu honetan, β€œgu” hitzarekin sistemaren erabiltzaile gisa esan nahi dut, ez garatzailekideok). Hasieran ohikoa zen, baina orain oso arraroa bihurtu da.

jarraipenaren

Okerr-en bidez zerbitzari guztietan log-tamainen jarraipena egiten dugu. Noski, ezinezkoa da erregistroko lerro guztiak begiekin irakurtzea, baina hazkunde-tasa kontrolatzeak asko ematen du dagoeneko. Honen bidez, spam mezularitza eta indar gordineko pasahitzen bilaketak aurkitu genituen, eta aplikazio batzuk "zoratu egiten" direnean, zerbaitek ez die funtzionatzen eta behin eta berriz errepikatzen dute (aldiro erregistroan lerro pare bat gehituz). ).

SSL ziurtagiriak. Abian jarri eta ia berehala Enkriptatu dezagun gure bezeroa doako SSL ziurtagiriak ematen hasi zen bere bezeroei (horietako mila inguru). Eta administrazioarentzat infernua besterik ez da izan! Kontua da guneak "zuzenean" daudela, bezeroek aldian-aldian zerbait egiteko eskatzen diete, programatzaileek egiten dute. Erabat libreki transferi dezakete gunea beste DocumentRoot batera, adibidez. Edo gehitu baldintzarik gabeko Berridazketa bat virtualhost konfigurazioari. Jakina, honen ondoren, ziurtagirien berritze automatikoa apurtzen da. Orain SSL ostalari guztiak okerr-era gehitu ditugu automatikoki paketeko gure erabilgarritasun erabilgarrietako beste baten bidez a2konf. Abiarazi dezagun a2okerr.py β€” eta zerbitzarian hainbat gune berri agertzen badira, automatikoki okerr-en agertuko dira. Bat-batean, arrazoiren batengatik ziurtagiria berritzen ez bada, ziurtagiria iraungi baino hiru aste lehenago, jakinaren gainean gaude, eta jakingo dugu zergatik ez den eguneratzen, halako txakur bat. a2certbot.py pakete beretik -horretan asko laguntzen du (berehala egiaztatzen ditu arazo seguruenak- eta ondo idazten du egiaztatutakoa, eta ziurrenik arazoren bat dagoen lekuan).

Gure domeinu guztien iraungitze-data kontrolatzen dugu. Eta posta bidaltzen duten gure posta-zerbitzari guztiak ere 50+ zerrenda beltz ezberdinekin konprobatuta daude. (Eta batzuetan haiengan erortzen dira). Bide batez, ba al zenekien Google posta zerbitzariak ere zerrenda beltzean daudela? Auto-probak egiteko soilik, mail-wr1-f54.google.com gehitu dugu kontrolatutako zerbitzarietan, eta SORBS zerrenda beltzean dago oraindik! (Hau "spammer-en aurkako" balioari buruzkoa da)

Segurtasun-kopiak - Goian idatzi nuen zein erraza den okerr-ekin kontrolatzea. Baina gure zerbitzariko azken babeskopiak eta (okerr erabiltzen duen utilitate bereizia erabiliz) Amazon Glacier-era kargatzen ditugun babeskopiak kontrolatzen ditugu. Eta, bai, arazoak noizean behin gertatzen dira. Ez da harritzekoa ikusten ari zirela.

Eskalatzeko adierazlea erabiltzen dugu. Arazoren bat denbora luzez konpondu ez den erakusten du. Eta nik neuk, arazo batzuk konpontzen ditudanean, batzuetan ahaztu egiten naiz. Eskalada oroigarri ona da, nahiz eta zure burua kontrolatzen ari zaren.

Orokorrean, gure lanaren kalitatea handitu egin dela uste dut. Ia ez dago geldialdi-denborarik (edo bezeroak ez du ohartzeko astirik. shh!), lan-kopurua txikiagotu eta lan-baldintzak lasaitu. Zintarekin zuloak adabakiz larrialdiko lanetatik lan lasai eta neurtu batera pasatu gara, arazo asko aurreikusten direnean eta horiek saihesteko denbora dagoenean. Gertatutako arazoak ere konpontzen errazagoak izan dira: lehenik eta behin, bezeroak izutu baino lehen ezagutzen ditugu eta, bigarrenik, askotan gertatzen da arazoa azken lanekin lotuta dagoela (gauza bat egiten ari nintzen bitartean beste bat hautsi nuen) - beraz, beroa da aztarnek errazago aurre egitea.

Baina beste kasu bat zegoen...

Ba al zenekien Debian 9 (Stretch) ezagunean phpmyadmin bezalako pakete ezagun batek oraindik (hilabete askotan!) egoera zaurgarrian dagoela? (CVE-2019-6798). Zaurgarritasuna agertu zenean, azkar estali genuen modu ezberdinetan. Baina okerr-en segurtasun-jarraitzaile orriaren jarraipena konfiguratu dut irtenbide "eder" bat noiz aterako den jakiteko (edukiaren SHA1 baturaren bidez). Adierazleak hainbat aldiz kikildu ninduen, orria aldatu egin zen, baina ikusten duzunez, oraindik (2019ko urtarriletik!) ez du adierazten arazoa konpondu denik. Agian, bide batez, norbaitek badaki zein den arazoa halako pakete garrantzitsu bat oraindik zaurgarria dela urtebete baino gehiagoz?

Beste behin, antzeko egoera batean: SSHn ahultasun baten ondoren, zerbitzari guztiak eguneratzea beharrezkoa izan zen. Eta zeregin bat ezartzen duzunean, exekuzioa kontrolatu behar duzu. (Mendekoek gaizki ulertu, ahaztu, nahastu eta akatsak egiteko joera dute). Hori dela eta, lehenik eta behin SSH bertsioaren egiaztapena gehitu genuen okerr-i zerbitzari guztietan, eta okerr-en bidez ziurtatu genuen eguneraketak zerbitzari guztietan zabaldu zirela. (Erosoa! Adierazle mota hau aukeratu dut, eta berehala ikus dezakezu zein zerbitzariak zein bertsio dituen). Zerbitzari guztietan zeregina amaituta zegoela ziur geundenean, adierazleak kendu genituen.

Pare bat aldiz egon zen egoera bat non arazo jakin bat sortzen den, eta gero bere kabuz desagertzen den. (baliteke guztiontzat ezaguna?). Konturatzen zarenerako, egiaztatzen duzunerako β€”eta ez dago ezer egiaztatzekoβ€” dena ongi dabil jada. Baina gero berriro hausten da. Hori gertatu zitzaigun, adibidez, Amazon Marketplace-ra (MWS) kargatu genituen produktuekin. Noizbait, kargatutako inbentarioa okerra zen (ondasun kantitate okerrak eta prezio okerrak). Asmatu genuen. Baina konturatu ahal izateko, garrantzitsua zen arazoa berehala jakitea. Zoritxarrez, MWS, Amazon zerbitzu guztiak bezala, apur bat motela da, beraz, beti zegoen atzerapena, baina hala ere, arazoaren eta eragiten duten scripten arteko lotura gutxi gorabehera ulertu ahal izan genuen (kontrol bat egin genuen, itsatsita). okerrari, eta berehala egiaztatu zuen alerta bat jasoz).

Duela gutxi, gure bezeroak erabiltzen duen Europako ostalari handi eta garesti batek bildumari kasu interesgarri bat gehitu zion. Bat-batean, gure zerbitzari GUZTIAK radartik desagertu ziren! Lehenik eta behin, bezeroak berak (okerra baino azkarrago!) lanean ari zen gunea ez zela irekitzen ohartu eta txartel bat egin zuen horri buruz. Baina ez da gune bakarra erori, denak baizik! (Natasha, dena bota dugu!). Hemen hasi zen Okerr-ek oin luzeak bidaltzen zizkion adierazle guztiekin. Izua, izua, biribilka ibiltzen gara (zer gehiago egin dezakegu?). Orduan dena igo zen. Ematen du datu-zentroan ohiko mantentze-lanak egiten zirela (urte askotan behin) eta, noski, ohartarazi beharko genituzke. Baina arazoren bat gertatu zitzaien eta ez ziguten abisatu. Tira, infartu gehiago, infartu gutxiago. Baina dena leheneratu ondoren, dena egiaztatu behar duzu! Ezin dut imajinatu nola egingo nukeen eskuekin. Okerrek dena probatu zuen minutu gutxitan. Zerbitzari gehienak aldi baterako erabilgarri ez zirela ikusi zen, baina funtzionatu zuten. Batzuk gainkargatuta zeuden, baina behar bezala zutik ere jarri ziren. Galera guztien artean, bi babeskopia galdu genituen, koroaren arabera sortu eta kargatu behar zirenak banana bete hori gertatzen ari zen bitartean. Horiek sortzeko ere ez nuen traba egin, egun bat beranduago dena ondo zegoelako alertak iritsi ziren, babeskopiak agertu ziren. Adibide hau asko gustatzen zait, okerr oso erabilgarria izan delako aldez aurretik pentsatu ere egin ez genuen egoera batean, baina hori da jarraipenaren helburua: ezustekoari aurre egitea.

Okerr sentsoreetarako, ahalik eta hosting merkeena erabiltzen dugu (kalitatea eta fidagarritasuna ez diren garrantzitsuak, elkar aseguratzen dute). Beraz, duela gutxi ostalaritza oso ona eta super merkea aurkitu dugu, erreferentziak ikaragarriak dira. Baina... batzuetan ematen da makina birtualetik irteerako konexioak beste IP (alboko) batetik egiten direla. Mirariak. Client_ip modulua https://diagnostic.opendns.com/myip IP okerra lortzen du. Eta adierazlearen zerbitzariaren erregistroetatik argi dago eguneratzea aldameneko IP honetatik ere etorri dela. Aurrera diezaiogun laguntzari orain. Ongi da hori bake garaian ohartu izana. Baina, adibidez, sarritan gertatzen da sarbidea IP zerrenda zuriaren arabera erregistratzen dela -eta zerbitzariak batzuetan horrela keinu egiten badu denbora laburrean- arazo hau oso denbora luzez harrapatzen saia zaitezke.

Beno, gauza bat gehiago - VPS hostingaz ari garenez - beti erabiltzen ditugu merkeak (hetzner, ovh, scaleway). Asko gustatzen zait bai erreferentzien aldetik, bai egonkortasunaren aldetik. Amazon EC2 askoz ere garestiagoa erabiltzen dugu beste proiektuetarako. Beraz, okerr-i esker, gure iritzi informatua dugu. Biak erortzen dira. Eta ez nuke esango gure behaketen aldi luzean hetzner bezalako hosting merkeak EC2 baino nabarmen gutxiago egonkorrak izan zirenik. Hori dela eta, Amazoneko beste funtzio batzuei lotuta ez bazaude, zergatik ordaindu gehiago? πŸ™‚

Zer da hurrengoa?

Etapa honetan oraindik Okerrengandik uxatu ez zaitut, proba ezazu! Esteka honetara zuzenean joan zaitezke okerr demo kontua (Egin klik orain!) Baina kontuan izan guztientzako demo-kontu bakarra dagoela, beraz, zerbait egiten baduzu, kontu bereko beste norbaitek zurekin oztopatu dezake aldi berean. Edo (hobe) izena eman estekaren bidez gunez kanpoko okerr - dena erraza da, SMSrik gabe. Zure benetako posta elektronikoa erabiltzea gustatzen ez bazaizu, botatzeko moduko bat erabil dezakezu, mailinator adibidez (gomendatzen dut getnada.com). Halako kontuak denborarekin ezabatuko dira, baina ondo egongo dira probak egiteko.

Izena eman ondoren, prestakuntza egiteko eskatuko zaizu (prestakuntza ez oso zailak diren hainbat lan egitea). Hasierako mugak oso txikiak dira, baina entrenamendurako edo zerbitzari baterako nahikoak dira. Prestakuntza amaitu ondoren, mugak (adibidez, adierazleen gehienezko kopurua) handituko dira.

Dokumentaziotik - lehenik eta behin WIKI zerbitzari aldean eta bezeroan (okerrupdate wikia). Baina zerbait argi ez badago, idatzi (at) okerr.com-era edo utzi txartel bat - dena azkar konpontzen saiatuko gara.

Serio erabiltzen baduzu eta handitutako muga hauek nahikoak ez badira, idatzi laguntzara eta handituko dugu (doan).

Okerr zerbitzaria zure zerbitzarian instalatu nahi al duzu? Hemen okerr-dev biltegia. Makina birtual garbi batean instalatzea gomendatzen dugu, ondoren, instalazio script batekin egin dezakezu. Zure makina birtualean - murrizketarik gabe :-). Tira, berriro ere, zerbait gertatzen bada, beti saiatuko gara laguntzen.

Proiektu hau aireratzea nahi dugu, mundua fidagarriagoa izan dadin guri esker. Software libreari eta zerbitzuei esker, mundua atseginagoa bihurtu da eta dinamikoago garatzen ari da. Iturriak doako github-en gorde daitezke, postarako doako gmail erabil dezakezu. Doan erabiltzen dugu fresko lanak laguntzarako. Horretarako, ez duzu zerbitzariak ordaindu behar, ez duzu deskargatu eta konfiguratu beharrik eta ez duzu hainbat arazo operatibo konpondu behar. Proiektu berri bakoitzak, talde bakoitzak berehala ditu posta, biltegiak eta CRM. Eta hori guztia oso kalitate handikoa eta doan eta berehalakoa da. Jarraipenerako berdina izatea nahi dugu - enpresa eta proiektu txikiek okerr dohainik erabil dezakete eta jaiotze eta hazkuntza fasean ere helduen proiektu serioen fidagarritasuna dute.

Iturria: www.habr.com