För tvÄ Är sedan gjorde jag redan ett inlÀgg om . Det har nu skett viss utveckling av projektet, och jag har ocksÄ publicerat under , sÄ jag beslutade mig för att skriva denna lilla översikt pÄ Habr.

[ ]
Vem kan vara intresserad av detta
Det kan vara intressant för dig om du arbetar i ett litet team eller helt ensam. Du har ingen övervakning och Ă€r osĂ€ker pĂ„ om det verkligen behövs. Eller sĂ„ har du provat nĂ„gon populĂ€r, seriös övervakning "för stora killar", men den fungerade inte riktigt för dig, eller sĂ„ fungerar den nĂ€stan i standardkonfiguration och har inte förĂ€ndrat ditt liv sĂ€rskilt mycket. Och dessutom â om du definitivt inte planerar att avsĂ€tta en hel anstĂ€lld (eller till och med en avdelning) för att övervaka instrumentpanelen i nĂ„gra timmar varje dag eller konfigurera den.
Vad som gör okerr ovanligt
Vidare ska jag visa intressanta funktioner hos okerr som skiljer det frÄn vissa andra övervakningar.
Okerr Àr en hybridövervakning
Vid intern övervakning körs en "agent" pÄ de observerade maskinerna som skickar data till övervakningsservern (t.ex. ledigt utrymme pÄ diskarna). Vid extern övervakning kontrollerar servern över nÀtverk (t.ex. ping eller tillgÀnglighet av webbplatsen). Varje metod har sina begrÀnsningar. Okerr anvÀnder bÄda alternativen. Kontroller inuti servrarna utförs av en mycket lÀtt (30Kb) agent eller av dina egna skript och applikationer, medan nÀtverkskontroller görs via okerr-sensorer i olika lÀnder.
okerr Àr inte bara mjukvara, utan ocksÄ en tjÀnst
Serverdelen av vilken övervakning som helst Àr stor och komplex, det Àr svÄrt att installera och konfigurera den, och den krÀver resurser. Med okerr kan du sÀtta upp din egen övervakningsserver (den Àr gratis och öppen kÀllkod), eller sÄ kan du bara anvÀnda klientdelen och utnyttja tjÀnsten frÄn vÄr server. OcksÄ gratis.
Om övervakningen kan kompensera för bristen pĂ„ tillförlitlighet hos servrar och applikationer, uppstĂ„r den filosofiska frĂ„gan â vem vaktar vakten? Hur ska övervakningen rapportera ett problem om den sjĂ€lv "dör" av nĂ„gon anledning, separat eller tillsammans med andra resurser (till exempel, om kanalen till datacentret gĂ„r ner)? Genom att anvĂ€nda den externa tjĂ€nsten okerr löses detta problem â du fĂ„r en alert Ă€ven om hela datacentret med dina servrar Ă€r strömlöst eller utsatt för en zombieattack.
SjĂ€lvklart finns det en risk att servern okerr sjĂ€lv inte Ă€r tillgĂ€nglig, det Ă€r sant (som bekant fĂ„r man alltid 90% tillförlitlighet ganska enkelt och "gratis", 99% med minimala anstrĂ€ngningar, och varje följande nio blir exponentiellt svĂ„rare). Men för det första Ă€r chansen för detta lĂ€gre, och för det andra kan problemet förbli obemĂ€rkt endast om det sammanfaller i tid med problem pĂ„ vĂ„ra servrar. Om vi har 99,9% tillförlitlighet och du har 99,9% (inte alltför höga siffror), sĂ„ Ă€r chansen för en obemĂ€rkt nedgĂ„ng â 0,1% av 0,1% = 0,0001%. Att lĂ€gga till tre nior i tillförlitlighet nĂ€stan utan anstrĂ€ngning och utan kostnad â det Ă€r ganska bra!
En annan fördel med övervakning som en tjĂ€nst Ă€r att en hostingleverantör eller webbyrĂ„ kan installera servern okerr och erbjuda tillgĂ„ng till kunder som en betald eller gratis extra tjĂ€nst. Dine konkurrenter har bara hosting och webbplatser â men du har pĂ„litlig hosting med övervakning.
Okerr handlar om indikatorer
En indikator Ă€r en "lampa". Den har tvĂ„ huvudsakliga tillstĂ„nd â grön (OK) eller röd (ERR). I projektet finns det mĂ„nga grupperade (till exempel efter servrar) indikatorer. PĂ„ projektets huvudsida ser du direkt antingen att allt Ă€r grönt (och kan stĂ€ngas av), eller att nĂ„got lyser rött och mĂ„ste Ă„tgĂ€rdas. Vid övergĂ„ng mellan dessa tillstĂ„nd skickas en notifikation. En gĂ„ng om dagen, sĂ„ lĂ€nge du stĂ€ller in det, skickas en sammanstĂ€llning av projektet.

