Hoe ek my monitering geskryf het

Besluit om my storie te deel. Miskien sal selfs iemand so 'n begrotingsoplossing vir 'n bekende probleem nodig hê.

Toe ek jonk en warm was en nie geweet het waar om my energie te sit nie, het ek besluit om vryskut te doen. Ek kon vinnig 'n gradering kry en ek het 'n paar gereelde kliënte gevind wat gevra het om hul bedieners op 'n deurlopende basis te onderhou.

Die eerste ding waaraan ek gedink het, was die behoefte aan monitering. Ek het besluit om dit soos slim mense te doen, nie om die wiel weer uit te vind nie, maar om te kyk na klaargemaakte opsies, soos Munin of Zabbix. Maar dit het dadelik geblyk dat die webweergawe 'n goeie internetverbinding vereis, veral as jy dit vir die eerste keer van jou foon af oopmaak. As jy in die natuur weg van die stad ontspan, is dit moeilik om 'n stabiele verbinding te kry. Daarom is die konsole-monitering-opsie gekies.

As konsole-monitering het bo-op en bo-op se logleser, atopsar, my baie gehelp. Hulle is reeds genoem op habr, bo-op is selfs afgebreek, maar omtrent niks is oor atopsar gesê nie.

installasie

Baie eenvoudige installasie, net drie opdragte.

#sentos

yum install atop

#Debian/Ubuntu

apt-get install atop

Dan kan jy die monitering vir jouself aanpas of die verstekinstellings gebruik.

#Debian/Ubuntu/Centos

/etc/default/atop 

Standaard lêer:

 #cat /etc/default/atop
INTERVAL=60                    #Время, через которое создаётся снимок нагрузки в секундах, по умолчанию каждые 10 минут
LOGPATH="/var/log/atop"        #Путь до папки хранения логов
OUTFILE="$LOGPATH/daily.log"   #Название файла логов за сегодняшний день

Voeg by autorun
#Debian/Ubuntu/Centos

systemctl enable atop 

Hardloop bo-op as 'n daemoon
#Debian/Ubuntu/Centos

systemctl start atop  

Vir die lui in een span bymekaar
#sentos

yum install atop && systemctl enable atop && systemctl start atop

#Debian/Ubuntu

apt-get install atop && systemctl enable atop && systemctl start atop

Atopsar

Saam met bo, is atopsar ook geïnstalleer, dit is 'n gerieflike konsole-ontleder van binêre logs wat deur die bo-demoon onderhou word. Natuurlik kan u die logboeke self lees, maar dit is nie so gerieflik as u 'n groot tydsinterval moet vaslê nie.

'n Klein opvoedkundige program oor die werk van atopsar.

Wanneer jy atopsar sonder sleutels hardloop, maak die log vir vandag oop en die vrag vir elke kern word afsonderlik vertoon en die idl-lyn vir alle kerns.

Sleutels wat ek gebruik:

-A = vertoon alle inligting uit die log
- Met = vertoon inligting oor die las op die verwerkerkerne, die versteksleutel
-m = laai op RAM en ruil
-d = skyfaktiwiteit
-O = top 3 SVE laai prosesse
-G = top 3 RAM laai prosesse
-D = top 3 skyf laai prosesse
-N = top 3 netwerk laai prosesse
-r = spesifiseer die pad na die log wat jy wil lees as jy die vrag vir die afgelope dae moet sien
-b = tyd vanwaar uitset begin word
-e = tyd waarop uitset voltooi moet word
-M = skep 'n bykomende kolom aan die einde, waarin die kritiekheid van die ry gemerk is (+ daar is 'n las, * is 'n kritieke las)

Danksy monitering sal ons te eniger tyd die oorsaak van verkeerde bedienergedrag kan verstaan.

Kennisgewings

Daar is dus lasmonitering, maar dit maak dit steeds nie moontlik om probleme vinnig te vind en op te los nie. Ons benodig kennisgewings oor die probleem.

Ek alleen monitor die bedieners, so ek moet in kennis stel waar ek dit altyd kan sien en ten minste op een of ander manier daarop reageer.

In die begin was daar SMS - vinnig, betroubaar, gratis. Maar toe sluit selfoonoperateurs die gratis SMS-pos deur hul poorte.
Pos neem lank, daar kan probleme met aflewering wees.
Boodskappe - jy moet die telefoon aansit, jy moet bots skep.

