Overview sa Okerr hybrid monitoring system

Two years ago naka post na ko Yano nga failover alang sa usa ka website mahitungod sa okerr. Karon adunay pipila nga pag-uswag sa proyekto, ug gipatik usab nako okerr server side source code ilalum bukas nga lisensya, mao nga nakahukom ko sa pagsulat niining mubo nga pagrepaso sa Habr.

Overview sa Okerr hybrid monitoring system
[ puno nga gidak-on ]

Kang kinsa kini mahimong interesado

Mahimong makapainteres kini kanimo kung nagtrabaho ka sa usa ka gamay nga grupo o nag-inusara. Wala ka'y ​​pagmonitor ug dili ka sigurado kung kinahanglan nimo kini. Gisulayan nimo ang pipila ka sikat nga seryoso nga pag-monitor "para sa mga dagkong lalaki", apan kini sa usa ka paagi "wala mawala" alang kanimo, o kini nagtrabaho sa halos default nga configuration ug wala kaayo makausab sa imong kinabuhi. Ug usab - kung siguradong wala ka nagplano nga maggahin usa ka tibuuk nga empleyado (o bisan usa ka departamento) aron ma-monitor ang dashboard sa pag-monitor labing menos duha ka oras sa usa ka adlaw o i-configure kini.

Ngano nga dili kasagaran ang okerr

Sunod akong ipakita ang makapaikag nga mga bahin sa okerra nga nagpalahi niini gikan sa ubang mga sistema sa pag-monitor.

Ang Okerr usa ka hybrid nga pag-monitor

Atol sa internal nga pag-monitor, usa ka "ahente" ang nagdagan sa gibantayan nga mga makina, nga nagpadala sa datos sa monitoring server (pananglitan, libre nga disk space). Kung sa gawas, ang server nagpahigayon mga pagsusi sa network (pananglitan, ping o pagkaanaa sa website). Ang matag pamaagi adunay mga limitasyon. Gigamit ni Okerr ang duha ka kapilian. Ang mga pagsusi sa sulod sa mga server gihimo sa usa ka gaan kaayo (30Kb) nga ahente o sa imong kaugalingon nga mga script ug aplikasyon, ug ang mga pagsusi sa network gihimo pinaagi sa mga sensor sa okerr sa lainlaing mga nasud.

Ang okerr dili lang software, apan usa usab ka serbisyo

Ang bahin sa server sa bisan unsang pag-monitor dako ug komplikado, lisud ang pag-install ug pag-configure, ug kini nanginahanglan mga kapanguhaan. Uban sa okerr mahimo nimong i-install ang imong kaugalingon nga server sa pag-monitor (kini libre ug opensource), o mahimo nimong gamiton lamang ang bahin sa kliyente ug gamiton ang serbisyo sa among server. Libre usab.

Kung ang pag-monitor nagtugot kanimo sa pagbayad ug pagtabon sa kakulang sa kasaligan sa mga server ug aplikasyon, unya usa ka pilosopikal nga pangutana ang mitungha - kinsa ang guwardiya? Sa unsang paagi ang pagmonitor magsulti kanamo bahin sa usa ka problema kung kini mismo "namatay" sa usa ka hinungdan, gilain o kauban ang imong uban pang mga kapanguhaan (pananglitan, nahulog ang channel sa data center)? Kung gigamit ang eksternal nga serbisyo okerr - kini nga problema nasulbad - makadawat ka usa ka alerto bisan kung ang tibuuk nga sentro sa data sa imong mga server wala’y gahum o giatake sa mga zombie.

Siyempre, adunay peligro nga ang okerr server mismo dili magamit, kini tinuod (sama sa imong nahibal-an, ang 90% nga kasaligan kanunay nga makuha nga yano ug "libre", 99% nga adunay labing gamay nga paningkamot, ug ang matag sunod nga siyam mao ang exponentially mas lisud). Apan, una, ang higayon nga kini mahitabo mas ubos, ug ikaduha, ang problema mahimong dili mamatikdan lamang kung kini motakdo sa mga problema sa among mga server. Kung kami adunay 99.9% nga kasaligan, ug ikaw adunay 99.9% (dili kaayo taas nga mga numero), nan ang higayon sa usa ka dili mamatikdan nga kapakyasan mao ang 0.1% sa 0.1% = 0.0001%. Ang pagdugang og tulo ka nines sa imong kasaligan nga halos walay paningkamot ug walay gasto maayo kaayo!

Ang laing bentaha sa pag-monitor isip usa ka serbisyo mao nga ang usa ka hosting provider o web studio maka-install og okerr server ug makahatag og access sa mga kliyente isip bayad o libre nga dugang nga serbisyo. Ang imong mga kakompetensya adunay ra nga pag-host ug mga website, apan ikaw adunay kasaligan nga pag-host nga adunay pag-monitor.

Ang Okerr mahitungod sa mga indicators

Ang timailhan kay usa ka "light bulb". Kini adunay duha ka nag-unang estado - berde (OK) o pula (ERR). Ang proyekto adunay daghang mga gigrupo (pananglitan, pinaagi sa server) nga mga indikasyon. Sa nag-unang panid sa proyekto, makita dayon nimo nga ang tanan berde (ug mahimo nimo kini isira), o adunay usa ka butang nga gisiga nga pula ug kinahanglan nga tul-iron. Kung nagbalhinbalhin tali sa kini nga mga estado, usa ka alerto ang gipadala. Kausa sa usa ka adlaw samtang imong gipahimutang kini, ang usa ka summary sa proyekto gipadala.

Overview sa Okerr hybrid monitoring system

