Muhtasari wa mfumo wa ufuatiliaji wa mseto wa Okerr

Miaka miwili iliyopita tayari nilichapisha Kushindwa rahisi kwa tovuti kuhusu oker. Sasa kuna maendeleo fulani ya mradi, na pia nilichapisha msimbo wa chanzo wa seva ya okerr chini ya leseni wazi, ndiyo sababu niliamua kuandika mapitio haya mafupi juu ya Habr.

Muhtasari wa mfumo wa ufuatiliaji wa mseto wa Okerr
[ ukubwa kamili ]

Ambao inaweza maslahi

Hii inaweza kukuvutia ikiwa unafanya kazi katika timu ndogo au peke yako. Huna ufuatiliaji na huna uhakika kama unauhitaji. Labda ulijaribu ufuatiliaji fulani maarufu "kwa wavulana wakubwa", lakini kwa namna fulani "haikuondoka" kwako, au inafanya kazi katika usanidi wa kawaida na haukubadilisha maisha yako sana. Na pia - ikiwa hakika huna mpango wa kutenga mfanyakazi mzima (au hata idara) kufuatilia dashibodi ya ufuatiliaji angalau saa kadhaa kwa siku au kuisanidi.

Kwa nini oker sio kawaida

Ifuatayo nitaonyesha vipengele vya kuvutia vya okerra ambavyo vinaitofautisha na mifumo mingine ya ufuatiliaji.

Okerr ni ufuatiliaji wa mseto

Wakati wa ufuatiliaji wa ndani, "wakala" anaendesha kwenye mashine zilizofuatiliwa, ambazo hupeleka data kwa seva ya ufuatiliaji (kwa mfano, nafasi ya bure ya disk). Wakati wa nje, seva hufanya ukaguzi kwenye mtandao (kwa mfano, ping au upatikanaji wa tovuti). Kila mbinu ina mapungufu yake. Okerr hutumia chaguo zote mbili. Ukaguzi ndani ya seva hufanywa na wakala mwepesi sana (30Kb) au hati na programu zako mwenyewe, na ukaguzi wa mtandao unafanywa kupitia vitambuzi vya oker katika nchi tofauti.

oker sio programu tu, bali pia huduma

Sehemu ya seva ya ufuatiliaji wowote ni kubwa na ngumu, ni vigumu kufunga na kusanidi, na inahitaji rasilimali. Ukiwa na oker unaweza kusakinisha seva yako ya ufuatiliaji (ni bure na ni chanzo wazi), au unaweza kutumia tu sehemu ya mteja na kutumia huduma ya seva yetu. Pia bure.

Ikiwa ufuatiliaji unakuwezesha kulipa fidia na kufunika ukosefu wa uaminifu katika seva na maombi, basi swali la falsafa linatokea - ni nani mlinzi? Ufuatiliaji utatuambiaje kuhusu tatizo ikiwa yenyewe "ilikufa" kwa sababu fulani, tofauti au pamoja na rasilimali zako nyingine (kwa mfano, kituo cha kituo cha data kilianguka)? Unapotumia huduma ya nje okerr - tatizo hili linatatuliwa - utapokea tahadhari hata kama kituo kizima cha data kilicho na seva zako hakina nguvu au kushambuliwa na Riddick.

Kwa kweli, kuna hatari kwamba seva ya oker yenyewe haitapatikana, hii ni kweli (kama unavyojua, 90% ya kuegemea kila wakati hupatikana kwa urahisi na "bure", 99% na kiwango cha chini cha juhudi, na kila tisa inayofuata ni. ngumu zaidi). Lakini, kwanza, uwezekano wa hii kutokea ni chini, na pili, tatizo linaweza kwenda bila kutambuliwa tu ikiwa linapatana na matatizo kwenye seva zetu. Ikiwa tuna uaminifu wa 99.9%, na una 99.9% (sio idadi kubwa sana), basi nafasi ya kushindwa bila kutambuliwa ni 0.1% ya 0.1% = 0.0001%. Kuongeza nines tatu kwa kuegemea kwako karibu bila juhudi na bila gharama ni nzuri sana!

Faida nyingine ya ufuatiliaji kama huduma ni kwamba mtoa huduma mwenyeji au studio ya wavuti inaweza kusakinisha seva ya oker na kutoa ufikiaji kwa wateja kama huduma ya ziada inayolipishwa au isiyolipishwa. Washindani wako wana upangishaji na tovuti tu, lakini una upangishaji wa kuaminika na ufuatiliaji.

Okerr ni kuhusu viashiria

Kiashiria ni "balbu ya mwanga". Ina majimbo mawili kuu - kijani (OK) au nyekundu (ERR). Mradi una viashiria vingi vya vikundi (kwa mfano, na seva). Kwenye ukurasa kuu wa mradi huo, unaona mara moja kwamba kila kitu ni kijani (na unaweza kuifunga), au kitu kinawaka nyekundu na kinahitaji kusahihishwa. Wakati wa kuhama kati ya majimbo haya, arifa hutumwa. Mara moja kwa siku unapoiweka, muhtasari wa mradi unatumwa.

Muhtasari wa mfumo wa ufuatiliaji wa mseto wa Okerr

