Vendosa të ndaj historinë time. Mund të ndihmojë dike me një zgjidhje të tillë buxhetore për një problem të njohur.
Kur isha i ri dhe plot energji, vendosa të bëj pak freelancing. Arrita të fitoj shpejt një reputacion dhe gjej disa klientë të rregullt që kërkuan mbështetje të vazhdueshme për serverët e tyre.
E para që m'u kujtua ishte nevoja për monitorim. Vendosa të veproj si njerëzit e mençur, të mos shpik rrotën, por të shoh opsionet e gatshme, si Munin ose Zabbix. Por e kuptova menjëherë se versioni Web kërkon një lidhje të mirë interneti, sidomos nëse e hap për herë të parë nga telefoni. Nëse je duke pushuar në natyrë, larg qytetit, është e vështirë të sigurosh një lidhje stabile. Kështu që zgjodhëm një variant monitorimi në konsolë.
Në rolin e monitorimit në konsolë, atop dhe programi për leximin e logeve të atop-it — atopsar më ndihmuan shumë. Të dy janë përmendur në habr, , ndërsa për atopsar nuk është folur shumë.
Instalimi
Instalimi është shumë i thjeshtë, vetëm tre komanda.
#Centos
yum install atop#Debian/Ubuntu
apt-get install atopMë pas mund të rregullosh funksionimin e monitorimit sipas nevojave të tua ose të përdorësh planet e paracaktuara.
#Debian/Ubuntu/Centos
/etc/default/atop Skedari standard:
#cat /etc/default/atop
INTERVAL=60 #Время, через которое создаётся снимок нагрузки в секундах, по умолчанию каждые 10 минут
LOGPATH="/var/log/atop" #Путь до папки хранения логов
OUTFILE="$LOGPATH/daily.log" #Название файла логов за сегодняшний день
Shto në autostart
#Debian/Ubuntu/Centos
systemctl enable atop Nis atop si demon
#Debian/Ubuntu/Centos
systemctl start atop Për ata që dëshirojnë ta bëjnë më të thjeshtë, kam mbledhur në një komandë
#Centos
yum install atop && systemctl enable atop && systemctl start atop#Debian/Ubuntu
apt-get install atop && systemctl enable atop && systemctl start atopAtopsar
Me atop instalon edhe atopsar, një analist i përshtatshëm për loget binare që krijon demon atop. Sigurisht që mund të lexosh loget edhe vetë me atop, por nuk është kaq e lehtë nëse duhet të regjistrosh një interval të gjatë kohor.
Një udhëheqje e shkurtër mbi funksionimin e atopsar.
Kur niset atopsar pa çelësa, hap logun për sot dhe shfaq ngarkesën në çdo bërthamë veç e veç dhe vijën idl për të gjitha bërthamat.
Çelësat që përdor:
-A = shfaq të gjitha informacionet nga logu
-c = shfaq informacionin mbi ngarkesën në bërthamat e procesorit, çelësi është i paracaktuar
-m = ngarkesa në memorjen RAM dhe swap
-d = aktiviteti në disk
-O = tre proceset kryesore me ngarkesë në CPU
-G = tre proceset kryesore me ngarkesë në RAM
-D = tre proceset kryesore me ngarkesë në disk
-N = tre proceset kryesore me ngarkesë në rrjet
-r = tregoni rrugën deri në logun që dëshironi të lexoni, nëse duhet të shikoni ngarkesën për ditët e kaluara
-b = koha nga e cila fillon shfaqja
-e = koha kur duhet të përfundojë shfaqja
-M = krijon një kolone shtesë në fund, ku shënohet kriticiteti i rreshtit (+ ka ngarkesë, * — ngarkesë kritike)
Falë monitorimit mund të kuptojmë arsyet e sjelljes jo të saktë të serverit në çdo kohë.
Njoftimet
Pra, monitorimi i ngarkesës është në vend, por prapëseprapë nuk jep mundësinë për të zbuluar dhe zgjidhur problemet në mënyrë të menjëhershme. Na nevojiten njoftime për çdo problem të ndodhur.
Unë kujdesem vetëm për serverët, prandaj njoftimet duhet të shkojnë atje ku unë mund t’i shoh dhe të reagoj ndonjëherë.
Në fillim ishin SMS — shpejt, të sigurta, falas. Por më vonë operatorët mobilë ndaluan dërgimin falas të SMS-ve përmes porteve të tyre.
Posta — e ngadaltë, mund të ketë probleme me dorëzimin.
Mesazherët — duhet të instalosh në telefon, është e nevojshme të krijosh bota.
Si rezultat i kërkimit, u zgjodh mesazheri Telegram për thjeshtësinë dhe aplikacionin e përshtatshëm në telefon dhe desktop.
Krijova botin tim me ndihmën e .
Më pas vendosa disa skripta në server, që monitorojnë ngarkesën e serverit (IDL, smartct etj.), praninë e gabimeve të tipit "oom killer", gabimeve gjatë krijimit të backup-it dhe operacione të tjera që duhet t'i kontrollosh.
Skripti është mjaft i thjeshtë, i shkruar në bash, për shembull, kontrolli LA dhe njoftimi në rastin e tejkalimit të Load Average-së nga numri i bërthamave në serveri.
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=Në serverin $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=Top 5 proceseve `top -b -n 1 | grep -A 5 'PID USER' | tail -5`"
fiThjeshtësia e sintaksës ofron shumë mundësi përdorimi (dhe mund ta shkruajë/dopë atë çdo kush që paksa zotëron gjuhën e programimit).
Një detaj — nëse serveri është në Rusi (dhe nuk ke IPv6 në server), duhet përdorur proxy. Për këtë, në fillim të skriptës duhet të shkruash varg lidhjeje me proxy:
export https_proxy=http://login:password@IP.address:portKjo nuk është fundi
Ecni rehat nëpër malet me një çantë pas shpine, duke pushuar nga civilizimi, dhe papritur telefoni, duke përfituar një lidhje, dërgon një njoftim për një problem në serverin tuaj. Çfarë të bëni? Ndjenja e qetësisë zhduket si me erë. Të telefonosh gruan dhe të diktosh komandat? Haha!
Ishin e nevojshme të shpik një mënyrë për të zgjidhur shpejt problemet e paraqitura pa pasur një internet të mirë. Këtu më shpëtoi sërish mesazhi (#telegramliv). E mësova botin tim të komunikojë vetëm me mua, duke injoruar të tjerët. Tani, së bashku me njoftimin për problemin, më vijnë disa të dhëna më shumë, nga të cilat kuptoj se kush është burimi i problematikës, dhe mund ta provoj ta zgjidh atë nga larg. Mjafton të shkruaj një mesazh për botin, të hedh telefonin lart, që mesazhi të shkojë, dhe voilà - boti është duke bërë punën tuaj. Kështu, unë mund të bëj, për shembull, të mbyll ndonjë proces të padëshiruar, të rinis demonin, të bllokoj IP dhe të tjera.
Këtu kam transferuar gjithashtu kërkesat e ardhshme nga klientët, si p.sh. rikuperimin e menjëhershëm të fjalëkalimeve për përdoruesit (sepse “Aaaa, nuk mund të hyjmë në server, po humbasim miliona!”), kërkimin e përdoruesve me akses në dosjen e nevojshme, aktivizimin dhe çaktivizimin e sitit dhe të tjera. Sigurisht, unë vazhdoj të përmirësoj funksionalitetin e botit, pasi imagjinata e klientëve ndonjëherë sjell kërkesa të papritura e të paimagjinueshme nga unë. Por të gjitha bazike janë të kënaqura.
Ka edhe një version për VK, por ndonjëherë nuk është pranuar.
Tani udhëtoj qetësisht dhe eksploroj këtë botë, duke mos u frikësuar se diçka do të prishet dhe nuk do të mund ta dij ose ta rregulloj.
Burimi: habr.com