As gevolg van die soektog is die Telegram-boodskapper gekies vir sy eenvoud en gerieflike toepassing op die telefoon en lessenaar.

My bot geskep met botvader.
Daarna het ek verskeie skrifte op die bediener geplaas wat die las op die bediener dophou (IDL, smartct, ens.l), die teenwoordigheid van foute soos "oom killer", foute wanneer 'n rugsteun geskep word, en ander bedrywighede wat moet word beheer word.

Die skrifte is redelik eenvoudig, geskryf in bash, byvoorbeeld, kontroleer LA en stel kennis oor Load Average wat die aantal kerne oorskry. bediener.

if [ ${LA[0]} -gt 2000 ] || [ ${LA[1]} -gt 3000 ] || [ ${LA[2]} -gt 4000 ]
    then
        wget -O /dev/null "https://api.telegram.org/$bot_id:$bot_key/sendMessage?chat_id=$chat_id&text=На сервере $ip LA $LAd"
        wget -O /dev/null "https://api.telegram.org/$bot_id:$bot_key/sendMessage?chat_id=$chat_id&text=`top -b -n 1 | grep Cpu`"
        wget -O /dev/null "https://api.telegram.org/$bot_id:$bot_key/sendMessage?chat_id=$chat_id&text=Топ 5 процессов `top -b -n 1 | grep -A 5 'PID USER' | tail -5`"
    fi

Die eenvoud van die sintaksis gee baie gebruiksgevalle (en enigiemand wat ten minste 'n bietjie programmeertaal ken, kan skryf / byvoeg).

Die enigste waarskuwing is dat as die bediener in Rusland geleë is (en jy het nie IPv6 op die bediener nie), dan moet jy 'n instaanbediener gebruik. Om dit te doen, moet u aan die begin van die skrif die verbindingstring na die instaanbediener skryf:

export https_proxy=http://логин:пароль@IP.адрес:порт

Dit is nie die einde nie

Jy stap rustig deur die berge met 'n rugsak op jou rug, neem 'n blaaskans van die beskawing, en dan gooi die foon, wat per ongeluk 'n verbinding kry, 'n kennisgewing oor 'n probleem wat ontstaan ​​het op jou bediener. Wat om te doen? Rustige bui soos die wind wegwaai. Bel jou vrou en dikteer bevele? Haha!

Dit was nodig om dringend met 'n manier vorendag te kom om die probleme wat vinnig en sonder die teenwoordigheid van 'n goeie internet ontstaan ​​het, uit te skakel. Hier is ek weer gered deur die boodskapper (#telegramlive). Ek het my bot geleer om net met my te kommunikeer en almal anders te ignoreer. Nou, saam met die kennisgewing van die probleem, ontvang ek 'n bietjie meer data, waarvolgens ek verstaan ​​wie die bron van die probleem is, en ek kan probeer om dit op afstand op te los. Dit is genoeg om net 'n boodskap aan die bot te skryf, die telefoon hoër te gooi sodat hierdie boodskap weggaan, en voila - die bot gaan om jou werk te doen. So, ek kan byvoorbeeld 'n aanstootlike proses doodmaak, die daemon herbegin, IP blokkeer, ensovoorts.

Ek het ook toekomstige nodige versoeke van kliënte hierheen geskuif, byvoorbeeld dringende wagwoordterugstellings vir gebruikers (omdat "Ahhh, ons kan nie by die bediener uitkom nie, ons verloor miljoene!"), Om 'n gebruiker te vind wat toegang het tot die verlangde gids , die werf aan- en afskakel, en ander . Natuurlik verbeter ek voortdurend die funksionaliteit van die bot, aangesien die fantasie van kliënte soms onverwagte en nie-voorsiene versoeke deur my opwerp nie. Maar die belangrikstes is tevrede.

Daar is ook 'n weergawe vir VK, maar op een of ander manier het dit nie wortel geskiet nie.

Nou reis ek rustig en bestudeer hierdie wêreld, nie bang dat iets daar sal breek nie, en ek sal dit nie kan uitvind of regmaak nie.

Bron: will.com

Voeg 'n opmerking