Kila kiashirio cha okerr kina hali ya ndani ambayo inabadilisha hali (katika Zabbix hii inaitwa trigger). Kwa mfano, wastani wa mzigo haupaswi kuwa zaidi ya 2 (bila shaka, hii inaweza kusanidiwa). Na kwa kila hundi ya ndani (wastani wa mzigo, disk bure, ...) kuna watchdog. Ikiwa kwa sababu fulani hatupati uthibitisho uliofanikiwa kwa wakati uliowekwa, hitilafu imeingia na tahadhari inatumwa.

Mfano wetu wa kawaida wa kazi ni kuangalia barua pepe asubuhi, na kuangalia muhtasari kati ya barua nyingine (tunaipanga mwanzoni mwa kazi). Ikiwa kila kitu kiko sawa ndani yake, tunafanya mambo mengine muhimu (lakini ili kuwa salama, tunaweza kuangalia kwa haraka dashibodi ya okerra na kuhakikisha kuwa kila kitu ni kijani kwa wakati huu). Tahadhari ikifika, tunaitikia.

Bila shaka, inawezekana tu kuweka viashiria vya "habari" (kuona picha ya mtandao kutoka kwa ufuatiliaji), lakini kila kitu kinafanywa kwa urahisi, kwa urahisi na kwa haraka kuunda viashiria mahsusi kwa ufuatiliaji wa moja kwa moja na kutuma tahadhari.

Kusudi ambalo unasanidi okerr liko katika arifa, ili uweze kuunda kiashiria kwa dakika moja, inaweza "kulala" kwa mwaka, kukubali tu sasisho, na mwaka mmoja baadaye kitu kinapovunjika, huwaka na kutuma. tahadhari. Dakika uliyotumia kuunda kiashirio ililipa; ulijifunza kuhusu tatizo mara moja, kabla ya mtu mwingine yeyote. Inawezekana kwamba waliirekebisha kabla ya mtu yeyote kugundua. Kitu kinachoinuliwa haraka hakizingatiwi kuwa kimeanguka!

usalama

Itakuwa aibu ikiwa utaanzisha ufuatiliaji kwa ajili ya kuongeza kuegemea, lakini kwa sababu hiyo, unashambuliwa kwenye mtandao kupitia hiyo, na kuna udhaifu mwingi wa mtandao katika zana tofauti za ufuatiliaji (Zabbix, Nagios).

Wakala (okerrmod kutoka kwa kifurushi okerruptdate) inayoendesha kwenye mfumo sio seva ya mtandao, lakini mteja. Kwa hivyo, hakuna bandari za ziada za wazi kwenye seva inayofuatiliwa, mteja hufanya kazi kwa urahisi nyuma ya firewall au NAT na ni vigumu sana (ningesema "haiwezekani") kudukua mtandao, kwani kimsingi haisikilizi mtandao. tundu.

Ufuatiliaji kamili wa chanjo

Sasa sheria yetu ni kwamba tunajifunza kuhusu matatizo yote ya kiufundi kutoka kwa okerr. Ikiwa ghafla utawala unakiukwa (okerr hakuonya juu ya tukio lake la karibu (ikiwa hii inawezekana) au kwamba tayari imetokea) - tunaongeza hundi kwa okerr.

Ukaguzi wa nje

Seti ya kawaida kabisa:

  • Ping
  • hali ya http
  • kuangalia uhalali na upya wa cheti cha SSL (itaonya ikiwa inakaribia kuisha)
  • fungua bandari ya TCP na bendera juu yake
  • http grep (ukurasa [lazima] uwe na maandishi maalum)
  • sha1 hash ili kupata mabadiliko ya ukurasa.
  • DNS (Rekodi ya DNS lazima iwe na thamani maalum)
  • WHOIS (itaonya ikiwa kikoa kinakaribia kwenda vibaya)
  • Antispam DNSBL (angalia mwenyeji dhidi ya orodha 50+ za antispam mara moja)

Ukaguzi wa ndani

Pia, seti ya kawaida (lakini inaweza kupanuliwa kwa urahisi).

  • df (nafasi ya bure ya diski)
  • wastani wa mzigo
  • opentcp (fungua soketi za kusikiliza za TCP - itaarifu ikiwa kitu kimeanza au kuharibika)
  • uptime - uptime tu kwenye seva. Itaarifu ikiwa imebadilika (yaani, seva imejaa)
  • mteja_ip
  • dirsize - tunaitumia kufuatilia wakati vipandikizi vya mashine zetu vinapozidi saizi inayoruhusiwa, bila kuweka vizuizi vikali, na saizi ya saraka za nyumbani za watumiaji.
  • tupu na hakuna - fuatilia faili ambazo zinapaswa kuwa tupu (au sio tupu). Kwa mfano, logi ya makosa ya seva ya oker yenyewe inapaswa kuwa tupu, na ikiwa kuna hata mstari ndani yake, nitapokea arifa na kuiangalia. Lakini mail.log kwenye seva ya barua haipaswi kuwa tupu (Dakika N baada ya mzunguko). Na wakati mwingine haikuwa tupu kwetu baada ya sasisho la mfumo, wakati logrotate haikuweza kuanzisha upya rsyslog kwa usahihi.
  • linecount - idadi ya mistari kwenye faili (kama wc -l). Tunaitumia kama mbadala laini ya tupu, wakati kumbukumbu ya makosa bado inaweza kukua, lakini polepole tu (kwa mfano, Googlebot hugusa baadhi ya kurasa zilizofungwa). Kuna kikomo cha mistari 2 ndani ya dakika 20. Ikiwa ni ya juu, kutakuwa na tahadhari

