Pārskats par Okerr hibrīda uzraudzības sistēmu

Pirms diviem gadiem es jau izveidoju ierakstu VienkārÅ”a kļūmjpārlēce vietnei par okerr. Tagad notiek kāda projekta attÄ«stÄ«ba, un es arÄ« publicēju okerr servera puses avota kods saskaņā ar atvērtā licence, tāpēc es nolēmu uzrakstÄ«t Å”o Ä«so pārskatu par Habr.

Pārskats par Okerr hibrīda uzraudzības sistēmu
[ pilna izmēra attēlu ]

Kam tas varētu interesēt

Tas var jÅ«s interesēt, ja strādājat nelielā komandā vai vienatnē. Jums nav uzraudzÄ«bas, un jÅ«s neesat pārliecināts, vai jums tas tieŔām ir vajadzÄ«gs. Vai nu jÅ«s izmēģinājāt kādu populāru nopietnu uzraudzÄ«bu ā€œlielajiem zēniemā€, bet tas jums kaut kā ā€œnepacēlāsā€, vai arÄ« tas darbojas gandrÄ«z noklusējuma konfigurācijā un daudz nemainÄ«ja jÅ«su dzÄ«vi. Un vēl ā€“ ja noteikti neplāno atvēlēt veselu darbinieku (vai pat nodaļu) monitoringa paneļa uzraudzÄ«bai vismaz pāris stundas dienā vai tā konfigurÄ“Å”anai.

Kāpēc okerr ir neparasts

Tālāk es parādÄ«Å”u interesantas okerras iezÄ«mes, kas to atŔķir no dažām citām uzraudzÄ«bas sistēmām.

Okerr ir hibrīds monitorings

IekŔējās uzraudzÄ«bas laikā uz uzraudzÄ«tajām iekārtām darbojas ā€œaÄ£entsā€, kas pārsÅ«ta datus uz uzraudzÄ«bas serveri (piemēram, brÄ«va vieta diskā). Ja serveris ir ārējs, tas veic pārbaudes tÄ«klā (piemēram, ping vai vietnes pieejamÄ«ba). Katrai pieejai ir savi ierobežojumi. Okers izmanto abas iespējas. Pārbaudes serveros veic ļoti viegls (30 Kb) aÄ£ents vai jÅ«su paÅ”u skripti un lietojumprogrammas, un tÄ«kla pārbaudes tiek veiktas, izmantojot okerr sensorus dažādās valstÄ«s.

okerr ir ne tikai programmatūra, bet arī pakalpojums

Jebkuras uzraudzÄ«bas servera daļa ir liela un sarežģīta, to ir grÅ«ti instalēt un konfigurēt, un tai ir nepiecieÅ”ami resursi. Izmantojot okerr, jÅ«s varat instalēt savu uzraudzÄ«bas serveri (tas ir bezmaksas un atvērtā koda), vai arÄ« varat vienkārÅ”i izmantot tikai klienta daļu un izmantot mÅ«su servera pakalpojumu. ArÄ« bezmaksas.

Ja monitorings ļauj kompensēt un piesegt serveru un aplikāciju uzticamÄ«bas trÅ«kumu, tad rodas filozofisks jautājums ā€“ kas ir sargs? Kā monitorings mums pastāstÄ«s par problēmu, ja tā pati kaut kādu iemeslu dēļ atseviŔķi vai kopā ar citiem jÅ«su resursiem ā€œnomiraā€ (piemēram, nokrita kanāls uz datu centru)? Lietojot ārējo servisu okerr - Ŕī problēma ir atrisināta - JÅ«s saņemsiet brÄ«dinājumu pat tad, ja viss datu centrs ar JÅ«su serveriem bÅ«s bez strāvas vai tam uzbruks zombiji.

Protams, pastāv risks, ka pats okerr serveris nebÅ«s pieejams, tā ir taisnÄ«ba (kā zināms, 90% uzticamÄ«bas vienmēr tiek iegÅ«ti vienkārÅ”i un ā€œbezmaksasā€, 99% ar minimālu piepÅ«li, un katri nākamie deviņi ir eksponenciāli grÅ«tāk). Bet, pirmkārt, iespēja, ka tas notiks, ir mazāka, un, otrkārt, problēma var palikt nepamanÄ«ta tikai tad, ja tā sakrÄ«t ar problēmām mÅ«su serveros. Ja mums ir 99.9% ticamÄ«ba, bet jums ir 99.9% (ne pārāk lieli skaitļi), tad neatklātas kļūmes iespējamÄ«ba ir 0.1% no 0.1% = 0.0001%. Pievienot trÄ«s deviņus savai uzticamÄ«bai gandrÄ«z bez piepÅ«les un bez izmaksām ir ļoti labi!

Vēl viena pārraudzÄ«bas kā pakalpojuma priekÅ”rocÄ«ba ir tā, ka mitināŔanas pakalpojumu sniedzējs vai tÄ«mekļa studija var instalēt okerr serveri un nodroÅ”ināt piekļuvi klientiem kā maksas vai bezmaksas papildu pakalpojumu. JÅ«su konkurentiem ir tikai mitināŔana un vietnes, bet jums ir uzticams mitināŔana ar uzraudzÄ«bu.

Okerr ir par rādītājiem

Indikators ir "spuldzÄ«te". Tam ir divi galvenie stāvokļi - zaļŔ (OK) vai sarkans (ERR). Projektā ir daudz grupētu (piemēram, pēc servera) indikatoru. Projekta galvenajā lapā jÅ«s uzreiz redzat, ka vai nu viss ir zaļŔ (un varat to aizvērt), vai arÄ« kaut kas deg sarkanā krāsā un ir jālabo. Pārejot starp Å”iem stāvokļiem, tiek nosÅ«tÄ«ts brÄ«dinājums. Reizi dienā, kamēr to iestatāt, tiek nosÅ«tÄ«ts projekta kopsavilkums.

