Úgy döntöttem, hogy megosztom a történetemet. Talán valakinek hasznos lesz ez a költséghatékony megoldás a mindenki által ismert problémára.
Amikor fiatal voltam és tele energiával, nem tudtam, hová tegyem ezt az energiát, ezért úgy döntöttem, hogy kicsit szabadúszok. Gyorsan sikerült felépítenem egy jó értékelést, és találtam néhány állandó ügyfelet, akik megkértek, hogy folyamatosan támogassam a szervereiket.
Az első dolog, amire gondoltam, a monitorozás volt. Úgy döntöttem, hogy a okos emberek mintájára járok el, nem találom fel a spanyolviaszt, és megnézem a kész megoldásokat, mint például a Munin vagy Zabbix. De azonnal kiderült, hogy a webes verzió jó internetkapcsolatot igényel, különösen, ha először nyitom meg telefonról. Ha pedig a természetben pihenek, messze a várostól, nehéz stabil kapcsolatot szerezni. Ezért a konzolos monitorozás mellett döntöttem.
Konzolos monitorozásként jól segített nekem az atop és az atop logok olvasására szolgáló program, az atopsar. Eddig már említették a habron. , de az atopsarról szinte semmit nem meséltek.
Telepítés
Nagyon egyszerű a telepítése, mindössze három parancsot igényel.
#Centos
yum install atop#Debian/Ubuntu
apt-get install atopEzután beállíthatja a monitorozás munkáját az igényei szerint, vagy használhatja az alapértelmezett beállításokat.
#Debian/Ubuntu/Centos
/etc/default/atop Alapértelmezett fájl:
#cat /etc/default/atop
INTERVAL=60 #Время, через которое создаётся снимок нагрузки в секундах, по умолчанию каждые 10 минут
LOGPATH="/var/log/atop" #Путь до папки хранения логов
OUTFILE="$LOGPATH/daily.log" #Название файла логов за сегодняшний день
Hozzáadjuk az automatikus indításhoz
#Debian/Ubuntu/Centos
systemctl enable atop Az atop daemonként indítása
#Debian/Ubuntu/Centos
systemctl start atop A lusták kedvéért mindent egy parancsba gyűjtöttem
#Centos
yum install atop && systemctl enable atop && systemctl start atop#Debian/Ubuntu
apt-get install atop && systemctl enable atop && systemctl start atopAtopsar
Az atop mellett az atopsar is települ, ez egy kényelmes konzolos elemző a daemon atop által vezetett bináris logokhoz. Természetesen olvashatjuk a logokat az atop segítségével is, de ez nem annyira kényelmes, ha hosszú időtartamot kell rögzíteni.
Rövid áttekintés az atopsar működéséről.
Az atopsar indításakor kulcsok nélkül a mai nap logját nyitja meg, és külön-külön megjeleníti az egyes magokra vonatkozó terheléseket, valamint az összes mag általános idle állapotát.
A kulcsok, amelyeket én használok:
-A = minden információ megjelenítése a naplóból
-c = a processzor magok terhelésére vonatkozó információ
-m = a RAM és swap terhelés
-d = lemezaktivitás
-O = a legjobb 3 folyamat a CPU terhelésére
-G = a legjobb 3 folyamat a RAM terhelésére
-D = a legjobb 3 folyamat a lemez terhelésére
-N = a legjobb 3 folyamat a hálózati terhelésére
-r = megadja a napló elérési útját, amelyet meg szeretne nézni, ha az előző napok terhelését akarja átnézni
-b = az idő, amiktől kezdve meg akarja jeleníteni a kimenetet
-e = az idő, amikor be kell fejezni a kimenetet
-M = létrehoz egy további oszlopot a végén, amelyben a sor kritikus állapotát jelzik (+ van terhelés, * — kritikus terhelés)
A monitoring lehetővé teszi, hogy bármikor megértsük a szerver helytelen működésének okát.
Értesítések
Tehát a terhelésfigyelés megvan, de mégsem ad lehetőséget arra, hogy gyorsan megtaláljuk és megoldjuk a problémákat. Értesítésekre van szükségünk a problémák felmerüléséről.
Egyedül figyelem a szervereket, ezért értesíteni kell arra, ahol mindig meglátom és akár reagálni tudok.
Kezdetben SMS volt — gyors, megbízható, ingyenes. De aztán a mobilszolgáltatók leállították az ingyenes SMS-küldést a saját átjáróikon keresztül.
Az e-mail — lassú, lehetnek problémák a kézbesítéssel.
A messengerek — telepíteni kell a telefonra, botokat kell létrehozni.
A keresés eredményeként a Telegram üzenetküldőt választottam az egyszerűsége és a telefonra és számítógépre elérhető kényelmes alkalmazás miatt.
Létrehoztam a saját botomat a .
Használatával feltettem a szerverre néhány scriptet, amelyek figyelemmel kísérik a szerver terhelését (IDL, smartct stb.), a «oom killer» típusú hibákat, a backup létrehozásakor fellépő hibákat, és más műveleteket, amelyeket ellenőrizni szükséges.
A scriptek meglehetősen egyszerűek, bash nyelven íródtak, például a LA ellenőrzése és értesítés a Load Average és a magok számának túllépésekor szerveren.
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=A szerveren $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 folyamat `top -b -n 1 | grep -A 5 'PID USER' | tail -5`"
fiA szintaxis egyszerűsége nagyon sokféle felhasználási lehetőséget kínál (és bárki, aki kicsit is jártas a programozási nyelvben, meg tudja írni/folytatni).
Egyetlen árnyalat — ha a szerver Oroszországban található (és nincs IPv6 a szerveren), akkor proxy-t kell használni. Ehhez a script elején meg kell adni a proxy csatlakozási sort:
export https_proxy=http://felhasználónév:jelszó@IP.cím:portEz még nem a vége
Nyugodtan sétálsz a hegyekben, hátizsákkal a hátadon, pihensz a civilizációtól, amikor a telefonod, véletlenül találva egy jelet, értesítést küld a szervereden fellépett problémáról. Mi a teendő? A nyugodt hangulatod hirtelen tovaszáll. Felhívjam a feleségem és diktáljam a parancsokat? Haha!
Sürgősen ki kellett találni egy módot a felmerült problémák gyors elhárítására, jó internetkapcsolat nélkül. Itt ismét megmentett a messenger (#telegrameve). Megtanítottam a botomat, hogy csak velem beszélgessen, figyelmen kívül hagyva mindenki mást. Most, a probléma értesítése mellett, kicsit több adat érkezik, amelyből megértem, mi a probléma forrása, és megpróbálhatom azt távolról megoldani. Elég, ha csak üzenetet írok a botnak, felemelem a telefont, hogy az üzenet eljusson, és voilà — a bot elvégezte a munkádat. Így például megölhetem egy nemkívánatos folyamatot, újraindíthatom a demót, letilthatom az IP-t, és így tovább.
Ide áthelyeztem a jövőbeni szükséges kéréseket az ügyfelektől, például sürgős jelszó-visszaállításon felhasználóknak (mert „Ááá, nem tudunk belépni a szerverre, milliókat veszítünk!”), felhasználó keresése, aki hozzáfér a megfelelő mappához, a weboldal bekapcsolása és kikapcsolása és egyebek. Természetesen folyamatosan fejlesztem a bot funkcióit, mert az ügyfelek fantáziája néha váratlan és számomra nem előre látott kéréseket hoz. De a főbb igények kielégültek.
Van VK verziója is, de az valahogy nem lett népszerű.
Most már nyugodtan utazom és felfedezem ezt a világot, nem félve attól, hogy valami elromlik, és nem tudok róla értesülni vagy kijavítani azt.
Forrás: habr.com