Ukaguzi wa ndani wa kuvutia

Ikiwa umekuwa ukisoma "diagonally" hadi wakati huu, sasa itakuwa ya kuvutia zaidi kusoma kwa makini zaidi.

backups

Inafuatilia chelezo kwenye saraka. Faili zetu mbadala zina majina kama vile "ServerName-20200530.tar.gz". Kwa kila seva katika oker, kiashirio cha ServerName-DATE.tar.gz kinaundwa (tarehe halisi inabadilika hadi mstari wa "DATE"). Uwepo wa chelezo safi na saizi yake pia hufuatiliwa (kwa mfano, haiwezi kuwa chini ya 90% ya nakala rudufu ya hapo awali).

Nini kinahitaji kufanywa ili nakala mpya ianze kufuatiliwa baada ya kuanza kuiunda na kuiweka kwenye saraka hii? Hakuna kitu! Hii ni njia rahisi sana wakati unahitaji kufanya "chochote" kwa sababu:

  • Kufanya "chochote" ni haraka sana, huokoa wakati
  • Ni ngumu kusahau kufanya "chochote"
  • Ni vigumu kufanya "chochote" kibaya, na kosa. Hakuna njia ya kuaminika zaidi

Ikiwa faili mpya za chelezo zitaacha kuonekana ghafla, kutakuwa na arifa. Ikiwa, kwa mfano, umezima moja ya seva, na haipaswi kuwa na chelezo zaidi, utahitaji kufuta kiashiria (kupitia kiolesura cha wavuti au kutoka kwa ganda kupitia API).

maxfilesz