Pārskats par Okerr hibrīda uzraudzības sistēmu

Katram okerr indikatoram ir iebÅ«vēti nosacÄ«jumi, ar kuriem tas maina stāvokli (Zabbix to sauc par trigeri). Piemēram, vidējai slodzei nevajadzētu bÅ«t lielākai par 2 (protams, tas ir konfigurējams). Un katrai iekŔējai pārbaudei (vidēja slodze, disks brÄ«vs, ...) ir sargsuns. Ja kāda iemesla dēļ mēs nesaņemam veiksmÄ«gu apstiprinājumu noteiktajā laikā, tiek reÄ£istrēta kļūda un tiek nosÅ«tÄ«ts brÄ«dinājums.

MÅ«su parastais darba modelis ir pārbaudÄ«t e-pastus no rÄ«ta un apskatÄ«t kopsavilkumu starp citām vēstulēm (mēs to plānojam darba sākumā). Ja tajā viss ir kārtÄ«bā, mēs darām citas svarÄ«gas lietas (bet, lai bÅ«tu droÅ”i, varam ātri apskatÄ«t okerra informācijas paneli un pārliecināties, ka Å”ajā brÄ«dÄ« viss ir zaļŔ). Ja pienāk brÄ«dinājums, mēs reaģējam.

Protams, var vienkārÅ”i saglabāt ā€œinformatÄ«vosā€ rādÄ«tājus (lai redzētu tÄ«kla attēlu no monitoringa), taču tiek darÄ«ts viss, lai vienkārÅ”i, ērti un ātri izveidotu indikatorus tieÅ”i automātiskai uzraudzÄ«bai un brÄ«dinājumu nosÅ«tÄ«Å”anai.

MērÄ·is, kuram tu iestati okerr, ir brÄ«dinājumos, lai minÅ«tē varētu izveidot indikatoru, tas varētu gadu ā€œgulētā€, tikai pieņemt atjauninājumus un, kad pēc gada kaut kas saplÄ«st, tas iedegas un sÅ«ta brÄ«dinājums. MinÅ«te, ko reiz pavadÄ«jāt indikatora izveidei, atmaksājās; jÅ«s par problēmu uzzinājāt uzreiz, pirms neviens cits. Iespējams, ka viņi to salaboja, pirms kāds to pamanÄ«ja. Kaut kas ātri pacelts netiek uzskatÄ«ts par nokrituÅ”u!

DroŔība

Būtu žēl, ja jūs iestatītu uzraudzību, lai palielinātu uzticamību, taču rezultātā jums tiek uzbrukts tīklā, un dažādos uzraudzības rīkos ir diezgan daudz tīkla ievainojamību (Zabbix, Nagios).

Aģents (okerrmod no iepakojuma okerruptate), kas darbojas sistēmā, nav tīkla serveris, bet gan klients. Tāpēc uzraudzītajā serverī nav papildu atvērtu portu, klients viegli darbojas aiz ugunsmūra vai NAT, un to ir ļoti grūti (es teiktu "neiespējami") uzlauzt tīklā, jo principā tas neklausās tīklā. kontaktligzda.

Pilns uzraudzības pārklājums

Tagad mÅ«su noteikums ir tāds, ka par visām tehniskajām problēmām mēs uzzinām no okerr. Ja pēkŔņi noteikums tiek pārkāpts (okerr nebrÄ«dināja par tā nenovērÅ”amo iestāŔanos (ja tas ir iespējams) vai ka tas jau ir noticis) - mēs pievienojam čekus okerr.

Ārējās pārbaudes

Diezgan tipisks komplekts:

  • ping
  • http statuss
  • SSL sertifikāta derÄ«guma un svaiguma pārbaude (brÄ«dinās, ja drÄ«z beigsies derÄ«guma termiņŔ)
  • atveriet TCP portu un tajā esoÅ”o reklāmkarogu
  • http grep (lapa [nedrÄ«kst] saturēt konkrētu tekstu)
  • sha1 hash, lai uztvertu lapas izmaiņas.
  • DNS (DNS ierakstam ir jābÅ«t noteiktai vērtÄ«bai)
  • WHOIS (brÄ«dinās, ja domēns drÄ«z sabojāsies)
  • Antispam DNSBL (resursdatora pārbaude pret 50+ pretsurogātpasta melnajiem sarakstiem vienlaikus)

IekŔējās pārbaudes

Arī diezgan standarta komplekts (bet viegli paplaŔināms).

  • df (brÄ«va vieta diskā)
  • vidējā slodze
  • opentcp (atvērt TCP klausÄ«Å”anās ligzdas ā€” paziņos, ja kaut kas sākās vai avarēja)
  • uptime ā€” tikai darbspējas laiks serverÄ«. Paziņos, ja tas ir mainÄ«jies (t.i., serveris ir pārslogots)
  • klienta_ip
  • dirsize ā€” mēs to izmantojam, lai izsekotu, kad mÅ«su virtuālās maŔīnas rootfs pārsniedz atļauto lielumu, neievieÅ”ot stingrus ierobežojumus, un lietotāju mājas direktoriju lielumu
  • tukÅ”s un nonempty - pārrauga failus, kuriem jābÅ«t tukÅ”iem (vai netukÅ”iem). Piemēram, paÅ”a okerr servera kļūdu žurnālam jābÅ«t tukÅ”am, un, ja tajā ir kaut kāda rindiņa, es saņemÅ”u paziņojumu un to pārbaudÄ«Å”u. Bet pasta serverÄ« mail.log NEDRÄŖKST bÅ«t tukÅ”s (N minÅ«tes pēc rotācijas). Un dažreiz tas mums bija tukÅ”s pēc sistēmas atjaunināŔanas, kad logrotate nevarēja pareizi restartēt rsyslog.
  • rindu skaits ā€” rindiņu skaits failā (piemēram, wc -l). Mēs to izmantojam kā mÄ«kstāku aizstājēju tukŔām lapām, kad kļūdu žurnāls joprojām var augt, bet tikai lēni (piemēram, Googlebot sasniedz dažas aizvērtas lapas). 2 minÅ«tēs ir 20 rindiņas. Ja tas ir augstāks, bÅ«s brÄ«dinājums

