Dulmarka nidaamka la socodka isku-dhafka Okerr

Laba sano ka hor waxaan horey u sameeyay boostada Fashil fudud oo loogu talagalay mareegaha ku saabsan okerr. Hadda waxaa jira xoogaa horumarin ah oo mashruuca ah, waxaanan sidoo kale daabacay okerr koodka isha dhinaca serverka under shatiga furan, waana sababta aan go'aansaday in aan dib u eegiskan gaaban ku qoro Habr.

Dulmarka nidaamka la socodka isku-dhafka Okerr
[ cabbirka buuxa ]

Cidda ay danaynayso

Tani waxay noqon kartaa mid xiiso kuu leh haddii aad ka shaqeyso koox yar ama kaligaa. Ma lihid la socodka mana hubin inaad runtii u baahan tahay iyo in kale. Ama waxaad isku dayday qaar ka mid ah kormeerka halista ah ee caanka ah "wiilasha waaweyn", laakiin si uun "kama qaadin" adiga, ama waxay ku shaqeysaa qaabeyn ku dhawaad ​​​​ah oo ma beddelin noloshaada wax badan. Iyo sidoo kale - haddii aadan runtii qorsheyneynin inaad u qoondeyso shaqaale dhan (ama xitaa waax) si aad ula socoto dashboardka la socodka ugu yaraan dhowr saacadood maalintii ama u habeyn.

Waa maxay sababta okerr aan caadi ahayn

Marka xigta waxaan muujin doonaa muuqaalada xiisaha leh ee okerra oo ka soocaya nidaamyada kale ee kormeerka.

Okerr waa kormeer isku-dhafan

Inta lagu jiro la socodka gudaha, "wakiil" ayaa ku shaqeeya mishiinnada la kormeeray, kuwaas oo u gudbiya xogta server-ka kormeerka (tusaale, meel disk ah oo bilaash ah). Marka dibadda, server-ku waxa uu sameeyaa hubinta shabakadda (tusaale, ping ama helitaanka bogga internetka). Hab kastaa wuxuu leeyahay xaddidaaddiisa. Okerr waxay isticmaashaa labada doorasho. Hubinta gudaha server-yada waxaa sameeya wakiil aad u fudud (30Kb) ama qoraalladaada iyo codsiyadaada, iyo hubinta shabakada waxaa lagu sameeyaa dareemayaasha okerr ee dalal kala duwan.

okerr ma aha oo kaliya software, laakiin sidoo kale waa adeeg