Hufuatilia saizi ya faili kubwa zaidi (kawaida: /var/log/*). Hii inakuwezesha kupata matatizo yasiyotabirika, kwa mfano, manenosiri ya nguvu au kutuma barua taka kupitia seva.

runstatus/runline

Hizi ni moduli mbili muhimu za wakala za kuendesha programu zingine kwenye seva. Runtatus inaripoti msimbo wa kuondoka kwa programu kwa kiashirio. Kwa mfano, oker haihitaji (inahitaji) moduli ili kuangalia kuwa huduma za mfumo zinafanya kazi. Hii inafanywa kupitia runstatus (tazama hapa chini). Runline - inaripoti kwa seva mstari ambao programu hutoa. Kwa mfano, temp_RUN="cat /sys/class/thermal/thermal_zone0/temp" katika usanidi wa Runline kwenye seva yetu huunda kiashiria cha jina la seva:temp na halijoto ya kichakataji.

sql

Hutekeleza swali la nambari kwa MySQL na kuripoti matokeo kwa kiashirio. Katika kesi rahisi, unaweza kufanya, kwa mfano, "CHAGUA 1" - hii itaangalia kuwa DBMS kwa ujumla inafanya kazi.

Lakini maombi ya kuvutia zaidi ni, kwa mfano, kufuatilia idadi ya maagizo katika duka la mtandaoni. Ikiwa unajua kuwa una maagizo 100 au zaidi kwa saa, unaweza kuweka kikomo cha chini hadi 100 au 80. Kisha ikiwa mauzo yako yatashuka ghafla, utapokea tahadhari na unaweza kuhesabu.

Kumbuka kuwa haijalishi ni kwa sababu gani isiyotabirika ilitokea:

  • Seva haipatikani tu (iliyopunguzwa au bila mtandao), na tahadhari ilitoka kwa ukweli kwamba kiashiria kilikuwa "kimeoza".
  • Seva imejaa kitu, inafanya kazi polepole au pakiti zinapotea, ni usumbufu kwa watumiaji na wanaondoka bila kufanya manunuzi.
  • Seva imejumuishwa kwenye orodha za barua taka na barua kutoka kwake hazikubaliki, watumiaji hawawezi kujiandikisha
  • Bajeti ya kampeni ya utangazaji imeisha, mabango hayasondi.

Kunaweza kuwa na idadi yoyote ya sababu, na zote haziwezi kutabiriwa mapema, na ni ngumu kitaalam kufuatilia. Lakini unaweza kufuatilia kwa urahisi parameter ya mwisho (maagizo) na kuamua kutoka kwao kuwa hali hiyo ni ya shaka na inastahili kushughulikiwa.

Viashiria vya kimantiki

Huruhusu matumizi ya vielezi vya Boolean (syntax ya Python) kupitia moduli thibitisha(makala kuhusu Habre) Data kutoka kwa mradi na viashiria vyake vinapatikana kwa kujieleza. Kwa mfano, katika sura kuhusu SQL kuangalia juu, unaweza kuwa niliona hatua dhaifu - wakati wa mchana tunaweza kuwa na mauzo 100 kwa saa, lakini usiku - 20, na hii ni ya kawaida, si tatizo. Nifanye nini? Kiashiria kitaogopa kila wakati usiku.

Unaweza kuunda viashiria viwili, mchana na usiku. Fanya zote mbili "kimya" (hawatatuma arifu). Na uunda kiashiria cha kimantiki ambacho kinahitaji kuwa kiashiria cha siku kiwe sawa kabla ya 20:00, na baada ya 20:00 ni ya kutosha kwa kiashiria cha usiku kuwa sawa.

Mfano mwingine wa kutumia kiashiria cha kimantiki ni kupanda. Kwa mfano, meneja wa mradi anajiondoa kutoka kwa arifa (hakuna haja ya kufanya hivyo, wasimamizi wanapaswa kujibu matatizo ya kawaida), lakini anajiandikisha kwa kiashiria cha kimantiki ambacho kinageuka nyekundu ikiwa kiashiria chochote katika mradi hakijasahihishwa ndani ya muda uliowekwa.

Pia, inawezekana kuweka muda unaoruhusiwa wa kazi, kwa mfano, kutoka 3 hadi 5 asubuhi. Hatujali ikiwa seva na tovuti zitaacha kufanya kazi wakati huu. Lakini saa 5:00 wanapaswa kufanya kazi. Ikiwa hazifanyi kazi wakati mwingine wowote - tahadhari. Kiashiria cha kimantiki pia hukuruhusu kuzingatia upungufu wa seva. Ikiwa una seva 5 za wavuti, basi wasimamizi wanaweza kuzima seva 1-2 wakati wowote. Lakini ikiwa kuna seva chini ya 3 kati ya 5 kwenye vita, kutakuwa na tahadhari.

Mifano iliyo hapo juu si utendakazi oker, si baadhi ya vipengele vinavyohitaji kuamilishwa na kusanidiwa. Okerra haina kazi hizi zote, lakini kuna moduli ya kimantiki ambayo hukuruhusu kutekeleza utendakazi huu (Takriban kama katika lugha ya programu - ikiwa tuna waendeshaji wa hesabu, basi hatuitaji kazi maalum ya kuhesabu 20% VAT. kutoka kwa lugha, unaweza kuifanya mwenyewe kuifanya kulingana na mahitaji yako).

Kiashiria cha Mantiki pengine ni mojawapo ya mada chache changamano katika okerr, lakini habari njema ni kwamba si lazima uijue hadi utakapohitaji. Lakini wakati huo huo, wanapanua sana uwezo, huku wakiweka mfumo yenyewe rahisi sana.

Inaongeza hundi zako mwenyewe

Ningependa sana kufikisha wazo kwamba okerr sio seti ya maelfu ya hundi zilizopangwa tayari kwa matukio yote, lakini kinyume chake - kwanza kabisa - injini rahisi na uwezo rahisi wa kuunda hundi zako mwenyewe. Kuunda ukaguzi wako katika okerr si kazi ya wavamizi, wasanidi programu-shirikishi, au angalau watumiaji wa hali ya juu wa oker, lakini ni kazi inayowezekana kwa msimamizi yeyote aliyesakinisha Linux kwa mara ya kwanza mwezi mmoja uliopita.

Hundi juu ya kima cha chini cha mshahara hufanywa kupitia moduli hali ya kukimbia:

Mstari huu kwenye usanidi hali ya kukimbia itakujulisha ikiwa /bin/true ghafla haitaanza au kurudisha kitu kingine isipokuwa 0.

true_OK=/bin/true

Mstari mmoja tu - na hapa tuko tayari kidogo kupanuliwa utendaji okerr.

Hata hundi hiyo tayari ina thamani yake: ikiwa ghafla seva yako itaanguka, kiashiria sambamba kwenye seva ya okerr haitasasishwa kwa wakati unaofaa, na baada ya muda kupita, tahadhari itaonekana.

Cheki hii itaarifu kuwa seva ya apache2 imeanguka (vizuri, huwezi kujua ...):

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

Kwa hiyo, ikiwa unasema lugha yoyote ya programu, na angalau unaweza kuandika maandiko ya shell, basi unaweza tayari kuongeza hundi zako mwenyewe.

Ngumu zaidi - unaweza kuandika (kwa lugha yoyote) moduli yako mwenyewe kwa okerrmod. Katika kesi rahisi, inaonekana kama hii:

#!/usr/bin/python3

print("STATUS: OK")

Je, si vigumu sana? Moduli lazima ijichunguze yenyewe na kutoa matokeo kwa STDOUT. Moduli ngumu zaidi inatoa, kwa mfano, hii:

$ 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

Inasasisha viashiria kadhaa mara moja (iliyotenganishwa na mstari tupu), inaunda ikiwa ni lazima, inaonyesha maelezo ya uthibitishaji na lebo ambayo ni rahisi kupata viashiria muhimu kwenye dashibodi.

telegram

Kuna boti ya Telegraph @OkerrBot. Huna haja ya kuunganisha simu yako na programu tofauti (siipendi kwamba kwa Pyaterochka unahitaji programu moja na ramani, kwa Lenta nyingine, kwa MTS ya tatu, na kadhalika kwa kila mtu, kila mtu, kila mtu). Telegramu moja inatosha. Kupitia telegramu unaweza kupokea arifa mara moja, angalia hali ya mradi na utoe amri ya kuangalia tena viashiria vyote vya shida. Tuliondoka kwenye ukumbi wa michezo/ndege, hatukuweka kidole kwenye mapigo kwa saa mbili, tukawasha simu, tukabonyeza kitufe kimoja kwenye chatbot, na tukahakikisha kuwa kila kitu kiko sawa.

Kurasa za Hali

Siku hizi, kurasa za hali ni karibu lazima ziwepo kwa biashara yoyote iliyo na TEHAMA, mtazamo wa kuwajibika kuelekea kutegemewa na unaowatendea wateja/watumiaji wake kwa heshima.

Hebu fikiria hali - mtumiaji anataka kufanya kitu, kutazama habari au kuagiza, na kitu hakifanyi kazi. Hajui kinachoendelea, tatizo liko upande wa nani na lini litatatuliwa. Labda kampuni yako ina tovuti isiyofanya kazi tu? Au ilivunjika miezi sita iliyopita na itarekebishwa baada ya miaka miwili? Lakini unahitaji kununua jokofu sasa, tayari iko kwenye gari ... Na ni jambo tofauti kabisa wakati mtu anaona kuwa kuna kitu kibaya na wewe (angalau ni wazi kwamba tatizo haliko upande wake), kwamba Tatizo limegunduliwa, kwamba tayari unafanyia kazi, na labda hata uliandika takriban wakati wa kusahihisha. Mtumiaji anaweza kujiandikisha na kupokea arifa ya barua pepe wakati tatizo limewekwa na anaweza kufanya kile alichotaka (kununua jokofu).

Muhtasari wa mfumo wa ufuatiliaji wa mseto wa Okerr

Shida na wakati wa kupumzika hutokea kwa kila mtu. Lakini watumiaji na washirika wanaamini zaidi wale walio wazi zaidi na wanaowajibika katika mbinu zao za hili.

Hapa ukaguzi wa miradi mingine 10 inayokuruhusu kuunda kurasa za hali. Hapa kuna mifano ya jinsi kurasa hizi za mradi zinavyoonekana Chatu ΠΈ Dropbox. ukurasa wa hali ya oker.

Failover

Ili kutofanya nakala hii kuwa ndefu zaidi, nitarejelea tena nakala yangu iliyopita - Kushindwa rahisi kwa tovuti . Ikiwa unaweza kutengeneza seva rudufu, kisha kwa kutumia failover, kimsingi hutakuwa na muda mrefu wa kutofanya kazi - punde tu tatizo linapogunduliwa, watumiaji wataelekezwa kiotomatiki kwenye seva ya chelezo inayofanya kazi. Na inaonekana kwangu kuwa hii ni kipengele cha kuvutia sana, mkali ambacho haipatikani popote.

Mahitaji ya chini ya mfumo

Kwa seva za oker, tunatumia mashine zilizo na RAM kutoka 2Gb. Kwa sensorer za mtandao, hata 512Mb inatosha. Sehemu ya mteja kwa ujumla ni karibu sifuri. (Mfuko wa plastiki okerruptdate ina uzani wa Kb 26, lakini inahitaji Python3 na maktaba za kawaida). Mteja huendesha kutoka kwa hati ya cron, kwa hivyo haina utumiaji wa kumbukumbu unaoendelea. Miongoni mwa mashine tulizofuatilia, tuna sensorer (VPS ya bei nafuu na RAM ya 512Mb) na Raspberry Pi. Inawezekana hata bila sehemu ya mteja tuma sasisho kupitia curl! (tazama hapa chini)

Kuchukua hii katika akaunti - okerr, pengine bure zaidi mfumo wa ufuatiliaji kutoka kwa zile zinazopatikana, kwa sababu hata kutumia mfumo mwingine wa bure wa chanzo-wazi kama Zabbix au Nagios, unahitaji kutenga rasilimali (seva) kwake, na hii tayari ni pesa. Kwa kuongeza, baadhi ya matengenezo ya seva bado yanahitajika. Kwa oker, sehemu hii inaweza kuondolewa. Au sio lazima kuiondoa na kutumia seva yako mwenyewe, kulingana na kile unachopenda zaidi.

API na ujumuishaji katika programu ya umiliki

Usanifu rahisi na wazi. oker ina moja rahisi sana API, ambayo ni rahisi kufanya kazi nayo. Je, unahitaji kuunda viashiria 1000? Nakala moja ya ganda la mistari 3-4 itafanya hivi. Je, unahitaji kusanidi upya viashiria 1000? Pia ni rahisi sana. Kwa mfano, tunataka kuangalia mara mbili vyeti vyetu vyote vya HTTPS kutoka kwa kihisi cha Kirusi:

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

Unaweza kusasisha kiashiria kwa kutumia moduli yetu ya mteja, hata bila hiyo, kupitia curl tu.

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

Unaweza kusasisha viashiria moja kwa moja kutoka kwa programu yako. Kwa mfano, kutuma mawimbi ya mapigo ya moyo ili okerr ajue kuwa inaendesha na kuamsha kengele ikianguka au kuganda. Kwa njia, vipengele vya okerr hufanya hivyo tu - okerr wachunguzi yenyewe, na matatizo katika karibu moduli yoyote yatagunduliwa na kuzalisha tahadhari kuhusu tatizo. (Na ikiwa hii "karibu" - huangaliwa kutoka kwa seva nyingine)

Hapa kuna nambari (iliyorahisishwa) kwenye bot yetu ya telegraph:

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

Kuna maktaba ya kusasisha viashiria kutoka kwa programu za Python okerruptdate, kwa lugha zingine zozote hakuna maktaba, lakini unaweza kupiga simu hati ya okerrupdate au kufanya ombi la HTTP kwa seva ya oker.

Jinsi oker inatusaidia

Oker alibadilisha maisha yetu. Hakika. Labda mfumo mwingine wa ufuatiliaji unaweza kufanya vivyo hivyo, lakini kufanya kazi na oker ni rahisi na rahisi kwetu na ina kazi zote ambazo tulihitaji (tuliongeza kile ambacho hakikuwa nacho). Kwa njia, ikiwa kuna baadhi ya vipengele vinavyokosekana, waulize na nitawaongeza (siahidi, lakini nataka okerr iwe mfumo bora wa ufuatiliaji wa miradi ndogo ya kati). Au bora zaidi, ongeza mwenyewe - ni rahisi.

Tulifaulu kuishi kulingana na kanuni β€œkujifunza kuhusu matatizo yote kutoka kwa kerra.” Ikiwa ghafla tatizo hutokea ambalo hatukujifunza kutoka kwa okerr, tunaongeza hundi kwa okerr. (katika kesi hii, kwa "sisi" ninamaanisha sisi kama watumiaji wa mfumo, sio watengenezaji wenza). Mara ya kwanza hii ilikuwa ya kawaida, lakini sasa imekuwa nadra sana.

Ufuatiliaji

Kupitia okerr tunafuatilia saizi za kumbukumbu kwenye seva zote. Kwa kweli, haiwezekani kusoma kwa uangalifu kila mstari wa logi kwa macho yako, lakini kufuatilia tu kiwango cha ukuaji tayari hutoa mengi. Kupitia hili, tuligundua utumaji barua taka na utafutaji wa nenosiri kwa nguvu, na wakati baadhi ya programu "zina wazimu," kitu hakifanyiki kwao na wanarudia tena na tena (kila wakati wakiongeza mistari kadhaa kwenye logi. )

Vyeti vya SSL. Karibu mara baada ya uzinduzi LetsEncrypt mteja wetu alianza kutoa vyeti vya SSL bila malipo kwa wateja wake (takriban elfu moja). Na ikawa ni kuzimu tu kwa utawala! Ukweli ni kwamba tovuti ni "moja kwa moja", wateja huwauliza mara kwa mara kufanya kitu, waandaaji wa programu hufanya hivyo. Wanaweza kuhamisha tovuti kwa uhuru kwa DocumentRoot nyingine, kwa mfano. Au ongeza Andika tena bila masharti kwa usanidi wa mwenyeji wa kawaida. Kwa kawaida, baada ya hili, upyaji wa moja kwa moja wa vyeti huvunjika. Sasa tuna seva pangishi zote za SSL zilizoongezwa kwa okerr kiotomatiki kupitia huduma zetu nyingine muhimu kutoka kwa kifurushi a2conf. Wacha tuzindue a2okerr.py - na ikiwa tovuti kadhaa mpya zitaonekana kwenye seva, zitaonekana kiotomatiki kwenye oker. Ikiwa ghafla kwa sababu fulani cheti haijasasishwa, wiki tatu kabla ya cheti kumalizika, tunajua, na tutajua kwa nini haijasasishwa, mbwa kama huyo. a2certbot.py kutoka kwa kifurushi sawa - inasaidia sana na hii (huangalia mara moja shida zinazowezekana - na huandika kile kilichoangaliwa vizuri, na ambapo kuna uwezekano mkubwa wa shida).

Tunafuatilia tarehe ya mwisho wa matumizi ya vikoa vyetu vyote. Na seva zetu zote za barua zinazotuma barua pia huangaliwa dhidi ya orodha 50+ tofauti zisizoruhusiwa. (Na wakati mwingine huanguka ndani yao). Je, unajua kwamba seva za barua pepe za Google pia zimeorodheshwa? Kwa kujijaribu tu, tuliongeza mail-wr1-f54.google.com kwenye seva zinazofuatiliwa, na bado iko kwenye orodha iliyoidhinishwa ya SORBS! (Hii ni kuhusu thamani ya "anti-spammers")

Hifadhi nakala - tayari niliandika hapo juu jinsi ilivyo rahisi kuzifuatilia na okerr. Lakini tunafuatilia nakala rudufu za hivi punde kwenye seva yetu na (kwa kutumia matumizi tofauti ambayo hutumia oker) nakala ambazo tunapakia kwenye Amazon Glacier. Na, ndiyo, matatizo hutokea mara kwa mara. Si ajabu walikuwa wakitazama.

Tunatumia kiashiria cha kupanda. Inaonyesha ikiwa shida fulani haijatatuliwa kwa muda mrefu. Na mimi mwenyewe, ninapotatua shida fulani, wakati mwingine ninaweza kusahau juu yao. Kupanda ni ukumbusho mzuri, hata kama unajifuatilia.

Kwa ujumla, ninaamini kwamba ubora wa kazi yetu umeongezeka kwa utaratibu wa ukubwa. Kuna karibu hakuna muda wa kupumzika (au mteja hawana muda wa kuiona. Tu shh!), Wakati kiasi cha kazi kimekuwa kidogo na hali ya kazi imekuwa shwari. Tumehama kutoka kwa kazi ya dharura na mashimo ya kuunganisha na mkanda ili utulivu na kupima kazi, wakati matatizo mengi yanatabiriwa mapema na kuna wakati wa kuwazuia. Hata shida ambazo zimetokea pia zimekuwa rahisi kurekebisha: kwanza, tunagundua juu yao kabla ya wateja kuogopa, na pili, mara nyingi hutokea kwamba shida inahusiana na kazi ya hivi karibuni (wakati nikifanya jambo moja, nilivunja lingine) - kwa hivyo ni moto Ni rahisi kwa athari kukabiliana nayo.

Lakini kulikuwa na kesi nyingine ...

Je, unajua kwamba katika Debian 9 maarufu (Nyoosha) kifurushi maarufu kama phpmyadmin bado kiko (kwa miezi mingi!) katika hali ya hatari? (CVE-2019-6798) Athari ilipojitokeza, tuliifunika haraka kwa njia tofauti. Lakini nilianzisha ufuatiliaji wa ukurasa wa ufuatiliaji wa usalama katika okerr ili kujua ni lini suluhisho "nzuri" litatoka (kupitia jumla ya SHA1 ya yaliyomo). Kiashiria kilinisukuma mara kadhaa, ukurasa ulibadilika, lakini kama unavyoona, bado (tangu Januari 2019!) haionyeshi kuwa shida imetatuliwa. Labda, kwa njia, mtu anajua ni shida gani kwamba kifurushi muhimu kama hicho bado kiko hatarini kwa zaidi ya mwaka mmoja?

Wakati mwingine katika hali kama hiyo: baada ya kuathirika katika SSH, ilikuwa ni lazima kusasisha seva zote. Na unapoweka kazi, unahitaji kudhibiti utekelezaji. (Wasaidizi huwa na tabia ya kutoelewa, kusahau, kuchanganyikiwa, na kufanya makosa). Kwa hivyo, kwanza tuliongeza ukaguzi wa toleo la SSH kwa okerr kwenye seva zote, na kupitia oker tulihakikisha kuwa masasisho yametolewa kwenye seva zote. (Rahisi! Nilichagua aina hii ya kiashiria, na unaweza kuona mara moja ambayo seva ina toleo gani). Tulipokuwa na uhakika kwamba kazi imekamilika kwenye seva zote, tuliondoa viashiria.

Mara kadhaa kulikuwa na hali ambapo shida fulani inatokea, na kisha huenda yenyewe. (labda inajulikana kwa kila mtu?). Kufikia wakati unaona, wakati unapoangalia-na hakuna kitu cha kuangalia-kila kitu tayari kinafanya kazi vizuri. Lakini basi huvunja tena. Tulipata hili, kwa mfano, na bidhaa ambazo tulipakia kwenye Amazon Marketplace (MWS). Wakati fulani, hesabu iliyopakiwa haikuwa sahihi (idadi mbaya ya bidhaa na bei mbaya). Tulifikiria. Lakini ili kuitambua, ilikuwa muhimu kujua kuhusu tatizo mara moja. Kwa bahati mbaya, MWS, kama huduma zote za Amazon, ni polepole kidogo, kwa hivyo kulikuwa na lag kila wakati, lakini bado, tuliweza kufahamu angalau uhusiano kati ya shida na hati zinazosababisha (tulifanya ukaguzi, tulikwama. kwa oker, na kuikagua mara moja ikipokea arifa).

Kesi ya kuvutia iliongezwa hivi karibuni kwenye mkusanyiko na mhudumu mkubwa na wa gharama kubwa wa Ulaya, ambayo mteja wetu hutumia. Ghafla, seva zetu ZOTE zilitoweka kwenye rada! Kwanza, mteja mwenyewe (haraka kuliko okerra!) aliona kwamba tovuti aliyokuwa akifanya kazi nayo haikufungua na akafanya tikiti kuhusu hilo. Lakini sio tovuti moja tu iliyoanguka, lakini yote! (Natasha, tuliacha kila kitu!). Hapa Okerr alianza kutuma karatasi ndefu zenye viashiria vyote vilivyomulika. Hofu, hofu, tunakimbia kwenye miduara (ni nini kingine tunaweza kufanya?). Kisha kila kitu kilipanda. Ilibadilika kuwa kulikuwa na matengenezo ya kawaida katika kituo cha data (mara moja kila baada ya miaka mingi) na, bila shaka, tulipaswa kuonywa. Lakini aina fulani ya shida ilitokea kwao na hawakutuonya. Naam, mashambulizi ya moyo zaidi, mashambulizi ya moyo kidogo. Lakini baada ya kurejesha kila kitu, unahitaji mara mbili-angalia kila kitu! Siwezi kufikiria jinsi ningefanya kwa mikono yangu. Okerr alijaribu kila kitu kwa dakika chache. Ilibadilika kuwa seva nyingi hazikupatikana kwa muda, lakini zilifanya kazi. Wengine walielemewa, lakini pia walisimama kama inavyopaswa. Kati ya hasara zote, tulipoteza nakala mbili, ambazo kulingana na taji zinapaswa kuundwa na kupakiwa wakati ndizi hii kamili inaendelea. Sikujisumbua hata kuziunda, siku moja tu baadaye arifa zilifika kwamba kila kitu kiko sawa, nakala rudufu zimeonekana. Ninapenda sana mfano huu kwa sababu oker aligeuka kuwa muhimu sana katika hali ambayo hatukufikiria hata mapema, lakini hiyo ndiyo madhumuni ya ufuatiliaji - kupinga yasiyotabirika.

Kwa sensorer za Okerr, tunatumia upangishaji wa bei rahisi zaidi (ambapo ubora na uaminifu sio muhimu, zinahakikisha kila mmoja). Kwa hivyo, hivi majuzi tumepata mwenyeji mzuri sana na wa bei nafuu sana, alama za alama ni nzuri. Lakini ... wakati mwingine zinageuka kuwa viunganisho vinavyotoka kutoka kwa mashine ya kawaida hufanywa kutoka kwa IP nyingine (jirani). Miujiza. Client_ip moduli na https://diagnostic.opendns.com/myip hupata IP isiyo sahihi. Na kutoka kwa kumbukumbu za seva za kiashiria ni wazi kwamba sasisho pia lilikuja kutoka kwa IP hii jirani. Wacha tushughulike na usaidizi sasa. Ni vizuri kwamba tuliona hili wakati wa amani. Lakini, kwa mfano, mara nyingi hutokea kwamba ufikiaji umesajiliwa kulingana na orodha nyeupe ya IP - na ikiwa seva wakati mwingine huangaza kama hii kwa muda mfupi - unaweza kujaribu kupata tatizo hili kwa muda mrefu sana.

Kweli, jambo moja zaidi - kwa kuwa tunazungumza juu ya mwenyeji wa VPS - kila wakati tunatumia gharama nafuu (hetzner, ovh, scaleway). Ninaipenda sana kwa suala la viwango na utulivu. Pia tunatumia Amazon EC2 ya bei ghali zaidi kwa miradi mingine. Kwa hivyo, shukrani kwa oker, tuna maoni yetu wenyewe. Wote wawili huanguka. Na nisingesema kwamba katika kipindi kirefu cha uchunguzi wetu, upangishaji wa bei nafuu kama vile hetzner ulionekana kuwa thabiti kuliko EC2. Kwa hivyo, ikiwa haujaunganishwa na huduma zingine za Amazon, kwa nini ulipe zaidi? πŸ™‚

Nini hapo?

Ikiwa katika hatua hii bado sijakuogopesha kutoka kwa Okerr, basi jaribu! Unaweza kwenda moja kwa moja kwa kiungo hiki akaunti ya demo ya okerr (Bofya sasa!) Lakini kumbuka kuwa kuna akaunti moja tu ya onyesho kwa kila mtu, kwa hivyo ukifanya jambo, mtu mwingine katika akaunti hiyo hiyo anaweza kukuingilia kwa wakati mmoja. Au (bora) jiandikishe kupitia kiunga cha okerr nje ya nchi - kila kitu ni rahisi, bila SMS. Ikiwa hupendi kutumia barua pepe yako halisi, unaweza kutumia barua pepe inayoweza kutumika, kama vile mtumaji wa barua pepe (ninapendekeza getnada.com) Akaunti kama hizo zinaweza kufutwa kwa muda, lakini zitakuwa sawa kwa majaribio.

Baada ya usajili, utaulizwa kupitia mafunzo (fanya kazi kadhaa sio ngumu sana za mafunzo). Mipaka ya awali ni ndogo sana, lakini kwa mafunzo au seva moja ni ya kutosha. Baada ya kumaliza mafunzo, mipaka (kwa mfano, idadi kubwa ya viashiria) itaongezeka.

Kutoka kwa nyaraka - kwanza kabisa Wiki kwa upande wa seva na kwa mteja (sasisha wiki) Lakini ikiwa kitu haijulikani, andika kwa msaada (saa) okerr.com au uondoke tiketi - tutajaribu kutatua kila kitu haraka.

Ikiwa unatumia kwa uzito na mipaka hii iliyoongezeka haitoshi, andika ili kuunga mkono na tutaiongeza (bila malipo).

Je, ungependa kusakinisha seva ya oker kwenye seva yako? Hapa hazina ya okerr-dev. Tunapendekeza usakinishe kwenye mashine safi ya mtandaoni, basi unaweza kuifanya tu na hati ya usakinishaji. Kwenye mashine yako ya kawaida - hakuna vikwazo :-). Kweli, tena, ikiwa chochote kitatokea, tutajaribu kusaidia kila wakati.

Tunataka mradi huu uanze, ili ulimwengu uwe wa kuaminika zaidi shukrani kwetu. Shukrani kwa programu na huduma za bure, ulimwengu umekuwa rafiki na unaendelea kwa nguvu zaidi. Vyanzo vinaweza kuhifadhiwa katika github ya bure, kwa barua unaweza kutumia gmail ya bure. Tunatumia bure kazi mpya kwa msaada. Kwa yoyote ya haya, huna haja ya kulipa kwa seva, huna haja ya kupakua na kusanidi, na huna haja ya kutatua matatizo mbalimbali ya uendeshaji. Kila mradi mpya, kila timu ina barua, hazina na CRM mara moja. Na hii yote ni ubora wa juu sana na bure na mara moja. Tunataka iwe sawa kwa ufuatiliaji - makampuni madogo na miradi inaweza kutumia okerr bila malipo na hata katika hatua ya kuzaliwa na ukuaji kuwa na uaminifu wa miradi mikubwa ya watu wazima.

Chanzo: mapenzi.com