Interesantas iekŔējās pārbaudes

Ja lÄ«dz Å”im esi lasÄ«jis ā€œpa diagonāliā€, tagad bÅ«s interesantāk lasÄ«t uzmanÄ«gāk.

dublējumkopijas

Uzrauga dublējumkopijas direktorijā. MÅ«su dublējuma failiem ir tādi nosaukumi kā ā€œServerName-20200530.tar.gzā€. Katram serverim okerr tiek izveidots indikators ServerName-DATE.tar.gz (faktiskais datums mainās uz rindu ā€œDATEā€). Tiek uzraudzÄ«ta arÄ« pati svaigas dublējuma klātbÅ«tne un tās lielums (piemēram, tas nedrÄ«kst bÅ«t mazāks par 90% no iepriekŔējās dublējuma).

Kas jādara, lai pēc tam, kad esam sākuÅ”i to izveidot un ievietot Å”ajā direktorijā, sāktu izsekot jaunu dublējumu? Nekas! Å Ä« ir ļoti ērta pieeja, ja jums nav jādara nekas, jo:

  • NedarÄ«t neko ir diezgan ātri, tas ietaupa laiku
  • Ir grÅ«ti aizmirst nedarÄ«t "neko"
  • Ir grÅ«ti izdarÄ«t ā€œnekoā€ nepareizi, ar kļūdu. Nekas nav visuzticamākā metode

Ja pēkŔņi pārstāj parādÄ«ties jauni dublējuma faili, tiks parādÄ«ts brÄ«dinājums. Ja, piemēram, esat atspējojis kādu no serveriem un vairs nevajadzētu izveidot dublējumu, indikators bÅ«s jāizdzÄ“Å” (izmantojot tÄ«mekļa saskarni vai no čaulas, izmantojot API).

maxfilesz