Varje indikator okerr har inbyggda villkor enligt vilka den Ă€ndrar tillstĂ„nd (i Zabbix kallas detta trigger). Till exempel, lastgenomsnittet fĂ„r inte överstiga 2 (detta kan sjĂ€lvklart stĂ€llas in). För varje intern kontroll (lastgenomsnitt, ledig disk, âŠ) finns det en watchdog. Om vi av nĂ„gon anledning inte fĂ„r en lyckad bekrĂ€ftelse vid avsatt tid registreras ett fel och en alert skickas.
VÄr vanliga arbetsmetod Àr att kontrollera e-posten pÄ morgonen, dÀribland tittar vi pÄ sammanfattningen (vi sÀtter dess tid till början av arbetsdagen). Om allt ser bra ut dÀr, sysslar vi med andra viktiga uppgifter (men vi kan snabbt kolla pÄ okerr-dashboarden för att försÀkra oss om att allt fortfarande Àr grönt). Om en varning kommer in reagerar vi.
SjÀlvklart finns det möjlighet att bara hÄlla «informations» indikatorer (för att se nÀtverkslÀget frÄn övervakningen), men allt Àr gjort för att enkelt, lÀtt och snabbt skapa indikatorer för automatisk övervakning och varningsutsÀndning.
Meningen med att du stÀller in okerr Àr varningarna, att du kan skapa en indikator pÄ en minut, den kan ha «sovit» i Äratal, bara tagit emot uppdateringar, och nÀr nÄgot gÄr sönder om ett Är tÀnds den och skickar ut en varning. Minuten du en gÄng lade ner pÄ att skapa indikatorn har lönat sig, du fick veta om problemet omedelbart, före alla andra. Kanske lagade du det innan nÄgon mÀrkte. Snabbt upprÀttad rÀknas inte som nedfallen!
SĂ€kerhet
Det skulle vara trÄkigt om du sÀtter upp övervakning för att öka pÄlitligheten, och istÀllet blir du attackerad via den, och det finns mÄnga nÀtverksutsattheter hos olika övervakningsverktyg (, ).
Agent (okerrmod frĂ„n paketet ), som arbetar pĂ„ systemet â Ă€r inte en nĂ€tverksserver, utan en klient. DĂ€rför finns det inga ytterligare öppna portar pĂ„ den övervakade servern, klienten fungerar enkelt bakom en brandvĂ€gg eller NAT, och det Ă€r mycket svĂ„rt (jag skulle sĂ€ga «omöjligt») att hacka den via nĂ€tet, eftersom den i princip inte lyssnar pĂ„ nĂ€tverksocket.
FullstÀndig övervakningstÀckning
Nu har vi en regel â vi fĂ„r veta om alla tekniska problem frĂ„n okerr. Om regeln plötsligt bryts (om okerr inte varnar om ett problem som kan komma (om möjligt) eller om det redan har intrĂ€ffat) â vi lĂ€gger till kontroller i okerr.
Externa kontroller
En ganska typisk uppsÀttning:
- ping
- http-status
- kontroll av giltighet och aktualitet för SSL-certifikat (varnar om giltighetstiden snart gÄr ut)
- öppen TCP-port och banner pÄ den
- http grep (pÄ sidan [ska] inte finnas viss text)
- sha1-hash för att fÄnga Àndringar av sidan.
- DNS (DNS-posten mÄste ha ett visst vÀrde)
- WHOIS (varnar om domÀnen snart gÄr ut)
- Antispam DNSBL (kontroll av vÀrden direkt mot 50+ antispam-svartlistor)
Interna kontroller
Ăven en ganska typisk uppsĂ€ttning (men lĂ€tt utbyggbar).
- df (ledig diskplats)
- load average
- opentcp (öppna lyssnande TCP-sockets â meddelar om nĂ„got har startat eller stĂ€ngts ner)
- uptime â visar bara uptime för servern. Meddelar om den förĂ€ndras nedĂ„t (d.v.s. servern har startats om)
- client_ip
- dirsize â vi anvĂ€nder den för att övervaka nĂ€r vĂ„ra rootfs för virtuella maskiner överskrider den tillĂ„tna storleken, utan att införa strikta begrĂ€nsningar, och för storlekarna pĂ„ anvĂ€ndarens hemkataloger.
- empty och nonempty â övervakar filer som ska vara tomma (eller inte tomma). Till exempel, error log för servern okerr â ska vara tom, och om det finns ens en rad â fĂ„r jag ett meddelande och kontrollerar. Men mail.log pĂ„ mailservern ska INTE vara tom (efter N minuter efter rotation). Ibland har det Ă€ndĂ„ varit tomt efter systemuppdateringar, nĂ€r logrotate inte kunde starta om rsyslog korrekt.
- linecount â antalet rader i en fil (som wc -l). Vi anvĂ€nder det som en mjukare ersĂ€ttning för empty, nĂ€r error log faktiskt kan vĂ€xa, men bara lĂ„ngsamt (till exempel, googlebot har problem med vissa skyddade sidor). Det finns en grĂ€ns pĂ„ 2 rader pĂ„ 20 minuter. Om det överskrider â blir det ett alert.
Intressanta interna kontroller
Om du har lÀst "diagonalt" fram till nu, kommer det bli intressantare att lÀsa noggrant.
backups
Ăvervakar sĂ€kerhetskopior i katalogen. VĂ„ra backupfiler har namn som "ServerName-20200530.tar.gz". För varje server skapas en indikator i okerr som heter ServerName-DATE.tar.gz (det faktiska datumet Ă€ndras till strĂ€ngen "DATE"). BĂ„de nĂ€rvaron av en ny backup och dess storlek övervakas (till exempel, den fĂ„r inte vara mindre Ă€n 90 % av den föregĂ„ende backupen).
Vad behöver göras för att den nya backuppen ska börja övervakas efter att vi har pÄbörjat skapandet och lagt den i denna katalog? Ingenting! Det Àr ett mycket bekvÀmt tillvÀgagÄngssÀtt nÀr man inte behöver göra "nÄgot", för att:
- Att göra "inget" gÄr ganska snabbt, sparar tid.
- Det Àr svÄrt att glömma att göra "inget".
- Det Ă€r svĂ„rt att göra "inget" fel, med misstag. Ingenting â Ă€r den mest pĂ„litliga metoden.
Om plötsligt inga nya backupfiler dyker upp â blir det ett alert. Om du till exempel stĂ€ngde av en av servrarna, och dess backuper inte borde finnas lĂ€ngre â mĂ„ste du ta bort indikatorn (via webgrĂ€nssnittet eller frĂ„n terminalen via API).
maxfilesz
Ăvervakar storleken pĂ„ de största filerna (vanligtvis: /var/log/*). Detta hjĂ€lper till att fĂ„nga oförutsĂ€gbara problem, som till exempel lösenordsattacker eller utskick av skrĂ€ppost via servern.
runstatus/runline
Detta Àr tvÄ viktiga proxy-moduler för att köra andra program pÄ servern. Runstatus rapporterar en indikator för programmets utgÄngskod. Till exempel finns det ingen (ingen behövs) modul för att kontrollera att systemd-tjÀnsterna fungerar i okerr. Detta hanteras via runstatus (se nedan). Runline rapporterar den rad som programmet ger pÄ servern. Till exempel, temp_RUN="cat /sys/class/thermal/thermal_zone0/temp" i konfigurationen skapar Runline pÄ vÄr server en indikator servername:temp med processor-temperaturen.
sql
Utför en numerisk frĂ„ga till MySQL och rapporterar resultatet i en indikator. I det enklaste fallet kan man till exempel göra "SELECT 1" â detta kommer kontrollera att databasen fungerar i allmĂ€nhet.
Men en mycket mer intressant tillĂ€mpning Ă€r att till exempel spĂ„ra antalet bestĂ€llningar i en nĂ€tbutik. Om du vet att du har mellan 100 bestĂ€llningar i timmen kan du stĂ€lla in en minimi-grĂ€ns pĂ„ 100 eller 80. DĂ„ fĂ„r du en alert om försĂ€ljningen plötsligt sjunker â sĂ„ kan du ta itu med det.
Observera â det spelar ingen roll av vilken oförutsĂ€gbar anledning detta intrĂ€ffade:
- Servern Àr helt enkelt otillgÀnglig (strömlös eller utan nÀtverk), och alerten kom frÄn att indikatorn "blev gammal".
- Servern Àr belastad, arbetar lÄngsamt eller tappar paket, och anvÀndarna har svÄrt att anvÀnda den och lÀmnar utan att handla.
- Servern har hamnat pÄ skrÀppostlistor, och mail frÄn den tas inte emot, anvÀndare kan inte registrera sig.
- Budgeten för reklamkampanjen Àr slut, annonser körs inte.
Det kan finnas hur mÄnga orsaker som helst, och man kan inte förutse dem alla i förvÀg, och det Àr tekniskt svÄrt att spÄra. Men det Àr möjligt att bekvÀmt övervaka den slutliga parametern (bestÀllningarna) och utifrÄn det avgöra att situationen Àr misstÀnkt och vÀrd att undersöka.
Logiska indikatorer
Möjliggör anvĂ€ndning av logiska uttryck (Python-syntax) via modulen (). För uttrycket Ă€r projektets och dess indikatorers data tillgĂ€ngliga. Till exempel, i kapitlet om SQL-kontrollen ovan, kanske du mĂ€rkte en svaghet â pĂ„ dagen kan vi ha upp till 100 försĂ€ljningar i timmen, men pĂ„ natten har vi bara 20, och det Ă€r normalt, inget problem. Hur ska vi göra? Indikatorn kommer ju stĂ€ndigt att larma pĂ„ nĂ€tterna.
Det gÄr att skapa tvÄ indikatorer, en för dagen och en för natten. BÄda kan göras "tysta" (de kommer inte att skicka aviseringar). Och skapa en logikindikator som krÀver att dagindikatorn Àr OK före klockan 20:00, och efter klockan 20:00 Àr det tillrÀckligt att natindikatorn Àr OK.
Ett annat exempel pÄ anvÀndningen av en logikindikator Àr eskalering. Till exempel avregistrerar projektledaren sig frÄn alertar (han behöver inte dem, administratörerna ska reagera pÄ vanliga problem), men registrerar sig pÄ en logikindikator som blir röd om nÄgon indikator i projektet inte har ÄtgÀrdats inom angiven tid.
Dessutom finns det möjlighet att stÀlla in tillÄten driftid, till exempel frÄn 3 till 5 pÄ morgonen. Vi bryr oss inte om servrarna och webbplatserna "gÄr ner" under denna tid. Men klockan 5:00 ska de fungera. Om de inte fungerar vid nÄgon annan tidpunkt blir det en alert. Logikindikatorn tar ocksÄ hÀnsyn till serverreserv. Om du har 5 webbservrar kan administratörerna stÀnga av 1-2 servrar nÀr som helst. Men om det Àr mindre Àn 3 av 5 servrar i drift - kommer det att bli en alert.
Exemplen ovan Àr inte funktioner i okerr, inte nÄgra funktioner som behöver aktiveras och konfigureras. Alla dessa funktioner finns inte i okerr, men det finns en logikmodul som möjliggör att implementera denna funktionalitet (ungefÀr som i ett programmeringssprÄk - om vi har aritmetiska operatorer, behöver vi inte ett sÀrskilt sprÄk för att berÀkna 20% moms, det kan alltid göras av oss sjÀlva efter behov).
Logikindikatorn Àr förmodligen ett av de fÄ relativt komplexa Àmnena inom okerr, men den goda nyheten Àr att du inte behöver behÀrska dem förrÀn det behövs. Men de utökar mycket funktionaliteten samtidigt som systemet förblir ganska enkelt.
Att lÀgga till egna kontroller
Jag skulle verkligen vilja framföra tanken att okerr inte Àr en samling av tusen fÀrdiga kontroller för alla livssituationer, utan tvÀrtom - först och frÀmst - en enkel motor med en enkel möjlighet att skapa egna kontroller. Att skapa egna kontroller i okerr Àr inte en uppgift för hackare, medutvecklare av systemet, eller Ätminstone avancerade anvÀndare av okerr, utan en genomförbar uppgift för varje administratör som för en mÄnad sedan först installerade linux.
Kontroller pÄ miniminivÄ görs genom modulen :
Denna rad i konfigurationen skickar ett meddelande om /bin/true skulle misslyckas med att starta eller ÄterlÀmna nÄgot annat Àn 0.
true_OK=\/bin\/trueBara en enda rad â och hĂ€r har vi redan utökat lite funktionaliteten för okerr. Ăven en sĂ„dan kontroll har sitt vĂ€rde: om din server skulle gĂ„ ner â kommer den motsvarande indikatorn pĂ„ servern okerr inte att uppdateras i tid, och efter en tid kommer en varning att uppstĂ„.
Denna kontroll kommer att meddela att servern apache2 har kraschat (man vet aldrigâŠ):
apache_OK="systemctl is-active --quiet apache2"
SĂ„ om du kan nĂ„got programmeringssprĂ„k, Ă„tminstone kan skriva shell-skript â dĂ„ kan du redan lĂ€gga till egna kontroller.Mer komplicerat â du kan skriva (i vilket sprĂ„k som helst) din egen modul för okerrmod. I enklaste fall ser den ut sĂ„ hĂ€r:
Ăr det inte sĂ„ svĂ„rt? Modulen ska göra sjĂ€lva kontrollen och visa resultaten pĂ„ STDOUT. En mer avancerad modul ger till exempel följande:
#!/usr/bin/python3
print("STATUS: OK")$ okerrmod --dump df NAMN: pi:df-\/\nTAGGAR: df METOD: numerisk|maxlim=90 DETLER: 49,52%, 13,9G\/28,2G anvÀnd, 13,0G ledigt STATUS: 49,52NAMN: pi:df-\/boot TAGGAR: df METOD: numerisk|maxlim=90 DETLER: 84,32%, 53,1M\/62,9M anvÀnd, 9,9M ledigt STATUS: 84,32
Den uppdaterar flera indikatorer samtidigt (separerade med en tom rad), skapar dem vid behov, anger detaljer om kontrollen och en tagg som gör det lÀtt att hitta de nödvÀndiga indikatorerna i dashboards.Det finns en Telegram-bot
Telegram
@OkerrBot Statussidor
I dagens lÀge Àr statusidor nÀstan ett mÄste för alla företag som har IT, en ansvarsfull instÀllning till tillförlitlighet och som respekterar sina kunder\/anvÀndare.
I vÄr tid Àr statusidor nÀstan ett mÄste för vilket företag som helst som har IT, ansvar för pÄlitlighet och som har respekt för sina kunder\/anvÀndare.
TĂ€nk dig en situation â en anvĂ€ndare vill göra nĂ„got, se information eller lĂ€gga en bestĂ€llning, och nĂ„got fungerar inte. Han vet inte vad problemet Ă€r, vem det beror pĂ„ och nĂ€r det kan lösas. Kanske har ditt företag bara en trasig webbplats? Eller sĂ„ gick det sönder för ett halvĂ„r sedan och kommer att repareras om tvĂ„ Ă„r? Men kylskĂ„pet mĂ„ste köpas nu, det ligger redan i varukorgen⊠Det Ă€r helt annat nĂ€r en person ser att det Ă€r nĂ„got fel hos er (Ă„tminstone Ă€r det klart att problemet inte ligger hos honom), att problemet har upptĂ€ckts, att ni redan arbetar med det, och kanske till och med har skrivit en ungefĂ€rlig tid för nĂ€r det kommer att Ă„tgĂ€rdas. AnvĂ€ndaren kan prenumerera och fĂ„ ett meddelande via e-post nĂ€r problemet Ă€r löst och han kan göra det han ville (köpa kylskĂ„pet).

Problem och driftstopp â det hĂ€nder alla. Men anvĂ€ndare och partners litar mer pĂ„ dem som Ă€r mer transparenta och tar ansvar för detta.
HÀr Àr . HÀr Àr exempel pÄ hur dessa sidor ser ut hos projekten och . .
Failover
För att inte göra den hĂ€r artikeln Ă€nnu lĂ€ngre, hĂ€nvisar jag Ă„terigen till min tidigare artikel â . Om du kan skapa en duplicerad server, sĂ„ med anvĂ€ndning av failover, sĂ„ kommer du i princip inte ha lĂ„ng driftstopp â sĂ„ snart problemet upptĂ€cks kommer anvĂ€ndarna automatiskt att omdirigeras till den fungerande reservservern. Och jag tycker att det hĂ€r Ă€r en vĂ€ldigt intressant och unik funktion som knappt finns nĂ„gon annanstans.
LÄga systemkrav
För servrarna okerr â anvĂ€nder vi maskiner med RAM frĂ„n 2Gb. För nĂ€tverksensorer â till och med 512Mb rĂ€cker. Klientdelen â nĂ€stan inget överhuvudtaget. (Paketet vĂ€ger 26 Kb, men krĂ€ver Python3 och standardbibliotek). Klienten körs frĂ„n ett cron-skript, sĂ„ den har noll konstant minnesanvĂ€ndning. Bland de observerade maskinerna har vi sensorer (superbilliga VPS:er med 512Mb RAM) och Raspberry Pi. Man kan till och med utan klientdelen ! (se nedan)
Med detta i Ă„tanke â okerr Ă€r nog den mest kostnadsfria Ăvervakningssystemet Ă€r tillgĂ€ngligt, eftersom Ă€ven för att anvĂ€nda ett annat gratis open source-system som Zabbix eller Nagios behövs resurser (server), vilket kostar pengar. Dessutom krĂ€vs viss serverunderhĂ„ll. Med okerr kan den delen tas bort. Det gĂ„r ocksĂ„ att behĂ„lla en egen server â beroende pĂ„ vad som passar bĂ€st för dig.
API och integration i egen programvara
En enkel och öppen arkitektur. Okerr har en ganska enkel , som Àr lÀtt att arbeta med. Behöver du skapa 1000 indikatorer? Ett shell-skript pÄ 3-4 rader klarar det. MÄste du omkonfigurera 1000 indikatorer? Det Àr ocksÄ vÀldigt enkelt. Till exempel, vi vill kontrollera alla vÄra HTTPS-certifikat just med en rysk sensor:
#!/bin/sh
for indicator in `okerrclient --api-filter sslcert`
do
echo set location for $indicator
okerrclient --api-set location=ru retest=1 --name $indicator
doneIndikatorn kan uppdateras antingen med vÄr klientmodul eller till och med utan den, bara via 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/Du kan uppdatera indikatorer direkt frĂ„n ditt program. Till exempel genom att skicka heartbeat-signaler sĂ„ att okerr vet att den Ă€r igĂ„ng och kan larma om den slocknar eller hĂ€nger sig. För övrigt gör komponenter i okerr precis detta â okerr övervakar sig sjĂ€lv, och problem i nĂ€stan vilken modul som helst kommer att upptĂ€ckas och generera en meddelande om problem. (Och för den dĂ€r "nĂ€stan" â de kontrolleras korsvis med en annan server)
SÄ hÀr ser koden ut (förenklat) i vÄr Telegram-bot:
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))För att uppdatera indikatorer frÄn Python-program finns det ett bibliotek , för alla andra sprÄk finns det inget bibliotek, men du kan antingen kalla skriptet okerrupdate eller göra en HTTP-förfrÄgan till servern okerr.
Hur okerr hjÀlper oss
Okerr har förĂ€ndrat vĂ„rt liv. Verkligen. Kanske kunde ett annat övervakningssystem ocksĂ„ ha gjort det, men det Ă€r enkelt och smidigt att arbeta med okerr, och det innehĂ„ller alla funktioner vi behövde (det som saknades â har vi lagt till). Om nĂ„gon funktion saknas â frĂ„ga, sĂ„ ska jag lĂ€gga till dem (jag lovar inget, men jag vill att okerr ska vara det bĂ€sta övervakningssystemet för smĂ„ och medelstora projekt). Eller Ă€nnu bĂ€ttre, lĂ€gg till dem sjĂ€lv â det Ă€r enkelt.
Vi har lyckats leva efter principen "att veta om alla problem genom okerr". Om det plötsligt uppstĂ„r ett problem som vi inte fĂ„tt veta frĂ„n okerr â lĂ€gger vi till en kontroll i okerr. (I det hĂ€r fallet menar jag "vi" som anvĂ€ndare av systemet, inte som medutvecklare). Till en början hĂ€nde detta ofta, men nu har det blivit mycket sĂ€llsynt.
Ăvervakning
Genom okerr övervakar vi storleken pĂ„ loggarna pĂ„ alla servrar. Att noggrant lĂ€sa varje rad i loggen â Ă€r förstĂ„s omöjligt, men att bara följa tillvĂ€xttakten â ger redan mycket. Genom detta har vi upptĂ€ckt bĂ„de skrĂ€ppostutskick och bruteforce-lösenordsattacker, samt nĂ€r nĂ„gra av applikationerna "gĂ„r bananas", dĂ€r de inte lyckas med nĂ„got och de försöker igen och igen (och varje gĂ„ng lĂ€gger till ett par rader i loggen).
SSL-certifikat. NĂ€stan omedelbart efter starten började vĂ„r kund ge sina egna kunder gratis SSL-certifikat (ungefĂ€r tusen av dem). Och det visade sig vara rent helvete att administrera! Grejen Ă€r att webbplatserna Ă€r "levande", kunder ber ibland om Ă€ndringar, utvecklarna gör dem. De kan helt fritt flytta webbplatsen till en annan DocumentRoot till exempel. Eller lĂ€gga till en fast Rewrite i virtuella vĂ€rdars konfig. Naturligtvis, efter sĂ„dana Ă€ndringar, slutar automatisk uppdatering av certifikat att fungera. Nu lĂ€ggs alla vĂ„ra SSL-vĂ€rdar till i okerr automatisk via ett av vĂ„ra anvĂ€ndbara verktyg frĂ„n paketet . Vi kör bara a2okerr.py â och om det finns flera nya webbplatser pĂ„ servern â kommer de automatiskt att dyka upp i okerr. Om av nĂ„gon anledning certifikatet inte uppdateras, fĂ„r vi veta tre veckor innan certifikatet gĂ„r ut â och vi tar reda pĂ„ varför det inte uppdateras, den hunden. a2certbot.py frĂ„n samma paket â Ă€r mycket hjĂ€lpsam i detta (den kontrollerar direkt de mest sannolika problemen â och skriver vad som har kontrollerats vĂ€l, och var det troligen finns problem).
Vi övervakar utgĂ„ngsdatum för alla vĂ„ra domĂ€ner. Och alla vĂ„ra postservrar, som skickar e-post â kontrolleras dessutom mot mer Ă€n 50 olika svartlistor. (Och ibland hamnar de i dem). För övrigt, vet ni att Googles postservrar ocksĂ„ finns pĂ„ svartlistor? Bara för sjĂ€lvkontroll har vi lagt till mail-wr1-f54.google.com till de övervakade servrarna, och den ligger faktiskt pĂ„ SORBS svartlistan! (Detta Ă€r en kommentar om vĂ€rdet av "antispam"-tjĂ€nster)
Backuper â jag nĂ€mnde tidigare hur enkelt det Ă€r att övervaka dem med okerr. Men vi övervakar ocksĂ„ fĂ€rska backuper pĂ„ vĂ„r server, och (med hjĂ€lp av ett separat verktyg som anvĂ€nder okerr) â backuperna som vi laddar upp till Amazon Glacier. Och ja â problem intrĂ€ffar periodvis. Det Ă€r dĂ€rför vi följer upp.
Vi anvÀnder en eskalering indikator. Den visar om ett problem inte har ÄtgÀrdats under lÄng tid. Och jag sjÀlv, nÀr jag löser vissa uppgifter, kan ibland glömma bort dem. Eskalering Àr en bra pÄminnelse, Àven om man hÄller koll pÄ sig sjÀlv.
Generellt anser jag att kvalitĂ©n pĂ„ vĂ„rt arbete har ökat avsevĂ€rt. NerstĂ€ngning nĂ€stan inte förekommer (eller sĂ„ hinner klienten inte mĂ€rka det. Tyst nu!), samtidigt har arbetsbelastningen minskat och arbetsvillkoren blivit lugnare. Vi har gĂ„tt frĂ„n att jobba i panik och laga hĂ„l med tejp till ett lugnt och jĂ€mnt arbete, dĂ€r mĂ„nga problem förutses i förvĂ€g och det finns tid att förhindra dem. Ăven nĂ€r problem faktiskt intrĂ€ffar â det har blivit lĂ€ttare att Ă„tgĂ€rda: för det första, vi fĂ„r veta om dem innan klienterna fĂ„r panik, och för det andra, det Ă€r oftast sĂ„ att problemet Ă€r relaterat till nyligen utförda arbeten (medan jag gjorde en sak, skadade jag en annan) â dĂ€rför Ă€r det lĂ€ttare att hantera dem direkt.
Och hÀr Àr en annan hÀndelse...
Visste du att i den populĂ€ra Debian 9 (Stretch) sĂ„ har ett sĂ„ populĂ€rt paket som phpmyadmin fortfarande (efter mĂ„nga mĂ„nader!) status som sĂ„rbart?). NĂ€r sĂ„rbarheten först rapporterades â Ă„tgĂ€rdade vi den snabbt pĂ„ olika sĂ€tt. Men jag har lagt till övervakning i okerr för sĂ€kerhetsspĂ„rningssidan, för att veta nĂ€r en 'ren' lösning (genom SHA1-kontrollsumma) kommer. Flera gĂ„nger har indikatorsignalen dragit i mig, sidan har Ă€ndrats, men som du ser â fortfarande (sedan januari 2019!) finns det inget som tyder pĂ„ att problemet har lösts. Kanske vet nĂ„gon förresten vad problemet Ă€r, som gör att ett sĂ„ viktigt paket Ă€r sĂ„rbart i över ett Ă„r?
En annan gĂ„ng i en liknande situation: efter en sĂ„rbarhet i SSH behövde vi uppdatera alla servrar. Och nĂ€r man sĂ€tter en uppgift â mĂ„ste man kontrollera genomförandet. (UnderdĂ„are har en tendens att inte förstĂ„, glömma, bli förvirrade, göra misstag). DĂ€rför lade vi först till en kontroll av SSH-versionen pĂ„ alla servrar i okerr, och genom okerr övervakade vi att uppdateringarna genomfördes pĂ„ alla servrar. (Praktiskt! Jag valde denna typ av indikator, och det Ă€r direkt synligt vilken version som finns pĂ„ vilken server). NĂ€r vi var sĂ€kra pĂ„ att uppgiften var utförd pĂ„ alla servrar â tog vi bort indikatorerna.
NĂ„gra gĂ„nger har det hĂ€nt att ett visst problem uppstĂ„r, för att sedan försvinna av sig sjĂ€lv. (Kanske bekant för alla?). NĂ€r man vĂ€l upptĂ€cker det, kontrollerar â och dĂ„ finns det inget att kontrollera lĂ€ngre â allt fungerar bra igen. Men sedan bryts det ner igen. Vi upplevde detta till exempel med varor som vi laddade upp till Amazon Marketplace (MWS). Vid ett tillfĂ€lle var den uppladdade inventeringen felaktig (inte rĂ€tt antal varor och inte rĂ€tt priser). Vi löste det. Men för att förstĂ„ problemet â var det viktigt att fĂ„ veta om det direkt. TyvĂ€rr Ă€r MWS, som alla Amazons tjĂ€nster, lite seg, sĂ„ det har alltid funnits en fördröjning, men vi lyckades Ă„tminstone fĂ„nga sambandet mellan problemet och skripten som orsakade det (vi gjorde en kontroll, kopplade den till okerr, och kontrollerade direkt efter att vi fick en varning).
Ny intressant incident har nyligen lagts till i samlingen av en stor och dyr europeisk hostingleverantör som vĂ„r kund anvĂ€nder. Plötsligt försvann ALLA vĂ„ra servrar frĂ„n radarena! Först mĂ€rkte kunden sjĂ€lv "med hĂ€nderna" (snabbare Ă€n Okerr!) att webbplatsen han arbetade med inte öppnade sig och gjorde en ticket för detta. Men det var inte bara en webbplats, utan faktiskt alla! (Natasha, vi kraschade allt!). HĂ€r började Ă€ven Okerr skicka lĂ„nga meddelanden med alla indikatorer som hade aktiverats. Panik, panik, vi springer i cirklar (vad ska vi annars göra?). Sedan kom allt tillbaka. Det visade sig att det hade varit schemalagt underhĂ„ll i datacentret (en gĂ„ng pĂ„ mĂ„nga Ă„r) och vi borde sjĂ€lvklart ha blivit informerade. Men nĂ„got gick snett hos dem och de informerade inte oss. NĂ„vĂ€l, med eller utan hjĂ€rtinfarkt. Men efter att allt var Ă„terstĂ€llt mĂ„ste man kontrollera allt! Jag kan inte förestĂ€lla mig hur jag skulle ha gjort det för hand. Okerr testade allt pĂ„ nĂ„gra minuter. Det visade sig att större delen av servrarna bara var tillfĂ€lligt otillgĂ€ngliga, men fungerade Ă€ndĂ„. NĂ„gra â överbelastades, men kom ocksĂ„ tillbaka som de skulle. Av alla förluster â förlorade vi tvĂ„ backuper som enligt schemat skulle skapas och laddas upp under tiden som denna totala katastrof pĂ„gick. Jag skapade dem inte ens, det kom bara larm efter ett dygn om att allt var OK, backuperna dök upp. Jag gillar verkligen detta exempel, eftersom Okerr visade sig vara mycket anvĂ€ndbart i en situation som vi inte ens hade förutsett, men det Ă€r just uppgiften för övervakning â att motverka det oförutsĂ€gbara.
För sensorerna Okerr anvĂ€nder vi sĂ„ billiga hostingtjĂ€nster som möjligt (kvalitet och pĂ„litlighet spelar ingen roll, de tĂ€cker för varandra). SĂ„ nyligen hittade vi en mycket energisk hostingleverantör till superlĂ„gt pris, benchmarkresultaten Ă€r fantastiska. Men⊠ibland visar det sig att utgĂ„ende anslutningar frĂ„n virtuella maskiner görs med en annan (grann-) IP. Underverk. Modul client_ip med fĂ„r inte rĂ€tt IP. Och enligt serverloggarna för indikatorn Ă€r det tydligt att uppdateringen ocksĂ„ kom frĂ„n den grann-IP:n. Vi hĂ„ller pĂ„ att reda ut detta med supporten. Tur att vi mĂ€rkte det under lugna omstĂ€ndigheter. Men, det hĂ€nder ju ofta att Ă„tkomst skrivs upp med vita listor av IP â och om servern ibland blinkar kortvarigt pĂ„ detta sĂ€tt â kan man försöka fĂ„nga detta problem under en lĂ„ng tid.
Och Ă€nnu en sak â nĂ€r vi pratar om VPS-hosting â anvĂ€nder vi alltid prisvĂ€rda alternativ (hetzner, ovh, scaleway). BĂ„de nĂ€r det kommer till prestanda och stabilitet Ă€r de mycket bra. Vi anvĂ€nder ocksĂ„ det betydligt dyrare Amazon EC2 för andra projekt. SĂ„ tack vare okerr har vi en vĂ€lgrundad Ă„sikt. BĂ„da kan falla. Och jag skulle inte sĂ€ga att de billigare hostingenheter som hetzner har visat sig vara betydligt mindre stabila Ă€n EC2 under vĂ„r lĂ„nga observationsperiod. SĂ„ om ni inte Ă€r bundna till andra funktioner hos Amazon â varför betala mer? đ
Vad hÀnder hÀrnÀst?
Om jag inte har avskrĂ€ckt dig frĂ„n Okerr Ă€nnu â prova! Du kan gĂ„ direkt till (Klicka nu!). Men tĂ€nk pĂ„ att det bara finns ett demokonto för alla, sĂ„ om du gör nĂ„got â kan nĂ„gon annan i samma konto störa dig samtidigt. Eller (bĂ€ttre) registrera dig via lĂ€nken pĂ„ â allt Ă€r enkelt, utan SMS. Om du inte gillar att anvĂ€nda din riktiga e-post kan du anvĂ€nda en engĂ„ngse-post, som mailinator (jag rekommenderar ). SĂ„dana konton kan tas bort med tiden â men för testing kommer det att fungera.
Efter registreringen kommer du att erbjudas att genomgĂ„ en trĂ€ning (utföra nĂ„gra inte sĂ„ svĂ„ra utbildningsuppgifter). De initiala grĂ€nserna Ă€r mycket smĂ„, men för trĂ€ning eller en server Ă€r de tillrĂ€ckliga. Efter att trĂ€ningen genomförts â kommer grĂ€nserna (till exempel det maximala antalet indikatorer) att ökas.
FrĂ„n dokumentationen â i första hand för serverdelen och klienten (). Men om nĂ„got Ă€r oklart â skriv till support (at) okerr.com eller lĂ€mna en ticket â vi ska försöka lösa det snabbt.
Om du anvĂ€nder det seriöst och de ökade grĂ€nserna visar sig inte vara tillrĂ€ckliga â tveka inte att kontakta support, sĂ„ ökar vi dem (kostnadsfritt).
Vill du installera okerr-servern pĂ„ din egen server? HĂ€r Ă€r . Vi rekommenderar att installera pĂ„ en ren virtuell maskin, dĂ„ kan du enkelt göra det med installationsskriptet. PĂ„ din egen virtuella maskin â inga begrĂ€nsningar :-). Och igen â om nĂ„got, vi hjĂ€lper gĂ€rna till.
Vi vill att det hĂ€r projektet ska lyfta, att vĂ€rlden ska bli tryggare tack vare oss. Tack vare gratis programvara och tjĂ€nster har vĂ€rlden blivit mer vĂ€nlig och utvecklas snabbare. KĂ€llkoden kan lagras pĂ„ gratis GitHub, och för e-post kan man anvĂ€nda gratis Gmail. Vi anvĂ€nder gratis för support. Inget av detta krĂ€ver att man betalar för servrar, man behöver inte ladda ner och konfigurera eller lösa olika driftsproblem. Varje nytt projekt, varje team â fĂ„r direkt tillgĂ„ng till bĂ„de e-post, repository och CRM. Och allt detta Ă€r av hög kvalitet, gratis och tillgĂ€ngligt direkt. Vi vill att det ska vara samma för övervakning â smĂ„ företag och projekt skulle kunna anvĂ€nda Okerr gratis Ă€ven i sina tidigaste och vĂ€xande skeden, med samma pĂ„litlighet som stora, etablerade projekt.
KĂ€lla: habr.com