Ang matag okerr indicator adunay built-in nga mga kondisyon diin kini nagbag-o sa estado (sa Zabbix kini gitawag nga trigger). Pananglitan, ang average nga load kinahanglan dili molapas sa 2 (siyempre, kini ma-configure). Ug alang sa matag internal nga pagsusi (load average, disk free, ...) adunay usa ka watchdog. Kung sa usa ka hinungdan wala kami makadawat usa ka malampuson nga kumpirmasyon sa gitakda nga oras, usa ka sayup ang na-log ug usa ka alerto gipadala.

Ang among naandan nga sumbanan sa trabaho mao ang pagsusi sa mga email sa buntag, ug tan-awa ang katingbanan taliwala sa ubang mga sulat (iskedyul namon kini sa pagsugod sa trabaho). Kung ok ra ang tanan niini, buhaton namon ang uban pang hinungdanon nga mga butang (apan aron luwas, dali namon tan-awon ang dashboard sa okerra ug sigurohon nga berde ang tanan sa kini nga higayon). Kung moabut ang usa ka alerto, kami molihok.

Siyempre, posible nga ipadayon lamang ang mga "impormasyon" nga mga indikasyon (aron makita ang litrato sa network gikan sa pag-monitor), apan ang tanan gihimo aron yano, dali ug dali nga maghimo mga indikasyon nga piho alang sa awtomatikong pag-monitor ug pagpadala mga alerto.

Ang katuyoan nga imong gi-set up ang okerr naa sa mga alerto, aron makahimo ka usa ka timailhan sa usa ka minuto, mahimo kini "makatulog" sa usa ka tuig, dawaton lang ang mga update, ug kung pagkahuman sa usa ka tuig adunay usa ka butang nga naguba, kini nagsiga ug nagpadala. usa ka alerto. Ang minuto nga imong gigugol sa paghimo usa ka timailhan nabayran; nahibal-an nimo dayon ang problema, sa wala pa ang uban. Posible nga ila kining giayo sa wala pa makamatikod. Ang usa ka butang nga dali nga gibangon dili giisip nga nahulog!

Kasegurohan

Makauulaw kung mag-set up ka sa pag-monitor alang sa pagdugang sa kasaligan, apan ingon usa ka sangputanan, giatake ka sa network pinaagi niini, ug adunay daghang mga kahuyangan sa network sa lainlaing mga himan sa pag-monitor (Zabbix, Nagios).

Ahente (okerrmod gikan sa package okerrupdate) nga nagdagan sa sistema dili usa ka server sa network, apan usa ka kliyente. Busa, wala'y dugang nga bukas nga mga pantalan sa gimonitor nga server, ang kliyente dali nga nagtrabaho sa luyo sa usa ka firewall o NAT ug lisud kaayo (ako moingon nga "imposible") sa pag-hack sa network, tungod kay sa prinsipyo wala kini maminaw sa network. socket.

Full monitoring coverage

Karon ang among lagda mao nga nahibal-an namon ang tanan nga mga problema sa teknikal gikan sa okerr. Kung kalit nga nalapas ang lagda (wala magpasidaan ang okerr bahin sa umaabot nga panghitabo (kung mahimo kini) o nga kini nahitabo na) - gidugang namon ang mga tseke sa okerr.

Mga tseke sa gawas

Usa ka tipikal nga set:

  • ping
  • http nga kahimtang
  • pagsusi sa kabalido ug kabag-o sa SSL certificate (magpasidaan kon kini hapit na ma-expire)
  • ablihi ang TCP port ug banner niini
  • http grep (ang panid [kinahanglan dili] adunay piho nga teksto)
  • sha1 hash aron makuha ang mga pagbag-o sa panid.
  • DNS (DNS record kinahanglan adunay usa ka piho nga kantidad)
  • WHOIS (magpasidaan kung ang domain hapit na madaot)
  • Antispam DNSBL (pagsusi sa host batok sa 50+ ka mga blacklist nga antispam sa usa ka higayon)

Internal nga mga pagsusi

Usab, usa ka medyo standard set (apan dali nga mapalapad).

  • df (libre nga disk space)
  • load average
  • opentcp (abli ang TCP listening sockets - magpahibalo kung adunay nagsugod o nahagsa)
  • uptime - uptime lang sa server. Ipahibalo kung kini nausab (ie ang server nag-overload)
  • kliyente_ip
  • dirsize - gigamit namon kini aron masubay kung ang among mga virtual machine nga rootf milapas sa gitugotan nga gidak-on, nga wala gipaila ang higpit nga mga pagdili, ug ang gidak-on sa mga direktoryo sa balay sa gumagamit
  • walay sulod ug walay sulod - monitor sa mga file nga kinahanglan walay sulod (o walay sulod). Pananglitan, ang error log sa okerr server mismo kinahanglan nga walay sulod, ug kung adunay bisan usa ka linya niini, makadawat ako og pahibalo ug susihon kini. Apan ang mail.log sa mail server DILI mahimong walay sulod (N minutos human sa rotation). Ug usahay kini walay sulod alang kanamo human sa usa ka pag-update sa sistema, kung ang logrotate dili maka-restart sa rsyslog sa husto.
  • linecount - gidaghanon sa mga linya sa file (sama sa wc -l). Gigamit namo kini isip usa ka mas hinay nga kapuli sa walay sulod, kung ang error log mahimo pa nga motubo, apan hinay-hinay lamang (pananglitan, ang Googlebot miigo sa pipila ka sirado nga mga panid). Adunay limitasyon sa 2 ka linya sa 20 minuto. Kung mas taas, adunay alerto

Makapaikag nga internal nga mga pagsusi

Kung nagbasa ka nga "diagonal" hangtod niining puntoha, karon mas makaiikag ang pagbasa nga labi ka maayo.