Qaybta server-ka ee kormeer kasta waa mid weyn oo adag, way adagtahay in la rakibo oo la habeeyo, waxayna u baahan tahay ilo. Okerr waxaad ku rakibi kartaa server-kaaga kormeerka ah (waa lacag la'aan iyo il furan), ama waxaad si fudud u isticmaali kartaa qaybta macmiilka oo kaliya waxaadna isticmaali kartaa adeegga server-kayaga. Sidoo kale bilaash.

Haddii kormeerku kuu ogolaado inaad magdhowdo oo aad daboosho la'aanta kalsoonida ee server-yada iyo codsiyada, markaa su'aal falsafadeed ayaa soo baxaysa - waa ayo ilaaliyaha? Sidee korjoogtuhu nooga sheegi doonaa dhibaatada haddii ay lafteedu u "dhintay" sabab qaar ka mid ah, si gaar ah ama si wadajir ah ula socdaan agabyadaada kale (tusaale, kanaalka xarunta xogta uu dhacay)? Markaad isticmaalayso okerr adeegga dibadda - dhibaatadan waa la xalliyaa - waxaad heli doontaa digniin xitaa haddii dhammaan xarunta xogta ee server-yadaadu ay tahay mid aan awood lahayn ama ay soo weerareen zombies.

Dabcan, waxaa jira halis ah in server-ka okerr laftiisa aan la heli karin, tani waa run (sida aad ogtahay, 90% isku halaynta ayaa had iyo jeer la helaa si fudud oo "free", 99% oo leh ugu yaraan dadaal, iyo sagaal kasta oo xiga waa aad u adag). Laakiin, marka hore, fursadaha tani dhacdo way yar tahay, marka labaadna, dhibaatadu waxay noqon kartaa mid aan la ogaan karin kaliya haddii ay ku soo beeganto dhibaatooyinka server-yadayada. Haddii aan haysano 99.9% isku halaynta, oo aad leedahay 99.9% (maaha tirooyinka aad u sarreeya), markaa fursadda fashilka aan la ogaanin waa 0.1% ee 0.1% = 0.0001%. Ku darida saddex sagal kalsoonidaada ku dhawaad ​​dadaal la'aan iyo kharash la'aan aad bay u fiican tahay!

Faa'iidada kale ee la socodka adeeg ahaan waa in bixiyaha martigeliyaha ama istuudiyaha mareegaha uu ku rakibi karo server-ka okerr oo uu siin karo macaamiisha adeeg dheeraad ah oo lacag ama bilaash ah. Tartamayaashaagu waxay leeyihiin kaliya martigelin iyo shabakado, laakiin waxaad leedahay martigelin la isku halayn karo oo la socodka la socdo.

Okerr waxay ku saabsan tahay tilmaamayaasha

Tilmaamuhu waa "nalalka iftiinka". Waxay leedahay laba gobol oo waaweyn - cagaar (OK) ama casaan (ERR). Mashruucu waxa uu ka kooban yahay tilmaameyaal badan oo la kooxeeyay (tusaale ahaan, server). Bogga ugu weyn ee mashruuca, waxaad isla markiiba arkaysaa in wax walba ay cagaar yihiin (waana aad xiri kartaa), ama wax casaan ah oo u baahan in la saxo. Marka loo kala wareegayo goboladan, digniin ayaa la diraa. Hal mar maalintii markaad dejinayso, koobitaanka mashruuca ayaa la soo diraa.

Dulmarka nidaamka la socodka isku-dhafka Okerr

Tilmaame kasta oo okerr ah wuxuu leeyahay xaalado gudaha ah oo ay ku beddesho xaalad (Zabbix tan waxaa loo yaqaan kicinta). Tusaale ahaan, celceliska culeysku waa inuusan ka badneyn 2 (dabcan, tani waa mid la habeyn karo). Iyo jeeg kasta oo gudaha ah (celceliska culeyska, diskooga bilaashka ah, ...) waxaa jira ilaaliye. Haddii sabab qaar ka mid ah aynaan helin xaqiijinta guulaysata wakhtiga la cayimay, khalad ayaa la galay oo digniin ayaa la soo diraa.

Qaabka shaqadayada caadiga ah waa in aan hubinno iimaylada subaxdii, oo aan eegno soo koobidda xarfaha kale (waxaan ku ballansanahay bilowga shaqada). Haddii wax walba ay ku fiican yihiin, waxaan sameynaa waxyaabo kale oo muhiim ah (laakiin si aan u badbaadno, waxaan si deg deg ah u eegi karnaa dashboard-ka okerra oo aan hubinno in wax walba ay cagaar yihiin xilligan). Haddii digniintu timaado, waanu ka falcelinaynaa.

Dabcan, waxaa suurtagal ah in si fudud loo ilaaliyo tilmaamayaasha "macluumaad" (si aad u aragto sawirka shabakadda ee kormeerka), laakiin wax walba waxaa loo sameeyaa si fudud, si fudud oo degdeg ah loo abuuro tilmaamayaasha si gaar ah loogu talagalay kormeerka tooska ah iyo dirista digniinaha.

Ujeedada aad u dejisanayso okerr waa digniin, si aad u abuurto tilmaame hal daqiiqo gudaheed, waxay "seexan kartaa" hal sano, kaliya aqbal cusbooneysiinta, marka sanad ka dib wax jabo, wuu shidaa oo soo diraa digniin . Daqiiqadii aad hal mar ku bixisay abuurista tilmaame waa ay bixisay; waxaad baratay dhibaatada isla markiiba, ka hor qof kale. Waa suurtogal in ay hagaajiyeen ka hor inta aan cidina ogaan. Wax degdeg loo kiciyo looma arko inuu dhacay!

Amniga

Waxay noqon doontaa wax laga xishoodo haddii aad u dejiso kormeerka si loo kordhiyo isku halaynta, laakiin natiijada, waxaa lagugu soo weeraray shabakada iyada oo loo marayo, waxaana jira wax badan oo nuglaanta shabakada ah ee qalabka kormeerka kala duwan (Zabbix, Nagios).

Wakiilka (okermod ka xirmada sare u kac) Ku shaqaynta nidaamka ma aha server shabakad, laakiin waa macmiil. Sidaa darteed, ma jiraan dekedo dheeraad ah oo furan oo ku saabsan server-ka la kormeero, macmiilku si fudud ayuu u shaqeeyaa gadaasha dab-damiska ama NAT oo aad u adag (waxaan dhihi karaa "aan suurtagal ahayn") in la jabsado shabakada, maadaama mabda'a aysan dhagaysan shabakada godad.

Daboolista la socodka buuxda

Hadda sharcigayagu waa in aan wax ka barano dhammaan dhibaatooyinka farsamada okerr. Haddii si lama filaan ah sharciga loo jebiyo (okerr kama digin inay dhowaan dhacdo (haddii ay taasi suurtogal tahay) ama inay hore u dhacday) - waxaan ku darnaa jeegaga okerr.

Jeegaga dibadeed

Qaab caadi ah:

  • ping
  • Heerka http
  • hubinta ansaxnimada iyo cusub ee shahaadada SSL (waxay ka digaysaa haddii ay ku dhowdahay inay dhacayso)
  • fur dekedda TCP iyo banner dusheeda
  • http grep (bogga [waa inaanu ku jirin] qoraal gaar ah)
  • sha1 xashiish si loo qabto isbeddelka bogga.
  • DNS (Diiwaanka DNS waa inuu lahaadaa qiimo gaar ah)
  • WHOIS (waxay ka digaysaa haddii domainku uu xumaanayo)
  • Antispam DNSBL (проверка хоста сразу по 50+ антиспамерским блеклистам)

Jeegaga gudaha

Sidoo kale, go'an heersare ah oo cadaalad ah (laakiin si fudud loo ballaarin karo).

  • df (meel diskiga bilaashka ah)
  • celceliska culeyska
  • opentcp (furan saldhigyada dhageysiga TCP - ayaa ogeysiin doona haddii ay wax bilowdeen ama burbureen)
  • uptime-kaliya wakhtiga ku haboon serverka. Way sheegi doontaa haddii ay is bedeshay (tusaale ahaan seerfarku culays badan buu saaray)
  • macmiilka_ip
  • dirsize - waxaan u isticmaalnaa si aan ula socono marka rootfsyada mashiinka dalwaddu ay dhaafaan cabbirka la oggol yahay, iyada oo aan soo bandhigin xaddidaadyo adag, iyo cabbirka tusaha guriga isticmaalaha
  • faaruq iyo faaruq - la soco faylalka ay tahay inay madhan yihiin (ama aan madhnayn). Tusaale ahaan, diiwaanka qaladka ee server-ka okerr laftiisa waa inuu ahaadaa mid faaruq ah, oo haddii xitaa xariiq uu ku yaal, waxaan heli doonaa ogeysiis oo hubin. Laakin mail.log ee server-ka boostada yuusan faaruqin (daqiiqado N kadib wareegtada). Mararka qaarkoodna way madhnayd ka dib markii la cusbooneysiiyey nidaamka, markii logrotate uu dib u bilaabi waayay rsyslog si sax ah.
  • linecount - tirada xariiqyada faylka (sida wc -l). Waxaan u isticmaalnaa bedelka jilicsan ee faaruq ah, marka diiwaanka khaladku uu weli kori karo, laakiin si tartiib ah (tusaale, Googlebot wuxuu ku dhuftey bogag xiran). Waxaa jira xad ah 2 sadar 20 daqiiqo gudahood. Haddii ay ka sarreyso, waxaa jiri doona digniin

Jeegaga gudaha ee xiisaha leh

Haddii aad wax u akhrinaysay ilaa heerkan “si toos ah”, hadda waxa aad u xiiso badan in aad si taxadar leh u akhrido.

keydinta

Wuxuu la socdaa kaydinta hagaha. Faylashayada kaydka ah waxay leeyihiin magacyo sida "ServerName-20200530.tar.gz". Server kasta oo ku jira okerr, tilmaame ServerName-DATE.tar.gz ayaa loo abuuray (taariikhda dhabta ah waxay isbedeshaa xariiqda “DATE”). Joogitaanka kayd cusub iyo cabbirkeeda sidoo kale waa lala socdaa (tusaale ahaan, kama yaraan karto 90% kaydkii hore).

Maxaa loo baahan yahay in la sameeyo si gurmad cusub loo bilaabo ka dib markii aan bilownay abuurista oo aan gelino buuggan? Waxba! Tani waa hab ku habboon marka aad u baahan tahay inaad "waxba qabato" sababtoo ah:

  • In la sameeyo "waxba" aad bay u dhakhso badan tahay, waxay badbaadinaysaa waqti
  • Way adag tahay in la iloobo "waxba"
  • Way adag tahay in "waxba" khaldan la sameeyo, iyadoo qalad ah. Waxba maaha habka ugu kalsoonida badan

Haddi ay si lama filaan ah u joojiyaan faylalka kaydka ah ee cusub, waxa jiri doona digniin Haddii, tusaale ahaan, aad curyaamisay mid ka mid ah server-yada, oo aysan jirin wax kayd ah, waxaad u baahan doontaa inaad tirtirto tilmaamayaasha (iyada oo loo marayo interface interface ama qolofka iyada oo loo marayo API).

maxfilesz

Wuxuu ilaaliyaa cabbirka faylalka ugu waaweyn (sida caadiga ah: /var/log/*). Tani waxay kuu ogolaaneysaa inaad qabsato dhibaatooyin aan la saadaalin karin, tusaale ahaan, furaha sirta ah ee xoogga leh ama u soo diri spam dhex mara serverka.

runstatus/runline

Kuwani waa laba qaybood oo muhiim ah oo loogu talagalay socodsiinta barnaamijyada kale ee server-ka. Runstatus waxay u sheegaysaa koodka ka bixitaanka barnaamijka tusaha. Tusaale ahaan, okerr (ma baahna) module si loo hubiyo in adeegyada habaysan ay socdaan. Tan waxaa lagu sameeyaa runstatus (hoos eeg). Runline - wuxuu u sheegaa server-ka khadka uu barnaamijku soo saaro. Tusaale ahaan, temp_RUN="cat /sys/class/thermal/thermal_zone0/temp" Nidaamka Runline-ka ee server-kayaga wuxuu abuuraa tilmaame magaceed: kuleyl leh heerkulka processor-ka.

sql

Waxay ku fulisaa weydiimo lambaro MySQL oo waxay natiijada u gudbisaa tusaha. Xaalad fudud, waxaad samayn kartaa, tusaale ahaan, "Dooro 1" - tani waxay hubin doontaa in DBMS guud ahaan ay shaqeyso.

Laakiin codsi aad u xiiso badan ayaa ah, tusaale ahaan, raadinta tirada dalabaadka ee dukaanka internetka. Haddii aad ogtahay in aad haysato 100 ama wax ka badan saacaddii, waxaad dejin kartaa xadka ugu yar ee 100 ama 80. Markaa haddii iibkaagu si lama filaan ah u dhaco, waxaad heli doontaa digniin oo waad ogaan kartaa.

Ogsoonow in aysan macno lahayn sababta aan la saadaalin karin tan u dhacday:

  • Server-ku si fudud lama heli karo (tamar la'aan ama shabakad la'aan), digniintuna waxay ka timid xaqiiqda ah in tilmaamuhu " qudhmay".
  • Server-ku wax badan buu ku raran yahay, si tartiib ah ayuu u shaqaynayaa ama baakidhku waa lumay, way dhibaysaa isticmaalayaasha wayna baxaan iyaga oo aan wax iibsan
  • Seerfarku waxa uu ku jiraa liiska spamka, boostadana lama aqbalin, isticmaalayaashu ma diiwaangelin karaan
  • Miisaaniyadda ololaha xayaysiisku wuu dhammaaday, calammo ma wareegayaan.

Waxaa jiri kara tiro kasta oo sababo ah, dhammaantoodna lama sii saadaalin karo, farsamo ahaanna way adag tahay in la raad raaco. Laakiin waxaad si ku habboon ula socon kartaa cabbirka ugu dambeeya (amarada) oo aad ka ogaan kartaa in xaaladdu tahay mid laga shakisan yahay oo ay mudan tahay in wax laga qabto.

Tilmaamayaal macquul ah

Oggolow isticmaalka tibaaxaha Boolean (Python syntax) iyada oo loo marayo cutubka qiimee(maqaal ku saabsan Habré). Xogta mashruuca iyo tilmaamayaasha ayaa diyaar u ah muujinta. Tusaale ahaan, cutubka ku saabsan hubinta SQL ee kor ku xusan, waxaa laga yaabaa inaad dareentay meel daciif ah - maalintii waxaan heli karnaa 100 iib ah saacaddii, laakiin habeenkii - 20, tani waa mid caadi ah, maaha dhibaato. Maxaan sameeyaa? Tilmaamuhu wuxuu si joogto ah u argagaxi doonaa habeenkii.

Waxaad abuuri kartaa laba tilmaame, maalin iyo habeen. Labadaba ka dhig "amus" (ma diri doonaan digniino). Samee tilmaame macquul ah oo u baahan in tusaha maalintu uu ahaado OK ka hor 20:00, iyo 20:00 ka dib waa ku filan tahay tilmaame habeenkii inuu OK yahay.

Tusaalaha kale ee isticmaalka tilmaame macquul ah waa kororka. Tusaale ahaan, maamulaha mashruucu wuxuu ka baxaa digniinaha (ma laha baahi loo qabo inuu tan sameeyo, admins waa inay ka jawaabaan dhibaatooyinka caadiga ah), laakiin waxay ku biiraan tilmaame macquul ah oo casaan noqda haddii calaamad kasta oo mashruuca ah aan la saxin wakhtiga loogu talagalay.

Sidoo kale, waxaa suurtagal ah in la dejiyo wakhtiga loo oggol yahay shaqada, tusaale ahaan, laga bilaabo 3 ilaa 5 subaxnimo. Wax dan ah kama hayno haddii serfarada iyo goobuhu shilmaan wakhtigan. Laakiin 5:00 waa inay shaqeeyaan. Haddii aysan shaqayn waqti kale - heegan. Tilmaamaha macquulka ah wuxuu sidoo kale kuu ogolaanayaa inaad tixgeliso ka-noqoshada server-ka. Haddii aad leedahay 5 shabakadood, markaa maamulayaashu waxay damin karaan 1-2 server wakhti kasta. Laakiin haddii ay jiraan wax ka yar 3 ka mid ah 5 server, waxaa jiri doona digniin.

Tusaalooyinka kor ku xusan maaha shaqooyinka oker, maaha qaar ka mid ah sifooyinka u baahan in la dhaqaajiyo oo la habeeyo. Okerra ma laha dhammaan hawlahan, laakiin waxaa jira module macquul ah oo kuu ogolaanaya inaad hirgeliso shaqeyntan (qiyaastii sida luqadda barnaamijka - haddii aan leenahay hawlwadeennada xisaabinta, markaa uma baahnid shaqo gaar ah xisaabinta 20% VAT laga bilaabo luqadda, had iyo jeer waad samayn kartaa laftaada ka dhig mid ku habboon baahiyahaaga).

Tusiyaha macquulka ah waxay u badan tahay inuu yahay mid ka mid ah mawduucyada yar ee kakan ee okerr, laakiin warka wanaagsan ayaa ah inaadan u baahnayn inaad si fiican u maamusho ilaa aad u baahan tahay. Laakiin isla mar ahaantaana, waxay si weyn u ballaariyaan awoodaha, iyadoo la ilaalinayo nidaamka laftiisa mid fudud.

Ku darida jeegagaaga gaarka ah

Waxaan runtii jeclaan lahaa in aan soo gudbiyo fikradda ah in okerr ma aha set oo ah kun oo jeeg diyaar u ah oo dhan jeer, laakiin lid ku ah - ugu horeysay oo dhan - engine fudud oo leh awood fudud si ay u abuuraan jeegaga adiga kuu gaar ah. Abuuritaanka jeegagaaga okerr hawl uma aha hackers-ka, nidaamka-horumariyeyaasha nidaamka, ama ugu yaraan isticmaalayaasha sare-u-qaadista, laakiin waa hawl macquul ah oo loogu talagalay maamul kasta oo rakibay Linux markii ugu horreysay bil ka hor.

Hubinta mushaharka ugu yar waxaa lagu sameeyaa cutubka runstatus:

Sadarkan ku jira qaabeynta runstatus ayaa ku ogeysiin doona haddii / bin/runtu si lama filaan ah u bilaabin ama u soo celin wax aan ahayn 0.

true_OK=/bin/true

Kaliya hal xariiq - iyo halkan waxaan horeyba u nahay wax yar balaadhiyey functionality okerr.

Xitaa jeega noocan oo kale ah ayaa horey u lahaan jiray qiimihiisii: haddii si lama filaan ah u burburo server-kaagu, tilmaame u dhigma ee server-ka okerr lama cusbooneysiin doono waqti ku habboon, ka dib markii wakhtigu dhaafo, digniin ayaa soo bixi doonta.

Jeeggani wuxuu ogeysiin doonaa in server-ka apache2 uu shil galay (si fiican, weligaa ma ogid...):

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

Sidaa darteed, haddii aad ku hadasho luuqad kasta oo barnaamij ah, oo ugu yaraan aad qori karto qoraallada qolofka, markaa waxaad horeyba ugu dari kartaa jeegagaaga gaarka ah.

Aad u dhib badan - waxaad ku qori kartaa (luqad kasta) modulekaaga okermod. Xaaladda ugu fudud waxay u egtahay sidan:

#!/usr/bin/python3

print("STATUS: OK")

Miyaanay aad u adag ahayn? Module-ku waa in uu is hubiyo oo natiijada u soo saaraa STDOUT. Qayb ka adag ayaa ku siinaysa, tusaale ahaan, tan:

$ 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

Waxay cusbooneysiisaa dhowr tilmaame hal mar (oo ay kala soocaan xariiq madhan), waxay abuurtaa haddii loo baahdo, waxay muujisaa faahfaahinta xaqiijinta iyo calaamad ay fududahay in la helo tilmaamayaasha lagama maarmaanka ah ee dashboard-ka.

telegraam

Waxaa jira bot Telegram ah @OkerrBot. Uma baahnid inaad telefoonkaaga ku dhejisid codsiyo kala duwan (ma jecli taas Pyaterochka waxaad u baahan tahay hal codsi oo leh khariidad, Lenta kale, MTS saddexaad, iyo wixii la mid ah qof kasta, dhammaan, dhammaan). Hal telegram ayaa ku filan. Telegram-ka waxaad isla markiiba heli kartaa digniino, hubi heerka mashruuca oo aad bixi kartaa amar si aad dib ugu hubiso dhammaan tilmaamayaasha dhibaatada leh. Waxaan ka tagnay masraxa/diyaarada, fartayada kuma haynin garaaca wadnaha laba saacadood, shidnay telefoonka, riixay hal badhan ee chatbot-ka, waxaanu hubinnay in wax walba ay fiican yihiin.

Bogagga Xaaladda

Maalmahan, boggaga heerka waxay ku dhow yihiin inay leeyihiin ganacsi kasta oo leh IT, dabeecad mas'uul ka ah isku halaynta oo ula dhaqma macaamiisheeda/isticmaalayaasha si xushmad leh.

Bal qiyaas xaalad - isticmaaluhu wuxuu rabaa inuu wax sameeyo, eego macluumaadka ama dalbo, waxna ma shaqeeyaan. Ma garanayo waxa jira, cidda dhibku ka jiro iyo goorta la xalin doono. Waxaa laga yaabaa in shirkaddaadu ay si fudud u leedahay shabakad aan shaqaynayn? Mise lix bilood ka hor ayay jabtay oo laba sano ayaa lagu hagaajin doonaa? Laakiin waxaad u baahan tahay inaad hadda soo iibsato qaboojiyaha, waxay horeyba ugu jirtay gaadhiga ... Waana arrin gebi ahaanba ka duwan marka qofku arko in ay wax kaa khaldan yihiin (ugu yaraan way caddahay in dhibaatadu aanay ahayn dhinaciisa), in dhibka ayaa la ogaaday, in aad mar hore ka shaqaynaysay, oo laga yaaba in aad qorto wakhtiga saxda ah ee saxda ah. Isticmaaluhu wuu isdiiwaangelin karaa oo heli karaa ogeysiis iimayl ah marka dhibaatadu la xaliyo oo wuxuu samayn karaa wuxuu rabo (iibso qaboojiyaha).

Dulmarka nidaamka la socodka isku-dhafka Okerr

Dhibaatooyin iyo waqti dhimis ayaa ku dhaca qof kasta. Laakin isticmaalayaasha iyo la-hawlgalayaasha ayaa aad u aaminsan kuwa ka hufan oo ka masuula habka ay arrintan u wajahayaan.

halkan dib u eegista 10 mashruuc oo kale oo kuu ogolaanaya inaad abuurto bogag xaaladeed. Halkan waxaa ah tusaalooyin ku saabsan sida ay u egyihiin bogagga mashruuca Python и DropBox. okerr status page.

Gacan-siin

Si aan qoraalkan uga sii dheeraan, waxaan mar kale tixraaci doonaa maqaalkeygii hore - Fashil fudud oo loogu talagalay mareegaha . Haddii aad samayn karto server nuqul ka mid ah, ka dib adigoo isticmaalaya failure, asal ahaan ma lahaan doontid waqti dheer - isla marka dhibaatada la ogaado, isticmaalayaasha si toos ah ayaa loo wareejin doonaa server-ka kaydinta shaqeeya. Oo waxay iila muuqataa in tani ay tahay mid aad u xiiso badan, muuqaal dhalaalaya oo dhif ah meel kasta.

Shuruudaha nidaamka hooseeya

Adeegayaasha okerr, waxaan u isticmaalnaa mashiinada RAM ka 2Gb. Dareemayaasha shabakada, xitaa 512Mb ayaa ku filan. Qaybta macmiilku guud ahaan waa eber. (Bacda caagga ah sare u kac culeyskiisu waa 26 Kb, laakiin wuxuu u baahan yahay Python3 iyo maktabadaha caadiga ah). Macmiilku waxa uu ka socdaa script cron, marka waxa uu leeyahay eber isticmaalka xusuusta joogtada ah. Mashiinnada aan kormeernay, waxaan haynaa dareemayaal (VPS oo aad u jaban oo leh 512Mb RAM) iyo Raspberry Pi. Waa suurtogal xitaa iyada oo aan la helin qaybta macmiilka Wixii ku soo kordha ku soo dir curl! (hoos eeg)

Iyada oo tan xisaabta lagu daro - okerr, malaha ugu bilaasha Nidaamka kormeerka ee kuwa la heli karo, sababtoo ah xitaa si aad u isticmaasho nidaam kale oo furan oo bilaash ah sida Zabbix ama Nagios, waxaad u baahan tahay inaad u qoondayso kheyraadka (server), tanina waa horeba lacag. Intaa waxaa dheer, dayactirka server-ka qaarkood ayaa weli loo baahan yahay. Iyadoo okerr, qaybtan waa laga saari karaa. Ama maaha inaad ka saarto oo aad isticmaasho server-kaaga, iyadoo ku xiran waxa aad jeceshahay.

API iyo ku biirinta software-ka gaarka ah

Nashqada fudud oo furan. okerr wuxuu leeyahay mid fudud oo quruxsan API, oo ay fududahay in lagu shaqeeyo. Ma u baahan tahay inaad abuurto 1000 tilmaame? Hal xaraf oo qolof ah oo 3-4 xariiq ah ayaa tan samayn doona. Ma u baahan tahay in dib loo habeeyo 1000 tilmaame? Sidoo kale aad bay u fududahay. Tusaale ahaan, waxaan rabnaa inaan laba-laabno dhammaan shahaadooyinka HTTPS ee ka imanaya dareeme Ruush:

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

Waxaad ku cusboonaysiin kartaa tusaha adigoo isticmaalaya moduleka macmiilkayaga, xitaa la'aanteed, kaliya adigoo isticmaalaya curls.

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

Waxaad si toos ah uga cusboonaysiin kartaa tilmaamayaasha barnaamijkaaga. Tusaale ahaan, dirida calaamadaha garaaca wadnaha si uu okerr u ogaado inuu socdo oo uu kiciyo alaarmiga haddii uu shil galo ama uu baraf galo. Jid ahaan, qaybaha okerr ayaa sidaas sameeya - okerr laftiisa ayaa kormeeraya, iyo dhibaatooyinka ku dhawaad ​​​​module kasta ayaa la ogaan doonaa waxayna dhalin doonaan digniin ku saabsan dhibaatada. (Oo haddii ay dhacdo tan "ku dhawaad" - waxaa laga hubiyaa server kale)

Waa kan koodka (la fududeeyay) ee ku jira botka telegram-kayaga:

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

Waxaa jira maktabad loogu talagalay cusboonaysiinta tilmaamayaasha barnaamijyada Python sare u kacLuqado kasta oo kale ma jiraan maktabado, laakiin waxaad wici kartaa qoraalka okerupdate ama waxaad codsi HTTP u diri kartaa server-ka okerr.

Sidee okerr noo caawisaa

Okerr nolosheena wuu beddelay. Dhab ahaantii. Waxaa laga yaabaa in nidaam kale oo la socodka samayn karo si la mid ah, laakiin la shaqaynta okerr waa inoo fududahay oo fudud oo waxay leedahay dhammaan hawlaha aan u baahanahay (waxaan ku daray waxa aanu haysan). By habka, haddii ay jiraan qaar ka mid ah sifooyinka maqan, weydii oo aan iyaga ku dari doonaa (Ma ballan, laakiin waxaan doonayaa in okerr nidaamka la socodka ugu wanaagsan ee mashaariicda dhexdhexaadka ah yar). Ama si ka sii wanaagsan, naftaada ku dar - way fududahay.

Waxaan ku guuleysanay inaan ku noolaano mabda'a "wax ku saabsan dhammaan dhibaatooyinka ka baro kerra." Haddii ay si lama filaan ah u dhacdo dhibaato aynaan ka baran okerr, waxaan ku darnaa jeeg okerr. (xaaladdan, "annaga" waxaan ula jeedaa anaga isticmaalayaasha nidaamka, ma aha kuwa horumariya). Markii hore tani waxay ahayd mid caadi ah, laakiin hadda waxay noqotay mid aad dhif u ah.

Kormeerka

Iyada oo loo marayo okerr waxaan la soconaa cabbirrada log ee dhammaan server-yada. Dabcan, waa wax aan macquul aheyn in si taxadar leh loogu akhriyo sadar kasta oo log ah indhahaaga, laakiin si fudud ula socoshada heerka kobaca ayaa horay u siisa wax badan. Taas, waxaan ogaanay diritaanka spamka iyo raadinta sirta ah ee xoogga leh, iyo marka qaar ka mid ah codsiyada ay "waalaan," wax uma shaqeeyaan iyaga oo mar kale ku celiyaan (mar kasta waxay ku daraan dhowr sadar log. ).

Shahaadooyinka SSL Ku dhawaad ​​isla markiiba ka dib bilaabista Hoos kadhagayso macaamiisheena waxa uu bilaabay bixinta shahaadooyin SSL oo bilaash ah macaamiishiisa (ilaa kun oo ka mid ah). Waxayna noqotay cadaab uun maamul! Xaqiiqdu waxay tahay in goobuhu ay "ku nool yihiin", macaamiishu waxay si xilliyo ah weydiiyaan inay wax qabtaan, barnaamij-bixiyeyaashu way sameeyaan. Waxay si buuxda ugu wareejin karaan goobta DocumentRoot kale, tusaale ahaan. Ama ku dar dib u qor shuruud la'aan habaynta virtualhost. Dabcan, tan ka dib, dib u cusboonaysiinta tooska ah ee shahaadooyinka ayaa burbura. Hadda waxaan haynaa dhammaan martigeliyaha SSL oo lagu daray okerr si toos ah iyada oo loo marayo mid kale oo ka mid ah adeegyadayada waxtarka leh ee xirmada a2conf. Aan bilowno a2okerr.py - iyo haddii dhowr goobood oo cusub ay ka soo baxaan server-ka, waxay si toos ah uga muuqan doonaan okerr. Haddii si lama filaan ah sabab qaar ka mid ah shahaado aan la cusboonaysiin, saddex toddobaad ka hor shahaado dhacaysa, waxaan ku jirnaa og, oo waxaan ogaan doonaa sababta aan updated, sida eey. a2certbot.py laga soo bilaabo xirmo isku mid ah - aad ayey uga caawisaa tan (waxay isla markiiba hubisaa dhibaatooyinka ugu badan - waxayna qortaa waxa si fiican loo hubiyay, iyo meesha ay u badan tahay inay dhibaato ka jirto).

Waxaan la soconaa taariikhda uu dhacayo dhammaan xayndaabkayaga Dhammaan server-yadayada boostada soo dira waxaa sidoo kale laga hubiyaa 50+ liisaska madow ee kala duwan. (Mararka qaarna way ku dhacaan iyaga). Dhanka kale, ma ogtahay in server-yada mail-ka Google ay sidoo kale ku jiraan liiska madow? Kaliya si aan is-tijaabin, waxaan ku darnay mail-wr1-f54.google.com serfarada la kormeeray, oo wali waxay ku jirtaa liiska madow ee SORBS! (Tani waxay ku saabsan tahay qiimaha "anti-spammers")

Backups - Horaan ayaan kor ugu qoray sida ay u fududahay in lagula socdo okerr. Laakiin waxaan la soconaa labadaba kaydka ugu dambeeyay ee server-keena iyo (anaga oo adeegsanayna qalab gooni ah oo adeegsada okerr) kaydinta aan ku shubno Amazon Glacier. Iyo, haa, dhibaatooyinku way dhacaan wakhti ka waqti. La yaab ma laha inay daawanayeen.

Waxaan isticmaalnaa tilmaame kororka. Waxay muujinaysaa haddii dhibka qaar aan la xalin muddo dheer. Aniga naftayda, marka aan xalliyo dhibaatooyinka qaarkood, mararka qaarkood waan iloobi karaa iyaga. Kordhinta waa xasuusin wanaagsan, xitaa haddii aad naftaada ilaalinayso.

Guud ahaan, waxaan aaminsanahay in tayada shaqadeena ay kor u kacday si heer sare ah. Ku dhawaad ​​ma jiro wakhti hoos u dhac ah (ama macmiilku ma haysto wakhti uu ku ogaado. Kaliya shh!), Halka tirada shaqadu ay yaraatay oo xaaladaha shaqadu ay noqdeen kuwo deggan. Waxaan ka soo guurnay shaqada degdegga ah oo aan ku dhejinay godad cajalad ah si aan u dejinno oo u shaqeyno cabbir, marka dhibaatooyin badan horay loo sii saadaaliyo oo ay jirto waqti looga hortago. Xitaa dhibaatooyinka dhacay ayaa sidoo kale noqday mid sahlan in la hagaajiyo: marka hore, waxaan ka ogaannaa iyaga ka hor intaanay macaamiishu argagaxin, marka labaadna, inta badan waxay dhacdaa in dhibaatadu ay la xiriirto shaqada dhowaan (inta aan hal shay, waxaan jebiyey mid kale) - si ay u kululaato Way u fududahay raadadka si ay ula tacaalaan.

Laakiin waxaa jirtay kiis kale...

Ma ogtahay in gudaha Debian 9 (Stretch) ee caanka ah sida xirmo caan ah sida phpmyadmin ay weli (bilo badan!) ku jirto xaalad nugul? (CVE-2019-6798). Markii baylahdu soo ifbaxday, waxaan si degdeg ah u daboolnay siyaabo kala duwan. Laakin waxaan dajiyay la socodka bogga amniga-tracker okerr si aan u ogaado marka xal "qurux badan" uu soo bixi doono (iyada oo loo marayo wadarta SHA1 ee nuxurka). Tilmaamuhu dhowr jeer ayuu i jilciyay, bogga ayaa isbeddelay, laakiin sida aad arki karto, weli (ilaa Janaayo 2019!) Ma tilmaamayso in dhibaatada la xaliyay. Waxaa laga yaabaa, habka, qof ayaa og waxa dhibaatadu tahay in xirmo muhiim ah oo noocan oo kale ah ayaa weli u nugul in ka badan hal sano?

Waqti kale oo xaalad la mid ah: ka dib baylahnimada SSH, waxay ahayd lagama maarmaan in la cusboonaysiiyo dhammaan server-yada. Oo markaad hawl dejisato, waxaad u baahan tahay inaad xakamayso fulinta. (Kuwa hoos yimaada waxay u janjeeraan inay khalad fahmaan, illoobaan, jahawareeraan, oo khalad sameeyaan). Sidaa darteed, marka hore waxaan ku darnay hubinta nooca SSH si loo hubiyo dhammaan server-yada, iyada oo loo marayo okerr waxaan hubinnay in cusbooneysiinta lagu soo rogay dhammaan server-yada. (Ku habboon! Waxaan doortay tilmaame noocan oo kale ah, oo isla markiiba waxaad arki kartaa server-ka noocee ah). Markii aan hubinay in hawshu ay ku dhammaatay dhammaan server-yada, waxaan ka saarnay tilmaamayaasha.

Dhowr jeer ayaa waxaa dhacday xaalad ay dhibaato gaar ahi timaado, ka dibna iskeed u baxdo. (laga yaabee in qof walba yaqaan?). Waqtiga aad aragto, wakhtiga aad hubiso - oo ma jiraan wax la hubiyo - wax walba si fiican ayay u shaqeeyaan. Laakiin haddana mar kale ayay jabtaa. Waxaan ku helnay tan, tusaale ahaan, badeecooyin aan soo rarnay Amazon Marketplace (MWS). Mar mar, alaabtii la rartay waxay ahayd mid khaldan (tirada alaabta khaldan iyo qiimayaal khaldan). Waanu ogaanay. Laakiin si loo ogaado, waxaa muhiim ah in la ogaado dhibaatada isla markiiba. Nasiib darro, MWS, sida dhammaan adeegyada Amazon, waa wax yar oo gaabis ah, markaa had iyo jeer waxaa jiray dib u dhac, laakiin weli, waxaan awoodnay inaan ugu yaraan si qiyaas ah u fahanno xiriirka ka dhexeeya dhibaatada iyo qoraallada keena (waxaan sameynay jeeg, xayiran). u okerr, oo hubiyay isla markiiba isagoo helay digniin).

Kiis xiiso leh ayaa dhawaan lagu soo daray ururinta by martigeliyaha Yurub weyn oo qaali ah, kaas oo macaamiishayadu isticmaalaan. Si lama filaan ah, DHAMMAAN adeegayaashayada ayaa ka lumay raadaarka! Marka hore, macmiilka laftiisa (oo aad uga dheereeya okerra!) wuxuu ogaaday in goobta uu ka shaqeynayay aan la furin oo uu tigidh ka sameeyay. Laakin hal goob kaliya ma hoos u dhicin, laakiin dhamaantood! (Natasha, wax walba waan tuurnay!). Halkan Okerr wuxuu bilaabay inuu u diro lugo dhaadheer oo lugaha lagu duubo oo ay la socdaan dhammaan tilmaamayaasha isaga u iftiimay. Argagax, argagax, waxaan ku ordanaa wareegyo (maxaa kale oo aan sameyn karnaa?). Dabadeed wax walba way kaceen. Waxay soo baxday in ay jirto dayactir joogto ah oo ku yaala xarunta xogta (hal mar sanado badan) iyo, dabcan, waa in naloo digay. Laakiin nooc ka mid ah dhibaato ayaa ku dhacday iyaga oo nagama ay digeen. Hagaag, wadne qabadyo badan, wadna xanuun yaraan. Laakiin ka dib markii wax walba la soo celiyo, waxaad u baahan tahay inaad laba jeer hubiso wax walba! Ma qiyaasi karo sida aan gacmahayga ku samayn lahaa. Okerr ayaa wax walba ku tijaabiyay dhowr daqiiqo gudahood. Waxaa soo baxday in inta badan server-yadu ay si ku meel gaar ah u heli waayeen, laakiin way shaqeeyeen. Qaar baa culays badan saarnaa, laakiin sidoo kale waxay u istaageen sidii la rabay. Khasaaraha oo dhan, waxa aanu waynay laba kayd, kuwaas oo marka loo eego taajku ay ahayd in la abuuro oo la raro inta muuskan buuxa uu socdo. Xitaa iskuma dhibin abuurista, maalin uun ka dib waxaa yimid digniino sheegaya in wax walba ay sax ahaayeen, kayd ayaa soo muuqday. Runtii waan jeclahay tusaalahan sababtoo ah okerr wuxuu u soo baxay inuu noqdo mid faa'iido leh xaalad aan xitaa horay uga fikirin, laakiin taasi waa ujeedada kormeerka - si looga hortago wax aan la saadaalin karin.

Dareemayaasha Okerr, waxaan u isticmaalnaa martigelinta ugu jaban ee suurtagalka ah (halka tayada iyo kalsoonida aysan muhiim ahayn, waxay isku caymiyaan midba midka kale). Marka, waxaan dhawaan helnay martigelin aad u wanaagsan oo aad u jaban, bartilmaameedyadu waa kuwo aad u fiican. Laakiin mararka qaarkood waxay soo baxdaa in xidhiidhada ka baxaya mashiinka farsamada laga sameeyay mid kale (deriska) IP. Mucjisooyin. Client_ip module leh https://diagnostic.opendns.com/myip helay IP-ga khaldan. Iyo diiwaanka server-ka ee tusaha waxaa cad in cusboonaysiinta ay sidoo kale ka timid IP-ga deriska ah. Aynu hadda wax ka qabanno taageerada. Way wanaagsan tahay in aan tan ogaanno wakhtiga nabadda. Laakiin, tusaale ahaan, inta badan waxay dhacdaa in gelitaanka loo diiwaangaliyo si waafaqsan liiska cad ee IP - iyo haddii server-ku mararka qaarkood sidan oo kale u biligleeyo waqti gaaban - waxaad isku dayi kartaa inaad qabato dhibaatadan waqti aad u dheer.

Hagaag, hal shay oo kale - maadaama aan ka hadlayno martigelinta VPS - waxaan had iyo jeer isticmaalnaa kuwa aan qaali ahayn (hetzner, ovh, scaleway). Runtii aad ayaan u jeclahay labadaba marka la eego jaangooyooyinka iyo xasilloonida. Waxaan sidoo kale u isticmaalnaa Amazon EC2 aad uga qaalisan mashaariicda kale. Marka, mahadsanid okerr, waxaan leenahay fikradeena xog ogaal ah. Labaduba way dhacaan. Anigu ma dhihi lahaa in muddada dheer ee indha-indheyntayada, martigelinta raqiis ah sida hetzner ay u soo baxday inay si muuqata uga xasilloon tahay EC2. Sidaa darteed, haddii aadan ku xidhnayn sifooyinka kale ee Amazon, maxaad wax badan u bixinaysaa? 🙂

Maxaa ku xiga?

Haddii marxaladdan aanan weli kaa baqin Okerr, markaa isku day! Waxaad si toos ah u tagi kartaa xiriirkan okerr demo account (Riix hadda!) Laakin maskaxda ku hay in uu jiro hal xisaab demo oo kaliya oo loogu talagalay qof walba, markaa haddii aad wax sameyso, qof kale oo isla xisaabta ku jira ayaa laga yaabaa inuu ku farageliyo isla waqti isku mid ah. Ama (ka wanaagsan) iska diiwaan geli isku xirka offsite okerr - wax walba waa fudud yihiin, SMS la'aan. Haddii aadan jeclayn inaad isticmaasho iimaylkaaga dhabta ah, waxaad isticmaali kartaa mid la tuuri karo, sida boostada (waxaan ku talinayaa getnada.com). Xisaabaadka noocan oo kale ah ayaa laga yaabaa in la tirtiro wakhti ka dib, laakiin way ku fiicnaan doonaan tijaabinta.

Diiwaangelinta ka dib, waxaa lagu weydiin doonaa inaad qaadato tababar (fuliso dhowr hawlood oo tababar oo aan aad u adagayn). Xuduudaha bilowga ah aad ayey u yar yihiin, laakiin tababarka ama hal server ayaa ku filan. Ka dib marka la dhammeeyo tababarka, xadka (tusaale, tirada ugu badan ee tilmaamayaasha) waa la kordhin doonaa.

Laga soo bilaabo dukumentiyada - marka hore oo dhan WIKI dhanka serverka iyo dhanka macmiilka (okrupdate wiki). Laakin haddii ay wax aan caddayn, u qor taageerada (at) okerr.com ama ka tag tigidh - waxaan isku dayi doonaa inaan wax walba si degdeg ah u xalino.

Haddii aad si dhab ah u isticmaasho oo xadadan korodhay aanay ku filnayn, u qor taageerada waxaanu ku kordhin doonaa (bilaash).

Ma jeceshahay inaad ku rakibto server-ka okerr seerfarkaaga? Halkan okerr-dev kaydka. Waxaan kugula talineynaa inaad ku rakibto mashiinka farsamada nadiifka ah, ka dibna waxaad si fudud u samayn kartaa qoraalka rakibaadda. Mashiinkaaga casriga ah - ma jiraan wax xaddidaad ah :-). Hagaag, mar labaad, haddii ay wax dhacaan, waxaan had iyo jeer isku dayi doonaa inaan caawino.

Waxaan rabnaa in mashruucan la furo, si dunidu u noqoto mid la isku halleyn karo mahadsanid anaga. Thanks to software iyo adeegyada bilaashka ah, dunidu waxay noqotay saaxiib oo si firfircoon ayay u horumaraysaa. Ilaha waxaa lagu kaydin karaa github bilaash ah, boostada waxaad isticmaali kartaa gmail bilaash ah. Waxaan isticmaalnaa bilaash shaqooyinka cusub taageero. Mid kasta oo ka mid ah kuwan, uma baahnid inaad bixiso server-yada, uma baahnid inaad soo dejiso oo aad habeyso, uma baahnid inaad xalliso dhibaatooyinka hawlgalka ee kala duwan. Mashruuc kasta oo cusub, koox kasta waxay isla markiiba haysataa boosto, bakhaarro iyo CRM. Oo waxaas oo dhami waa tayo aad u sarreeya oo bilaash ah isla markiiba. Waxaan rabnaa in ay la mid ah la socodka - shirkadaha yar yar iyo mashaariicda isticmaali kartaa okerr lacag la'aan ah iyo xataa marxaladda dhalashada iyo koritaanka leeyihiin isku halaynta mashaariicda waaweyn ee qaangaarka ah.

Source: www.habr.com