Seko lÄ«dzi lielāko failu lielumam (parasti: /var/log/*). Tas ļauj novērst neparedzamas problēmas, piemēram, brutālās spēka paroles vai surogātpasta sÅ«tÄ«Å”anu caur serveri.

runstatus/runline

Å ie ir divi svarÄ«gi starpniekservera moduļi citu programmu darbināŔanai serverÄ«. Runstatus ziņo indikatoram programmas izejas kodu. Piemēram, okerr nav (nepieprasa) moduli, lai pārbaudÄ«tu, vai sistēmas pakalpojumi darbojas. Tas tiek darÄ«ts, izmantojot Runstatus (skatiet tālāk). Runline - ziņo serverim par rindu, ko programma ražo. Piemēram, temp_RUN="cat /sys/class/thermal/thermal_zone0/temp" mÅ«su servera Runline konfigurācijā izveido indikatoru servername:temp ar procesora temperatÅ«ru.

sql

Izpilda skaitlisku vaicājumu MySQL un ziņo par rezultātu indikatoram. VienkārŔā gadÄ«jumā varat veikt, piemēram, ā€œSELECT 1ā€ - tas pārbaudÄ«s, vai DBVS kopumā darbojas.

Taču daudz interesantāka aplikācija ir, piemēram, pasÅ«tÄ«jumu skaita izsekoÅ”ana interneta veikalā. Ja zināt, ka jums ir 100 vai vairāk pasÅ«tÄ«jumu stundā, varat iestatÄ«t minimālo limitu lÄ«dz 100 vai 80. Ja jÅ«su pārdoÅ”anas apjomi pēkŔņi samazināsies, jÅ«s saņemsit brÄ«dinājumu un varēsiet to izdomāt.

Ņemiet vērā, ka nav svarīgi, kāda neparedzama iemesla dēļ tas notika:

  • Serveris vienkārÅ”i nav pieejams (atslēgts vai bez tÄ«kla), un brÄ«dinājums nāca tāpēc, ka indikators bija ā€œsapuvisā€.
  • Serveris ir ar kaut ko pārslogots, darbojas lēni vai pazÅ«d paketes, lietotājiem tas ir neērti un viņi aiziet, neveicot pirkumus
  • Serveris ir iekļauts surogātpasta sarakstos un no tā netiek pieņemts pasts, lietotāji nevar reÄ£istrēties
  • Reklāmas kampaņas budžets ir beidzies, baneri negriežas.

Var bÅ«t dažādi iemesli, un tos visus nevar iepriekÅ” paredzēt, un to ir tehniski grÅ«ti izsekot. Bet jÅ«s varat ērti uzraudzÄ«t gala parametru (pasÅ«tÄ«jumus) un pēc tiem noteikt, ka situācija ir aizdomÄ«ga un ir pelnÄ«jusi, lai ar to bÅ«tu jārÄ«kojas.

Loģiskie rādītāji

Ä»auj izmantot BÅ«la izteiksmes (Python sintakse), izmantojot moduli izvērtēt(raksts par Habrē). IzteikÅ”anai ir pieejami projekta dati un tā rādÄ«tāji. Piemēram, iepriekÅ” sadaļā par SQL pārbaudi jÅ«s, iespējams, pamanÄ«jāt vājo vietu - dienas laikā mums var bÅ«t 100 pārdoÅ”anas gadÄ«jumu stundā, bet naktÄ« - 20, un tas ir izplatÄ«ts, nevis problēma. Ko man darÄ«t? Indikators naktÄ« pastāvÄ«gi panikas.

Varat izveidot divus indikatorus, dienu un nakti. Padariet abus ā€œklususā€ (tie nesÅ«tÄ«s brÄ«dinājumus). Un izveidot loÄ£isku indikatoru, kas prasa, lai dienas indikators bÅ«tu kārtÄ«bā pirms 20:00, un pēc 20:00 pietiek, lai nakts rādÄ«tājs bÅ«tu kārtÄ«bā.

Vēl viens loÄ£iskā indikatora izmantoÅ”anas piemērs ir eskalācija. Piemēram, projekta vadÄ«tājs atsakās no brÄ«dinājumiem (viņam tas nav jādara, administratoriem jāreaģē uz normālām problēmām), bet abonē loÄ£isko indikatoru, kas kļūst sarkans, ja projektā kāds indikators netiek izlabots atvēlētajā laikā.

Tāpat ir iespējams iestatÄ«t atļauto darba laiku, piemēram, no pulksten 3 lÄ«dz 5. Mums ir vienalga, ja Å”ajā laikā avarē serveri un vietnes. Bet 5:00 viņiem ir jāstrādā. Ja tie nedarbojas jebkurā citā laikā - brÄ«dinājums. LoÄ£iskais indikators ļauj arÄ« ņemt vērā servera dublÄ“Å”anu. Ja jums ir 5 tÄ«mekļa serveri, tad administratori var jebkurā laikā izslēgt 1-2 serverus. Bet, ja kaujā ir mazāk nekā 3 no 5 serveriem, bÅ«s brÄ«dinājums.

IepriekÅ” minētie piemēri nav oker funkcijas, nevis daži lÄ«dzekļi, kas jāaktivizē un jākonfigurē. Okerrai nav visu Å”o funkciju, bet ir loÄ£iskais modulis, kas ļauj ieviest Å”o funkcionalitāti (apmēram kā programmÄ“Å”anas valodā - ja mums ir aritmētiskie operatori, tad mums nav nepiecieÅ”ama Ä«paÅ”a funkcija 20% PVN aprēķināŔanai no valodas, jÅ«s vienmēr varat to izdarÄ«t pats, lai tas atbilstu savām vajadzÄ«bām).

Logic Indicator, iespējams, ir viena no nedaudzajām salÄ«dzinoÅ”i sarežģītajām tēmām okerr, taču labā ziņa ir tā, ka jums tas nav jāapgÅ«st, kamēr tas nav nepiecieÅ”ams. Bet tajā paŔā laikā tie ievērojami paplaÅ”ina iespējas, vienlaikus saglabājot paÅ”u sistēmu diezgan vienkārÅ”u.

Savu čeku pievienoŔana

Es tieŔām vēlētos nodot domu, ka okerr nav tÅ«kstoÅ”iem gatavu čeku komplekts visiem gadÄ«jumiem, bet gan tieÅ”i pretēji - pirmkārt - vienkārÅ”s dzinējs ar vienkārÅ”u iespēju izveidot savus čekus. Savu čeku izveide programmā okerr nav hakeru, sistēmu lÄ«dzizstrādātāju vai vismaz pieredzējuÅ”u okerr lietotāju uzdevums, bet gan izpildāms uzdevums jebkuram administratoram, kurÅ” pirms mēneÅ”a pirmo reizi instalēja Linux.

Minimālās algas pārbaudes tiek veiktas, izmantojot moduli palaiŔanas statuss:

Å Ä« rinda konfigurācijā palaiÅ”anas statuss paziņos, ja /bin/true pēkŔņi nesākas vai atgriež kaut ko citu, nevis 0.

true_OK=/bin/true

Tikai viena rindiņa - un te jau esam mazliet paplaÅ”ināts funkcionalitāte okerr.

Pat Ŕādai pārbaudei jau ir sava vērtÄ«ba: ja pēkŔņi jÅ«su serveris avarē, atbilstoÅ”ais indikators okerr serverÄ« netiks savlaicÄ«gi atjaunināts, un pēc laika parādÄ«sies brÄ«dinājums.

Šī pārbaude paziņos, ka apache2 serveris ir avarējis (nu, jūs nekad zināt...):

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

Tātad, ja jÅ«s runājat jebkurā programmÄ“Å”anas valodā un vismaz varat rakstÄ«t čaulas skriptus, tad jau varat pievienot savus čekus.

Grūtāk - jūs varat uzrakstīt (jebkurā valodā) savu okerrmod moduli. VienkārŔākajā gadījumā tas izskatās Ŕādi:

#!/usr/bin/python3

print("STATUS: OK")

Vai tas nav ļoti grÅ«ti? Modulim paÅ”am jāveic pārbaude un jāizvada rezultāti uz STDOUT. Sarežģītāks modulis sniedz, piemēram, Å”o:

$ 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

Tas vienlaikus atjaunina vairākus indikatorus (atdala ar tukÅ”u rindiņu), vajadzÄ«bas gadÄ«jumā tos izveido, norāda verifikācijas informāciju un tagu, pēc kura informācijas panelÄ« ir viegli atrast nepiecieÅ”amos rādÄ«tājus.

Telegram

Ir Telegram robots @OkerrBot. Nav nepiecieÅ”ams pārblÄ«vēt tālruni ar atseviŔķām lietojumprogrammām (man nepatÄ«k, ka Pyaterochka ir nepiecieÅ”ama viena programma ar karti, Lentai cita, MTS treŔā un tā tālāk visiem, visiem, visiem). Pietiek ar vienu telegrammu. Izmantojot telegrammu, jÅ«s varat nekavējoties saņemt brÄ«dinājumus, pārbaudÄ«t projekta statusu un dot komandu vēlreiz pārbaudÄ«t visus problemātiskos rādÄ«tājus. Izgājām no teātra/lidmaŔīnas, divas stundas neturējām pirkstu uz pulsa, ieslēdzām telefonu, nospiedām vienu pogu čatbotā un pārliecinājāmies, ka viss ir kārtÄ«bā.

Statusa lapas

Mūsdienās statusa lapas ir gandrīz obligātas jebkuram uzņēmumam, kuram ir IT, atbildīga attieksme pret uzticamību un kas izturas ar cieņu pret saviem klientiem/lietotājiem.

Iedomājieties situāciju ā€“ lietotājs vēlas kaut ko darÄ«t, apskatÄ«t informāciju vai veikt pasÅ«tÄ«jumu, un kaut kas nedarbojas. ViņŔ nezina, kas notiek, kurā pusē ir problēma un kad tā tiks atrisināta. VarbÅ«t jÅ«su uzņēmumam vienkārÅ”i ir nefunkcionējoÅ”a vietne? Vai arÄ« tas salÅ«za pirms seÅ”iem mēneÅ”iem, un tas tiks salabots pēc diviem gadiem? Bet tagad vajag nopirkt ledusskapi, tas jau ir ratos... Un pavisam cita lieta, kad cilvēks redz, ka ar tevi kaut kas nav kārtÄ«bā (vismaz skaidrs, ka problēma nav viņa pusē), ka problēma ir atklāta, ka jÅ«s jau strādājat pie tās un varbÅ«t pat pierakstāt aptuveno laboÅ”anas laiku. Lietotājs var abonēt un saņemt e-pasta paziņojumu, kad problēma ir novērsta un viņŔ var darÄ«t to, ko vēlas (nopirkt ledusskapi).

Pārskats par Okerr hibrīda uzraudzības sistēmu

Problēmas un dīkstāves gadās ikvienam. Taču lietotāji un partneri vairāk uzticas tiem, kuri ir pārredzamāki un atbildīgāki savā pieejā.

Å”eit ir 10 citu projektu apskats, kas ļauj izveidot statusa lapas. Å eit ir piemēri, kā izskatās Ŕīs projekta lapas Pitons Šø dropbox. okerr statusa lapa.

Kļūmjpārlēce

Lai Å”is raksts nebÅ«tu vēl garāks, es vēlreiz atsaukÅ”os uz savu iepriekŔējo rakstu - VienkārÅ”a kļūmjpārlēce vietnei . Ja varat izveidot servera dublikātu, tad, izmantojot kļūmjpārlēci, jums principā nebÅ«s ilgas dÄ«kstāves ā€” tiklÄ«dz tiks konstatēta problēma, lietotāji automātiski tiks novirzÄ«ti uz strādājoÅ”u rezerves serveri. Un man Ŕķiet, ka Ŕī ir ļoti interesanta, spilgta funkcija, kas reti kur ir pieejama.

Zemas sistēmas prasības

Okerr serveriem mēs izmantojam maŔīnas ar RAM no 2Gb. TÄ«kla sensoriem pietiek pat ar 512Mb. Klienta daļa parasti ir gandrÄ«z nulle. (Plastmasas maisiņŔ okerruptate sver 26 Kb, taču ir nepiecieÅ”amas Python3 un standarta bibliotēkas). Klients darbojas no cron skripta, tāpēc tam nav pastāvÄ«gas atmiņas patēriņa. Starp mÅ«su uzraudzÄ«tajām maŔīnām mums ir sensori (Ä«paÅ”i lēti VPS ar 512 Mb RAM) un Raspberry Pi. Tas ir iespējams pat bez klienta daļas sÅ«tÄ«t atjauninājumus, izmantojot curl! (SkatÄ«t zemāk)

Ņemot to vērā - okerr, iespējams visvairāk bezmaksas monitoringa sistēmu no pieejamajām, jo ā€‹ā€‹pat lai izmantotu kādu citu bezmaksas atvērtā pirmkoda sistēmu kā Zabbix vai Nagios, tai ir jāpieŔķir resursi (serveris), un tā jau ir nauda. Turklāt joprojām ir nepiecieÅ”ama servera apkope. Ar okerr Å”o daļu var noņemt. Vai arÄ« jums tas nav jānoņem un jāizmanto savs serveris atkarÄ«bā no tā, kas jums patÄ«k vislabāk.

API un integrācija patentētā programmatūrā

VienkārÅ”a un atvērta arhitektÅ«ra. okerr ir diezgan vienkārÅ”s API, ar kuru ir viegli strādāt. Jāizveido 1000 indikatori? To darÄ«s viens čaulas skripts ar 3-4 rindiņām. NepiecieÅ”ams pārkonfigurēt 1000 indikatorus? Tas ir arÄ« ļoti vienkārÅ”i. Piemēram, mēs vēlamies vēlreiz pārbaudÄ«t visus mÅ«su HTTPS sertifikātus no Krievijas sensora:

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

Jūs varat atjaunināt indikatoru, izmantojot mūsu klienta moduli, pat bez tā, tikai izmantojot 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/

JÅ«s varat atjaunināt indikatorus tieÅ”i no savas programmas. Piemēram, nosÅ«tot sirdsdarbÄ«bas signālus, lai okerr zinātu, ka tas darbojas, un izsauktu trauksmi, ja tas avarē vai sasalst. Starp citu, okerr komponenti tieÅ”i to arÄ« dara ā€“ okerr uzrauga sevi, un gandrÄ«z jebkura moduļa problēmas tiks atklātas un Ä£enerēs brÄ«dinājumu par problēmu. (Un Ŕī ā€œgandrÄ«zā€ gadÄ«jumā tie tiek pārbaudÄ«ti no cita servera)

Šeit ir kods (vienkārŔots) mūsu telegrammas robotā:

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

Ir bibliotēka indikatoru atjaunināŔanai no Python programmām okerruptate, citām valodām nav bibliotēku, taču varat izsaukt okerrupdate skriptu vai veikt HTTP pieprasÄ«jumu okerr serverim.

Kā okerr mums palīdz

Okers mainÄ«ja mÅ«su dzÄ«vi. PatieŔām. Iespējams, ka cita uzraudzÄ«bas sistēma varētu darÄ«t to paÅ”u, taču darbs ar okerr mums ir viegls un vienkārÅ”s, un tam ir visas nepiecieÅ”amās funkcijas (mēs pievienojām to, kas tai nebija). Starp citu, ja trÅ«kst kādas funkcijas, jautājiet un es tās pievienoÅ”u (es nesolu, bet es gribu, lai okerr bÅ«tu labākā uzraudzÄ«bas sistēma maziem un vidējiem projektiem). Vai vēl labāk, pievienojiet to pats ā€” tas ir vienkārÅ”i.

Mums izdevās dzÄ«vot pēc principa ā€œuzzini par visām problēmām no kerrasā€. Ja pēkŔņi rodas problēma, par kuru mēs neuzzinājām no okerr, mēs pievienojam čeku okerr. (Å”ajā gadÄ«jumā ar ā€œmēsā€ es domāju mÅ«s kā sistēmas lietotājus, nevis lÄ«dzizstrādātājus). Sākumā tas bija izplatÄ«ts, bet tagad tas ir kļuvis ļoti reti.

Uzraudzība

Izmantojot okerr, mēs uzraugām žurnālu izmērus visos serveros. Pārdomāti ar acÄ«m izlasÄ«t katru baļķa rindiņu, protams, nav iespējams, bet vienkārÅ”i augÅ”anas tempa uzraudzÄ«ba jau dod daudz. Pateicoties tam, mēs atklājām surogātpasta sÅ«tÄ«Å”anu un brutālu paroļu meklÄ“Å”anu, un, kad dažas lietojumprogrammas ā€œkļūst trakasā€, tām kaut kas neizdodas un tās atkārtojas atkal un atkal (katru reizi pievienojot žurnālam pāris rindiņas ).

SSL sertifikāti. GandrÄ«z uzreiz pēc palaiÅ”anas Ä»aujÅ”ifrēt mÅ«su klients sāka saviem klientiem (apmēram tÅ«kstotim) nodroÅ”ināt bezmaksas SSL sertifikātus. Un administrācijai tā izrādÄ«jās vienkārÅ”i elle! Fakts ir tāds, ka vietnes ir ā€œtieÅ”raidēā€, klienti periodiski lÅ«dz viņiem kaut ko darÄ«t, programmētāji to dara. Viņi, piemēram, var pilnÄ«gi brÄ«vi pārsÅ«tÄ«t vietni uz citu DocumentRoot. Vai arÄ« pievienojiet beznosacÄ«juma pārrakstÄ«Å”anu virtualhost konfigurācijai. Protams, pēc tam automātiskā sertifikātu atjaunoÅ”ana sabojājas. Tagad visi SSL resursdatori ir automātiski pievienoti okerr, izmantojot citu mÅ«su noderÄ«go utilÄ«tu no pakotnes a2conf. VienkārÅ”i palaižam a2okerr.py ā€” un, ja serverÄ« parādās vairākas jaunas vietnes, tās automātiski parādÄ«sies okerr. Ja pēkŔņi kāda iemesla dēļ sertifikāts netiek atjaunots, trÄ«s nedēļas pirms sertifikāta derÄ«guma termiņa beigām mēs esam zināmi, un mēs izdomāsim, kāpēc tas nav atjaunināts, tāds suns. a2certbot.py no tās paÅ”as pakotnes - tas ļoti palÄ«dz ar to (tas uzreiz pārbauda iespējamās problēmas - un uzraksta labi pārbaudÄ«to, un kur, visticamāk, ir problēma).

Mēs uzraugām visu mÅ«su domēnu derÄ«guma termiņu. Un visi mÅ«su pasta serveri, kas sÅ«ta pastu, tiek pārbaudÄ«ti arÄ« vairāk nekā 50 dažādos melnajos sarakstos. (Un dažreiz viņi tajās iekrÄ«t). Starp citu, vai zinājāt, ka arÄ« Google pasta serveri ir iekļauti melnajā sarakstā? PaÅ”pārbaudei mēs pievienojām mail-wr1-f54.google.com uzraudzÄ«tajiem serveriem, un tas joprojām ir SORBS melnajā sarakstā! (Å eit ir runa par ā€œpretsurogātpasta izplatÄ«tājuā€ vērtÄ«bu)

Dublējumkopijas - es jau rakstÄ«ju iepriekÅ”, cik viegli ir tos uzraudzÄ«t ar okerr. Taču mēs uzraugām gan jaunākās dublējumkopijas savā serverÄ«, gan (izmantojot atseviŔķu utilÄ«tu, kas izmanto okerr) dublējumkopijas, kuras augÅ”upielādējam vietnē Amazon Glacier. Un, jā, problēmas ik pa laikam gadās. Nav brÄ«nums, ka viņi skatÄ«jās.

Mēs izmantojam eskalācijas indikatoru. Tas parāda, vai kāda problēma nav novērsta ilgu laiku. Un es pats, risinot kādas problēmas, dažkārt varu par tām aizmirst. Eskalācija ir labs atgādinājums, pat ja uzraugāt sevi.

Kopumā uzskatu, ka mÅ«su darba kvalitāte ir palielinājusies par lielumu. GandrÄ«z nav dÄ«kstāves (vai arÄ« klientam nav laika to pamanÄ«t. Tikai tsh!), savukārt darba apjoms ir kļuvis mazāks un darba apstākļi kļuvuÅ”i mierÄ«gāki. No avārijas darbiem ar bedrÄ«Å”u aizlāpÄ«Å”anu ar lenti esam pārgājuÅ”i uz mierÄ«gu un izmērÄ«tu darbu, kad jau iepriekÅ” tiek prognozētas daudzas problēmas un ir laiks tās novērst. ArÄ« raduŔās problēmas ir kļuvuÅ”as vieglāk labojamas: pirmkārt, par tām uzzinām, pirms klienti krÄ«t panikā, otrkārt, nereti gadās, ka problēma ir saistÄ«ta ar neseno darbu (kamēr darÄ«ju vienu lietu, salauzu citu) - tāpēc ir karsts. Pēdām ir vieglāk ar to tikt galā.

Bet bija cits gadījums...

Vai zinājāt, ka populārajā Debian 9 (Stretch) tik populārā pakotne kā phpmyadmin joprojām (daudzus mēneÅ”us!) ir ievainojamā statusā? (CVE-2019-6798). Kad ievainojamÄ«ba parādÄ«jās, mēs to ātri pārklājām dažādos veidos. Bet es iestatÄ«ju droŔības izsekoÅ”anas lapas uzraudzÄ«bu programmā okerr, lai zinātu, kad iznāks ā€œskaistaisā€ risinājums (izmantojot SHA1 satura summu). Indikators mani raustÄ«ja vairākas reizes, lapa mainÄ«jās, bet, kā redzat, tas joprojām (kopÅ” 2019. gada janvāra!) neliecina, ka problēma ir atrisināta. VarbÅ«t, starp citu, kāds zina, kāda ir problēma, ka tik svarÄ«ga pakete joprojām ir neaizsargāta vairāk nekā gadu?

Citreiz lÄ«dzÄ«gā situācijā: pēc SSH ievainojamÄ«bas bija nepiecieÅ”ams atjaunināt visus serverus. Un, uzstādot uzdevumu, jums ir jākontrolē izpilde. (Padotajiem ir tendence pārprast, aizmirst, apjukt un kļūdÄ«ties). Tāpēc vispirms visos serveros okerr pievienojām SSH versijas pārbaudi un, izmantojot okerr, pārliecinājāmies, ka atjauninājumi ir ieviesti visos serveros. (Ērti! Es izvēlējos Ŕāda veida indikatoru, un uzreiz var redzēt, kuram serverim ir kura versija). Kad bijām pārliecināti, ka uzdevums ir izpildÄ«ts visos serveros, indikatorus noņēmām.

Pāris reizes bija situācija, ka rodas kāda problēma, kas pati par sevi pāriet. (iespējams, visiem pazÄ«stams?). LÄ«dz brÄ«dim, kad pamanāt, lÄ«dz brÄ«dim, kad pārbaudÄ«sit ā€” un nav ko pārbaudÄ«t ā€”, viss jau darbojas labi. Bet tad atkal saplÄ«st. Tas notika, piemēram, ar produktiem, ko augÅ”upielādējām vietnē Amazon Marketplace (MWS). Kādā brÄ«dÄ« ielādētais inventārs bija nepareizs (nepareizi preču daudzumi un nepareizas cenas). Mēs to izdomājām. Bet, lai to izdomātu, bija svarÄ«gi nekavējoties uzzināt par problēmu. Diemžēl MWS, tāpat kā visi Amazon pakalpojumi, ir nedaudz lēns, tāpēc vienmēr bija kavÄ“Å”anās, bet tomēr mēs varējām vismaz aptuveni saprast saikni starp problēmu un skriptiem, kas to izraisa (mēs pārbaudÄ«jām, iestrēgām to okerr un pārbaudÄ«ja, nekavējoties saņemot brÄ«dinājumu).

Interesantu lietu nesen kolekcijai pievienoja kāds liels un dārgs Eiropas hoster, kuru izmanto mÅ«su klients. PēkŔņi VISI mÅ«su serveri pazuda no radara! Pirmkārt, pats klients (ātrāk nekā okerra!) pamanÄ«ja, ka vietne, ar kuru viņŔ strādāja, netiek atvērta, un par to uztaisÄ«ja biļeti. Bet neizdevās tikai viena vietne, bet visas! (NataÅ”a, mēs visu pametām!). Å eit Okers sāka sÅ«tÄ«t garus pēdu aptinumus ar visiem indikatoriem, kas viņam iedegās. Panika, panika, skrienam riņķos (ko gan citu darÄ«t?). Tad viss pieauga. Izrādās, ka datu centrā notika kārtējā apkope (reizi daudzos gados), un, protams, mÅ«s vajadzēja brÄ«dināt. Bet ar viņiem notika kāda veida problēma, un viņi mÅ«s nebrÄ«dināja. Nu, vairāk sirdslēkmes, mazāk sirdslēkmes. Bet pēc tam, kad viss ir atjaunots, jums viss ir jāpārbauda vēlreiz! Es nevaru iedomāties, kā es to darÄ«tu ar savām rokām. Okers visu pārbaudÄ«ja dažu minÅ«Å”u laikā. IzrādÄ«jās, ka lielākā daļa serveru vienkārÅ”i Ä«slaicÄ«gi nebija pieejami, taču tie strādāja. Daži bija pārslogoti, bet arÄ« piecēlās kājās. No visiem zaudējumiem mēs pazaudējām divus dublējumus, kurus pēc kroņa vajadzēja izveidot un ielādēt, kamēr Å”is pilnais banāns notika. Es pat neuztraucos tos izveidot, tikai dienu vēlāk ieradās brÄ«dinājumi, ka viss ir kārtÄ«bā, ir parādÄ«juÅ”ies dublējumkopijas. Å is piemērs man ļoti patÄ«k, jo okerr izrādÄ«jās ļoti noderÄ«gs situācijā, par kuru iepriekÅ” pat nebijām domājuÅ”i, bet tāds ir monitoringa mērÄ·is - pretoties neparedzamajam.

Okerr sensoriem izmantojam lētāko iespējamo hostingu (kur kvalitāte un uzticamÄ«ba nav svarÄ«ga, tie viens otru apdroÅ”ina). Tātad, mēs nesen atradām ļoti labu mitināŔanu un ļoti lētu, kritēriji ir lieliski. Bet... reizēm izrādās, ka izejoÅ”ie savienojumi no virtuālās maŔīnas tiek veidoti no cita (kaimiņu) IP. BrÄ«numi. Client_ip modulis ar https://diagnostic.opendns.com/myip saņem nepareizu IP. Un no indikatora servera žurnāliem ir skaidrs, ka atjauninājums nāca arÄ« no Ŕīs kaimiņu IP. Tagad tiksim galā ar atbalstu. Labi, ka miera laikā to pamanÄ«jām. Bet, piemēram, bieži gadās, ka piekļuve tiek reÄ£istrēta pēc IP baltā saraksta - un, ja serveris dažreiz mirgo Ŕādi Ä«su brÄ«di - jÅ«s varat mēģināt noÄ·ert Å”o problēmu ļoti ilgu laiku.

Nu, vēl viena lieta - tā kā mēs runājam par VPS mitināŔanu - mēs vienmēr izmantojam lētus (hetzner, ovh, scaleway). Man ļoti patÄ«k gan etalonu, gan stabilitātes ziņā. Mēs izmantojam arÄ« daudz dārgāko Amazon EC2 citiem projektiem. Tātad, pateicoties okerr, mums ir savs informēts viedoklis. Viņi abi krÄ«t. Un es neteiktu, ka mÅ«su novērojumu ilgajā periodā lēti hostingi, piemēram, hetzner, izrādÄ«jās ievērojami mazāk stabili nekā EC2. Tāpēc, ja neesat piesaistÄ«ts citām Amazon funkcijām, kāpēc maksāt vairāk? šŸ™‚

Ko tālāk?

Ja Å”ajā posmā es vēl neesmu jÅ«s aizbiedējis no Okerr, tad izmēģiniet to! JÅ«s varat doties tieÅ”i uz Å”o saiti okerr demonstrācijas konts (NoklikŔķiniet tagad!) Taču ņemiet vērā, ka visiem ir tikai viens demonstrācijas konts, tādēļ, ja kaut ko darāt, kāds cits tajā paŔā kontā var vienlaikus traucēt jums. Vai (labāk) reÄ£istrējieties, izmantojot saiti uz izbraukuma okerr - viss ir vienkārÅ”i, bez SMS. Ja jums nepatÄ«k izmantot savu Ä«sto e-pastu, varat izmantot vienreizējo e-pastu, piemēram, mailinator (iesaku getnada.com). Laika gaitā Ŕādi konti var tikt dzēsti, taču tie bÅ«s piemēroti pārbaudei.

Pēc reÄ£istrācijas jums tiks lÅ«gts iziet apmācÄ«bu (veikt vairākus ne pārāk sarežģītus treniņu uzdevumus). Sākotnējie limiti ir ļoti mazi, bet treniņiem vai vienam serverim ar tiem pietiek. Pēc apmācÄ«bas pabeigÅ”anas limiti (piemēram, maksimālais rādÄ«tāju skaits) tiks palielināti.

No dokumentācijas ā€“ pirmkārt WIKI servera pusē un klienta (okerrupdate wiki). Bet, ja kaut kas nav skaidrs, rakstiet uz support (at) okerr.com vai atstājiet biļeti - mēģināsim visu ātri atrisināt.

Ja lietojat to nopietni un ar Å”iem palielinātajiem limitiem nepietiek, rakstiet atbalsta dienestam un mēs to palielināsim (bez maksas).

Vai vēlaties instalēt okerr serveri savā serverÄ«? Å eit okerr-dev repozitorijs. Mēs iesakām instalēt tÄ«rā virtuālajā maŔīnā, pēc tam varat to izdarÄ«t vienkārÅ”i ar instalācijas skriptu. JÅ«su virtuālajā maŔīnā - bez ierobežojumiem :-). Nu atkal, ja kaut kas notiks, mēs vienmēr centÄ«simies palÄ«dzēt.

Mēs vēlamies, lai Å”is projekts paceltos, lai, pateicoties mums, pasaule kļūtu uzticamāka. Pateicoties bezmaksas programmatÅ«rai un pakalpojumiem, pasaule ir kļuvusi draudzÄ«gāka un attÄ«stās dinamiskāk. Avotus var glabāt bezmaksas github, pastam varat izmantot bezmaksas gmail. Mēs izmantojam bezmaksas svaigie darbi par atbalstu. Lai to izdarÄ«tu, jums nav jāmaksā par serveriem, jums nav jālejupielādē un jākonfigurē, kā arÄ« jums nav jāatrisina dažādas darbÄ«bas problēmas. Katram jaunam projektam, katrai komandai nekavējoties ir pasts, krātuves un CRM. Un tas viss ir ļoti kvalitatÄ«vi un bez maksas un nekavējoties. Gribam, lai tā bÅ«tu arÄ« uzraudzÄ«bā - mazie uzņēmumi un projekti varētu izmantot okerr bez maksas un pat dzimÅ”anas un izaugsmes stadijā ir pieauguÅ”o nopietnu projektu uzticamÄ«ba.

Avots: www.habr.com