backups

Pag-monitor sa mga backup sa direktoryo. Ang among mga backup file adunay mga ngalan sama sa "ServerName-20200530.tar.gz". Para sa matag server sa okerr, ang indicator ServerName-DATE.tar.gz gihimo (ang aktuwal nga petsa nausab sa linya nga "DATE"). Ang presensya sa usa ka bag-ong backup ug ang gidak-on niini gibantayan usab (pananglitan, dili kini moubos sa 90% sa miaging backup).

Unsa ang kinahanglan nga buhaton alang sa usa ka bag-ong backup aron masugdan ang pagsubay pagkahuman sa pagsugod sa paghimo niini ug pagbutang niini sa kini nga direktoryo? Wala! Kini usa ka kombenyente kaayo nga pamaagi kung kinahanglan nimo nga buhaton ang "wala" tungod kay:

  • Ang pagbuhat sa "walay bisan unsa" dali ra, kini makadaginot sa oras
  • Lisud kalimtan ang pagbuhat sa "wala"
  • Lisud ang pagbuhat sa "walay bisan unsa" nga sayup, nga adunay sayup. Walay bisan unsa nga labing kasaligan nga paagi

Kung kalit nga ang mga bag-ong backup file mohunong sa pagpakita, adunay usa ka alerto. Kung, pananglitan, imong gi-disable ang usa sa mga server, ug kinahanglan nga wala nay mga backup, kinahanglan nimo nga tangtangon ang indicator (pinaagi sa web interface o gikan sa shell pinaagi sa API).

maxfilesz

Nagsubay sa gidak-on sa pinakadako nga mga file (kasagaran: /var/log/*). Gitugotan ka niini nga makit-an ang dili matag-an nga mga problema, pananglitan, brute force nga mga password o pagpadala sa spam pinaagi sa server.

runstatus/runline

Kini ang duha ka importante nga proxy modules alang sa pagpadagan sa ubang mga programa sa server. Gi-report ni Runstatus ang exit code sa programa sa timailhan. Pananglitan, ang okerr wala (nanginahanglan) usa ka module aron masusi nga ang mga serbisyo sa systemd nagdagan. Gihimo kini pinaagi sa runstatus (tan-awa sa ubos). Runline - nagtaho sa server sa linya nga gihimo sa programa. Pananglitan, temp_RUN="cat /sys/class/thermal/thermal_zone0/temp" sa Runline config sa among server nagmugna og indicator servername:temp nga adunay temperatura sa processor.

sql

Nagpatuman sa usa ka numeric nga pangutana sa MySQL ug nagtaho sa resulta ngadto sa timailhan. Sa usa ka yano nga kaso, mahimo nimo, pananglitan, "PILI 1" - kini magsusi nga ang DBMS sa kinatibuk-an nagtrabaho.

Apan ang usa ka labi ka makapaikag nga aplikasyon mao, pananglitan, pagsubay sa gidaghanon sa mga order sa usa ka online store. Kung nahibal-an nimo nga adunay 100 o daghan pa nga mga order matag oras, mahimo nimong itakda ang minimum nga limitasyon sa 100 o 80. Unya kung kalit nga mahulog ang imong halin, makadawat ka usa ka alerto ug mahibal-an nimo kini.

Timan-i nga dili igsapayan kung unsa ang dili matag-an nga hinungdan nga kini nahitabo:

  • Ang server dili magamit (de-energized o walay network), ug ang alerto naggikan sa kamatuoran nga ang timailhan "dunot".
  • Ang server napuno sa usa ka butang, kini hinay nga nagtrabaho o nawala ang mga pakete, dili kombenyente alang sa mga tiggamit ug sila mobiya nga wala’y pagpalit.
  • Ang server gilakip sa mga lista sa spam ug ang mail gikan niini dili gidawat, ang mga tiggamit dili makarehistro
  • Ang badyet sa kampanya sa advertising nahurot, ang mga bandera wala magtuyok.

Mahimong adunay bisan unsang gidaghanon sa mga hinungdan, ug ang tanan niini dili mahibal-an nga daan, ug sa teknikal nga paagi lisud ang pagsubay. Apan mahimo nimo nga dali nga ma-monitor ang katapusang parameter (mga mando) ug mahibal-an gikan kanila nga ang sitwasyon kadudahan ug angayan nga atubangon.

Mga lohikal nga indikasyon

Gitugotan ang paggamit sa Boolean nga mga ekspresyon (Python syntax) pinaagi sa usa ka module evalidate(artikulo sa HabrΓ©). Ang datos gikan sa proyekto ug ang mga timailhan niini magamit alang sa pagpahayag. Pananglitan, sa kapitulo bahin sa SQL pagsusi sa ibabaw, tingali nakamatikod ka sa usa ka huyang nga punto - sa adlaw nga kita adunay 100 sales kada oras, apan sa gabii - 20, ug kini mao ang komon, dili usa ka problema. Unsa ang akong buhaton? Ang timailhan kanunay nga kalisang sa gabii.

Makahimo ka og duha ka indicators, adlaw ug gabii. Himua ang duha nga "hilum" (dili sila magpadala mga alerto). Ug paghimo usa ka lohikal nga timailhan nga nanginahanglan nga ang indikasyon sa adlaw mahimong OK sa wala pa ang 20:00, ug pagkahuman sa 20:00 igo na alang sa indikasyon sa gabii nga OK.

Ang laing pananglitan sa paggamit sa usa ka lohikal nga timailhan mao ang pagsaka. Pananglitan, ang usa ka manager sa proyekto nag-unsubscribe gikan sa mga alerto (dili niya kinahanglan nga buhaton kini, ang mga admin kinahanglan nga motubag sa mga normal nga problema), apan nag-subscribe sa usa ka lohikal nga timailhan nga mahimong pula kung ang bisan unsang timailhan sa proyekto wala matul-id sa gitakda nga oras.

Usab, posible nga itakda ang gitugot nga oras sa pagtrabaho, pananglitan, gikan sa 3 hangtod 5 sa buntag. Dili namo igsapayan kung ang mga server ug site nahagsa niining panahona. Apan alas 5:00 na sila kinahanglang motrabaho. Kung dili sila magtrabaho sa bisan unsang oras - alerto. Ang lohikal nga indikasyon usab nagtugot kanimo sa pagkonsiderar sa redundancy sa server. Kung ikaw adunay 5 ka web server, mahimo nga i-off sa mga admin ang 1-2 nga mga server sa bisan unsang oras. Apan kung adunay ubos sa 3 sa 5 nga mga server sa gubat, adunay alerto.

Ang mga pananglitan sa ibabaw dili mga oker function, dili pipila ka mga bahin nga kinahanglan nga i-aktibo ug i-configure. Ang Okerra wala'y tanan niini nga mga gimbuhaton, apan adunay usa ka lohikal nga module nga nagtugot kanimo sa pagpatuman niini nga pag-andar (Gibana-bana sama sa usa ka programming language - kung kami adunay mga operator sa aritmetika, nan wala kami magkinahanglan usa ka espesyal nga function alang sa pagkalkula sa 20% ​​VAT gikan sa lengguwahe, mahimo nimo kini kanunay nga buhaton kini aron mahiangay sa imong mga panginahanglan).

Ang Logic Indicator tingali usa sa pipila nga medyo komplikado nga mga hilisgutan sa okerr, apan ang maayong balita mao nga dili nimo kinahanglan nga ma-master kini hangtod kinahanglan nimo. Apan sa parehas nga oras, gipalapdan nila pag-ayo ang mga kapabilidad, samtang gitago ang sistema mismo nga yano.

Pagdugang sa imong kaugalingon nga mga tseke

Gusto gyud nako nga ipaabot ang ideya nga ang okerr dili usa ka hugpong sa libu-libo nga mga tseke nga andam alang sa tanan nga mga okasyon, apan sa sukwahi - una sa tanan - usa ka yano nga makina nga adunay yano nga abilidad sa paghimo sa imong kaugalingon nga mga tseke. Ang paghimo sa imong kaugalingon nga mga tseke sa okerr dili usa ka buluhaton alang sa mga hacker, mga co-developer sa sistema, o labing menos mga advanced nga tiggamit sa okerr, apan usa ka mahimo nga buluhaton alang sa bisan kinsa nga admin nga nag-install sa Linux sa unang higayon usa ka bulan ang milabay.

Ang mga pagsusi sa minimum nga sweldo gihimo pinaagi sa module runstatus:

Kini nga linya sa config runstatus magpahibalo kanimo kung ang /bin/true kalit nga dili magsugod o mobalik sa usa ka butang gawas sa 0.

true_OK=/bin/true

Usa lang ka linya - ug ania na kita gamay gipalapdan functionality okerr.

Bisan ang ingon nga tseke adunay bili niini: kung kalit nga nahagsa ang imong server, ang katugbang nga timailhan sa okerr server dili ma-update sa tukma sa panahon, ug pagkahuman sa oras, usa ka alerto ang makita.

Kini nga tseke magpahibalo nga ang apache2 server nahagsa (maayo, dili nimo mahibal-an ...):

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

Mao nga, kung nagsulti ka sa bisan unsang programming language, ug labing menos makasulat sa mga script sa shell, mahimo nimong idugang ang imong kaugalingon nga mga tseke.

Mas lisud - mahimo nimong isulat (sa bisan unsang pinulongan) ang imong kaugalingon nga module para sa okerrmod. Sa pinakasimple nga kaso kini ingon niini:

#!/usr/bin/python3

print("STATUS: OK")

Dili ba kini lisud kaayo? Kinahanglan nga buhaton sa module ang pagsusi mismo ug i-output ang mga resulta sa STDOUT. Ang usa ka mas komplikado nga module naghatag, pananglitan, niini:

$ 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

Gi-update niini ang daghang mga timailhan sa usa ka higayon (gibulag sa usa ka walay sulod nga linya), gimugna kini kung gikinahanglan, nagpaila sa mga detalye sa pag-verify ug usa ka tag diin dali nga makit-an ang kinahanglan nga mga timailhan sa dashboard.

telegrama

Adunay usa ka Telegram bot @OkerrBot. Dili nimo kinahanglan nga i-clutter ang imong telepono sa lain nga mga aplikasyon (dili ko ganahan nga para sa Pyaterochka kinahanglan nimo ang usa ka aplikasyon nga adunay mapa, para sa Lenta sa lain, alang sa ikatulo nga MTS, ug uban pa alang sa tanan, tanan, tanan). Usa ka telegrama igo na. Pinaagi sa telegrama makadawat ka dayon og mga alerto, susihon ang kahimtang sa proyekto ug paghatag usa ka mando nga susihon pag-usab ang tanan nga adunay problema nga mga timailhan. Mibiya kami sa teatro/eroplano, wala ibutang ang among tudlo sa pulso sulod sa duha ka oras, gi-on ang telepono, gipindot ang usa ka buton sa chatbot, ug gisiguro nga maayo ang tanan.

Mga Panid sa Kahimtang

Karong panahona, ang mga panid sa status hapit kinahanglan nga adunay alang sa bisan unsang negosyo nga adunay IT, usa ka responsable nga kinaiya sa kasaligan ug nga nagtagad sa mga kliyente / tiggamit niini nga adunay pagtahod.

Hunahunaa ang usa ka sitwasyon - gusto sa usa ka user nga buhaton ang usa ka butang, tan-awon ang kasayuran o magbutang usa ka order, ug adunay dili molihok. Wala siya masayod kon unsay nahitabo, kang kinsang bahin ang problema ug kanus-a kini masulbad. Tingali ang imong kompanya adunay usa ka dili magamit nga website? O nabuak ba kini unom ka bulan ang milabay ug kini ayohon sa duha ka tuig? Apan kinahanglan ka nga mopalit ug refrigerator karon, naa na kini sa kariton... Ug kini usa ka hingpit nga lahi nga butang kung ang usa ka tawo nakakita nga adunay usa ka butang nga sayup kanimo (labing menos klaro nga ang problema wala sa iyang kiliran), nga ang Nadiskobrehan ang problema, nga nagtrabaho ka na niini, ug tingali gisulat pa ang gibanabana nga oras alang sa pagtul-id. Ang user mahimong mag-subscribe ug makadawat sa usa ka email nga abiso kung ang problema naayo ug mahimo niya ang iyang gusto (pagpalit og refrigerator).

Overview sa Okerr hybrid monitoring system

Ang mga problema ug downtime mahitabo sa tanan. Apan ang mga tiggamit ug mga kauban mas nagsalig sa mga mas transparent ug responsable sa ilang pamaagi niini.

dinhi pagrepaso sa 10 ka ubang mga proyekto nga nagtugot kanimo sa paghimo og mga panid sa status. Ania ang mga pananglitan kung unsa ang hitsura sa kini nga mga panid sa proyekto Python ΠΈ Dropbox. okerr status page.

Failover

Aron dili na madugangan pa kining artikuloha, akong hisgotan pag-usab ang akong miaging artikulo - Yano nga failover alang sa usa ka website . Kung makahimo ka usa ka duplicate server, unya gamit ang failover, dili ka magdugay - sa diha nga ang usa ka problema nakit-an, ang mga tiggamit awtomatik nga ma-redirect sa usa ka nagtrabaho nga backup server. Ug alang kanako kini usa ka makapaikag kaayo, hayag nga bahin nga panagsa ra magamit bisan diin.

Ubos nga mga kinahanglanon sa sistema

Para sa okerr server, migamit mig mga makina nga adunay RAM gikan sa 2Gb. Alang sa mga sensor sa network, bisan ang 512Mb igo na. Ang bahin sa kliyente kasagaran halos zero. (Plastik nga bag okerrupdate may gibug-aton nga 26 Kb, apan nagkinahanglan sa Python3 ug standard nga mga librarya). Ang kliyente nagdagan gikan sa usa ka cron script, mao nga kini adunay zero padayon nga pagkonsumo sa memorya. Lakip sa mga makina nga among gibantayan, kami adunay mga sensor (super-barato nga VPS nga adunay 512Mb RAM) ug usa ka Raspberry Pi. Posible kini bisan kung wala ang bahin sa kliyente ipadala ang mga update pinaagi sa curl! (Tan-awa sa ubos)

Gikonsiderar kini - okerr, tingali labing libre monitoring system gikan sa mga anaa, tungod kay bisan sa paggamit sa laing libre nga open-source nga sistema sama sa Zabbix o Nagios, kamo kinahanglan nga mogahin sa mga kapanguhaan (server) niini, ug kini mao ang na salapi. Dugang pa, gikinahanglan gihapon ang pipila ka maintenance sa server. Uban sa okerr, kini nga bahin mahimong tangtangon. O dili nimo kinahanglan nga tangtangon kini ug gamiton ang imong kaugalingon nga server, depende sa kung unsa ang imong gusto.

API ug integrasyon sa proprietary software

Yano ug bukas nga arkitektura. okerr adunay usa ka medyo yano API, nga sayon ​​sa pagtrabaho uban sa. Kinahanglan ba nga maghimo 1000 nga mga timailhan? Usa ka shell script sa 3-4 ka linya ang mobuhat niini. Kinahanglan ba nga i-reconfigure ang 1000 nga mga timailhan? Sayon ra sab kaayo. Pananglitan, gusto namong i-double check ang tanan namong HTTPS nga mga sertipiko gikan sa Russian nga sensor:

#!/bin/sh

for indicator in `okerrclient --api-filter sslcert`
do
    echo set location for $indicator
    okerrclient --api-set location=ru retest=1 --name $indicator
done

Mahimo nimong i-update ang timailhan gamit ang module sa among kliyente, bisan kung wala kini, pinaagi lang sa 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/

Mahimo nimong i-update ang mga timailhan direkta gikan sa imong programa. Pananglitan, ang pagpadala sa mga signal sa heartbeat aron mahibal-an ni okerr nga kini nagdagan ug nagpataas sa usa ka alarma kung kini nahagsa o ​​nag-freeze. Pinaagi sa dalan, ang mga sangkap sa okerr naghimo lamang niana - ang okerr nag-monitor sa kaugalingon, ug ang mga problema sa halos bisan unsang module makit-an ug makamugna og usa ka alerto mahitungod sa problema. (Ug sa kaso niini nga "halos" - gisusi sila gikan sa laing server)

Ania ang code (gipasimple) sa among telegram bot:

from okerrupdate import OkerrProject, OkerrExc

op = OkerrProject()
uptimei = op.indicator("{}:telebot_uptime".format(hostname))
...
uptimei.update('OK', 'pid: {} Uptime: {} cmds: {}'.format(
        os.getpid(), dhms(uptime), commands_cnt))

Adunay usa ka librarya alang sa pag-update sa mga timailhan gikan sa mga programa sa Python okerrupdate, alang sa bisan unsang ubang mga pinulongan walay mga librarya, apan mahimo nimong tawagan ang okerrupdate script o paghimo og HTTP nga hangyo sa okerr server.

Giunsa kami pagtabang ni okerr

Gibag-o ni Okerr ang among kinabuhi. Sa pagkatinuod. Tingali ang lain nga sistema sa pag-monitor makahimo sa parehas, apan ang pagtrabaho kauban ang okerr dali ug yano alang kanamo ug kini adunay tanan nga mga gimbuhaton nga among gikinahanglan (among gidugang kung unsa ang wala niini). Pinaagi sa dalan, kung adunay pipila ka mga bahin nga nawala, pangutan-a ug akong idugang sila (Dili ko mosaad, apan gusto ko nga ang okerr mao ang labing maayo nga sistema sa pag-monitor alang sa gagmay nga medium nga mga proyekto). O mas maayo pa, idugang kini sa imong kaugalingon - kini sayon.

Nahimo namon nga sundon ang prinsipyo nga "pagkat-on bahin sa tanan nga mga problema gikan sa kerra." Kung kalit nga adunay problema nga wala naton nahibal-an gikan sa okerr, gidugangan namon ang usa ka tseke sa okerr. (sa kini nga kaso, pinaagi sa "kami" gipasabut nako kami ingon mga tiggamit sa sistema, dili mga kauban nga nag-develop). Sa sinugdan komon kini, apan karon talagsaon na kaayo.

Pagbantay

Pinaagi sa okerr among gimonitor ang mga gidak-on sa log sa tanang server. Siyempre, imposible nga mahunahunaon nga basahon ang matag linya sa troso gamit ang imong mga mata, apan ang pag-monitor sa rate sa pagtubo naghatag na og daghan. Pinaagi niini, among nadiskubrehan ang spam mail ug brute force nga pagpangita sa password, ug kung ang pipila sa mga aplikasyon "mabuang," adunay dili molihok alang kanila ug ilang balik-balikon kini (sa matag higayon nga magdugang usa ka pares nga linya sa log. ).

Mga sertipiko sa SSL. Hapit dayon pagkahuman sa paglansad LetsEncrypt ang among kostumer nagsugod sa paghatag ug libre nga mga sertipiko sa SSL sa mga kliyente niini (mga usa ka libo kanila). Ug kini nahimo nga impyerno lamang alang sa administrasyon! Ang kamatuoran mao nga ang mga site mao ang "live", ang mga kliyente matag karon ug unya mangutana kanila sa pagbuhat sa usa ka butang, programmer sa pagbuhat niini. Mahimo nilang hingpit nga gawasnon nga ibalhin ang site ngadto sa laing DocumentRoot, pananglitan. O pagdugang usa ka walay kondisyon nga Pagsulat Pag-usab sa virtualhost config. Natural, pagkahuman niini, ang awtomatikong pagbag-o sa mga sertipiko naguba. Karon kami adunay tanan nga mga SSL host nga gidugang sa okerr awtomatiko pinaagi sa lain namong mapuslanon nga mga gamit gikan sa package a2conf. Ilunsad na lang nato a2okerr.py β€” ug kung daghang bag-ong mga site ang makita sa server, awtomatiko kini nga makita sa okerr. Kung sa kalit sa pipila ka mga hinungdan ang sertipiko wala mabag-o, tulo ka semana sa wala pa matapos ang sertipiko, nahibal-an namon, ug mahibal-an namon kung ngano nga wala kini gi-update, ingon usa ka iro. a2certbot.py gikan sa parehas nga pakete - makatabang kaayo niini (kini nagsusi dayon sa lagmit nga mga problema - ug gisulat kung unsa ang gisusi nga maayo, ug kung diin adunay lagmit nga problema).

Among gimonitor ang expiration date sa tanan namong mga domain. Ug ang tanan namong mail server nga nagpadala ug mail gisusi usab batok sa 50+ lain-laing mga blacklist. (Ug usahay sila mahulog ngadto kanila). Pinaagi sa dalan, nahibal-an ba nimo nga ang mga server sa mail sa Google gi-blacklist usab? Para lang sa self-testing, gidugang namo ang mail-wr1-f54.google.com sa gimonitor nga mga server, ug naa pa kini sa blacklist sa SORBS! (Kini mahitungod sa bili sa "anti-spammers")

Mga backup - Gisulat na nako sa ibabaw kung unsa kadali ang pag-monitor kanila gamit ang okerr. Apan among gimonitor ang pinakabag-o nga mga backup sa among server ug (gamit ang usa ka bulag nga utility nga naggamit og okerr) ang mga backup nga among gi-upload sa Amazon Glacier. Ug, oo, ang mga problema mahitabo matag karon ug unya. Dili ikatingala nga sila nagtan-aw.

Gigamit namo ang escalation indicator. Gipakita niini kung ang pipila ka problema wala pa masulbad sa dugay nga panahon. Ug ako mismo, kung masulbad nako ang pipila ka mga problema, usahay makalimtan nako kini. Ang escalation usa ka maayong pahinumdom, bisan kung imong gibantayan ang imong kaugalingon.

Sa kinatibuk-an, nagtuo ko nga ang kalidad sa among trabaho misaka sa usa ka han-ay sa kadako. Adunay halos walay downtime (o ang kliyente walay panahon nga makamatikod niini. Shh lang!), Samtang ang gidaghanon sa trabaho nahimong mas gamay ug ang mga kahimtang sa pagtrabaho nahimong mas kalmado. Mibalhin kami gikan sa emerhensya nga trabaho nga adunay mga buho nga gitambalan gamit ang teyp ngadto sa kalma ug gisukod nga trabaho, kung daghang mga problema ang gitagna nang daan ug adunay panahon aron mapugngan kini. Bisan ang mga problema nga nahitabo nahimo usab nga labi kadali nga ayohon: una, nahibal-an namon ang bahin niini sa wala pa mag-panic ang mga kliyente, ug ikaduha, kanunay nga mahitabo nga ang problema adunay kalabotan sa bag-ong trabaho (samtang nagbuhat ako usa ka butang, gibali nako ang lain) - mao nga init Kini mas sayon ​​alang sa mga timailhan sa pag-atubang niini.

Apan adunay laing kaso ...

Nahibal-an ba nimo nga sa sikat nga Debian 9 (Stretch) ang ingon ka sikat nga pakete sama sa phpmyadmin naa pa (sa daghang mga bulan!) sa huyang nga kahimtang? (CVE-2019-6798). Sa diha nga ang kahuyang mitumaw, kami dali nga gitabonan kini sa lain-laing mga paagi. Apan gipahimutang nako ang pagmonitor sa panid sa pagsubay sa seguridad sa okerr aron mahibal-an kung kanus-a mogawas ang usa ka "matahum" nga solusyon (pinaagi sa SHA1 nga kantidad sa sulud). Ang timailhan nagpakibot kanako sa daghang mga higayon, ang panid nausab, apan ingon sa imong makita, kini sa gihapon (sukad sa Enero 2019!) Wala magpakita nga ang problema nasulbad na. Tingali, sa dalan, adunay nahibal-an kung unsa ang problema nga ang ingon nga usa ka importante nga pakete mahuyang gihapon sulod sa kapin sa usa ka tuig?

Laing higayon sa parehas nga sitwasyon: pagkahuman sa usa ka kahuyang sa SSH, kinahanglan nga i-update ang tanan nga mga server. Ug kung maghimo ka usa ka buluhaton, kinahanglan nimo nga kontrolon ang pagpatuman. (Ang mga sakop lagmit nga dili masabtan, makalimot, maglibog, ug masayop). Busa, una midugang ug SSH version check sa okerr sa tanang server, ug pinaagi sa okerr among gisiguro nga ang mga update gilukot sa tanang server. (Sayon! Gipili nako kini nga matang sa timailhan, ug makita dayon nimo kung unsang server ang adunay bersyon). Kung nakasiguro kami nga ang buluhaton nahuman sa tanan nga mga server, among gitangtang ang mga timailhan.

Sa pipila ka mga higayon adunay usa ka sitwasyon diin ang usa ka problema mitungha, ug unya mawala sa iyang kaugalingon. (tingali pamilyar sa tanan?). Sa panahon nga imong namatikdan, sa panahon nga imong susihon-ug walay bisan unsa nga susihon-ang tanan nagtrabaho na og maayo. Apan unya kini nabungkag pag-usab. Nahitabo kini, pananglitan, sa mga produkto nga among gi-upload sa Amazon Marketplace (MWS). Sa pila ka punto, ang gikarga nga imbentaryo dili husto (sayup nga gidaghanon sa mga butang ug sayup nga presyo). Nahibal-an namon kini. Apan aron mahibal-an kini, hinungdanon nga mahibal-an dayon ang problema. Ikasubo, ang MWS, sama sa tanan nga mga serbisyo sa Amazon, medyo hinay, mao nga kanunay adunay usa ka lag, apan bisan pa, nahibal-an namon ang koneksyon tali sa problema ug sa mga script nga hinungdan niini (gihimo namon ang usa ka pagsusi, giugbok. kini sa okerr, ug gisusi kini dayon nga nakadawat usa ka alerto).

Usa ka makapaikag nga kaso ang bag-o lang gidugang sa koleksyon sa usa ka dako ug mahal nga European hoster, nga gigamit sa among kostumer. Sa kalit lang, ang TANAN sa among mga server nawala sa radar! Una, ang kustomer mismo (mas paspas kay sa okerra!) Nakamatikod nga ang site nga iyang gitrabahoan wala mag-abli ug naghimo og tiket mahitungod niini. Apan dili lang usa ka site ang nahulog, apan silang tanan! (Natasha, gihulog namo ang tanan!). Dinhi si Okerr nagsugod sa pagpadala ug taas nga mga pambalot sa tiil uban ang tanan nga mga timailhan nga nagdan-ag alang kaniya. Panic, panic, nagdagan-dagan mi sa mga sirkulo (unsa pa ang among mahimo?). Unya mibangon ang tanan. Kini nahimo nga adunay naandan nga pagmentinar sa data center (kausa sa daghang mga tuig) ug, siyempre, kita kinahanglan nga gipasidan-an. Apan usa ka matang sa problema ang nahitabo kanila ug wala nila kami gipasidan-an. Aw, mas daghang atake sa kasingkasing, dili kaayo atake sa kasingkasing. Apan human mapasig-uli ang tanan, kinahanglan nimo nga susihon pag-usab ang tanan! Dili nako mahunahuna kung giunsa nako kini buhaton gamit ang akong mga kamot. Gisulayan ni Okerr ang tanan sa pipila ka minuto. Nahibal-an nga kadaghanan sa mga server temporaryo nga wala magamit, apan kini nagtrabaho. Ang uban nabug-atan, apan mitindog usab ingon nga kinahanglan nila. Sa tanan nga mga pagkawala, kami nawad-an sa duha ka backups, nga sumala sa korona kinahanglan nga gibuhat ug loaded samtang kini nga puno sa saging nagpadayon. Wala ako maghasol sa paghimo niini, usa ka adlaw sa ulahi ang mga alerto miabot nga ang tanan OK ra, ang mga pag-backup nagpakita. Ganahan kaayo ko niini nga panig-ingnan tungod kay ang okerr nahimong mapuslanon kaayo sa usa ka sitwasyon nga wala pa gani namo mahunahuna daan, apan mao kana ang katuyoan sa pag-monitor - aron mapugngan ang dili matag-an.

Alang sa mga sensor sa Okerr, gigamit namon ang labing barato nga posible nga pag-host (diin dili hinungdanon ang kalidad ug kasaligan, gisiguro nila ang usag usa). Mao nga, bag-ohay lang nakit-an namon ang usa ka maayo kaayo nga pag-host ug super barato, ang mga benchmark katingad-an. Apan ... usahay kini nahimo nga ang mga outgoing nga koneksyon gikan sa virtual machine gihimo gikan sa lain (silingan) IP. Mga milagro. Client_ip module nga adunay https://diagnostic.opendns.com/myip nakakuha ug sayop nga IP. Ug gikan sa mga log sa server sa timailhan klaro nga ang pag-update naggikan usab sa silingang IP. Atong atubangon ang suporta karon. Maayo kay namatikdan nato kini sa panahon sa kalinaw. Apan, pananglitan, kanunay nga mahitabo nga ang pag-access narehistro sumala sa puti nga lista sa IP - ug kung ang server usahay mokidlap sama niini sa mubo nga panahon - mahimo nimong sulayan nga makuha kini nga problema sa dugay nga panahon.

Aw, usa pa ka butang - tungod kay naghisgot kami bahin sa pag-host sa VPS - kanunay namong gigamit ang mga barato (hetzner, ovh, scaleway). Ganahan kaayo ko niini sa mga termino sa mga benchmark ug kalig-on. Gigamit usab namo ang mas mahal nga Amazon EC2 alang sa ubang mga proyekto. Busa, salamat sa okerr, kami adunay among kaugalingon nga nahibal-an nga opinyon. Nahulog silang duha. Ug dili ko moingon nga sa taas nga panahon sa among mga obserbasyon, ang barato nga mga pag-host sama sa hetzner nahimo nga dili kaayo lig-on kaysa EC2. Busa, kung wala ka nahigot sa ubang mga bahin sa Amazon, nganong magbayad pa? πŸ™‚

Unsay sunod?

Kung sa kini nga yugto wala pa ko mahadlok kanimo gikan sa Okerr, unya sulayi kini! Mahimo kang direktang moadto niini nga link okerr demo account (I-klik karon!) Apan hinumdomi nga adunay usa ra ka demo account alang sa tanan, busa kung adunay imong buhaton, ang usa ka tawo sa parehas nga account mahimong makabalda kanimo sa parehas nga oras. O (mas maayo) magparehistro pinaagi sa link sa offsite okerr - Ang tanan yano ra, nga wala’y SMS. Kung dili nimo gusto nga gamiton ang imong tinuod nga email, mahimo nimong gamiton ang usa nga magamit, sama sa mailinator (girekomenda ko getnada.com). Ang ingon nga mga account mahimong matangtang sa paglabay sa panahon, apan kini maayo alang sa pagsulay.

Pagkahuman sa pagparehistro, hangyoon ka nga moagi sa pagbansay (pagbuhat daghang dili kaayo lisud nga mga buluhaton sa pagbansay). Ang inisyal nga mga limitasyon gamay ra kaayo, apan alang sa pagbansay o usa ka server igo na sila. Pagkahuman sa pagbansay, ang mga limitasyon (pananglitan, ang labing kadaghan nga mga timailhan) madugangan.

Gikan sa dokumentasyon - una sa tanan WIKI sa kilid sa server ug sa kliyente (okerrupdate wiki). Apan kung adunay dili klaro, pagsulat sa pagsuporta (sa) okerr.com o pagbilin usa ka tiket - sulayan namon nga masulbad dayon ang tanan.

Kung seryoso nimo kining gamiton ug dili pa igo kining nadugangan nga mga limitasyon, pagsulat sa pagsuporta ug among dugangan kini (libre).

Gusto ba nimong i-install ang okerr server sa imong server? Dinhi okerr-dev repository. Girekomenda namon ang pag-install sa usa ka limpyo nga virtual machine, unya mahimo nimo kini gamit ang script sa pag-install. Sa imong virtual machine - walay mga pagdili :-). Aw, pag-usab, kung adunay mahitabo, kanunay kaming maningkamot sa pagtabang.

Gusto namon nga kini nga proyekto magsugod, aron ang kalibutan mahimong mas kasaligan salamat kanamo. Salamat sa libre nga software ug mga serbisyo, ang kalibutan nahimong mas mahigalaon ug nag-uswag nga mas dinamiko. Ang mga tinubdan mahimong tipigan sa libre nga github, alang sa mail mahimo nimong gamiton ang libre nga gmail. Gigamit namo ang libre freshworks alang sa suporta. Alang sa bisan unsa niini, dili nimo kinahanglan nga magbayad alang sa mga server, dili nimo kinahanglan nga i-download ug i-configure, ug dili nimo kinahanglan nga sulbaron ang lainlaing mga problema sa operasyon. Matag bag-ong proyekto, matag team dayon adunay mail, mga repositoryo ug CRM. Ug kining tanan taas kaayo nga kalidad ug libre ug dayon. Gusto namon nga parehas kini sa pag-monitor - ang gagmay nga mga kompanya ug mga proyekto mahimong mogamit sa okerr nga libre ug bisan sa yugto sa pagkahimugso ug pagtubo adunay kasaligan sa mga seryoso nga proyekto sa mga hamtong.

Source: www.habr.com