Zoals ik al eerder meldde in mijn monitoring

Ik besloot mijn verhaal te delen. Misschien komt zo'n budgetoplossing voor een algemeen probleem iemand van pas.

Toen ik jong en vol energie was en niet wist waar ik die naartoe moest, besloot ik een beetje freelance werk te doen. Het lukte me snel om een goede beoordeling te krijgen en ik vond een paar vaste klanten die vroegen om hun servers continu te onderhouden.

Het eerste waar ik aan dacht, was de noodzaak van monitoring. Ik besloot het niet opnieuw uit te vinden en keek naar bestaande opties, zoals Munin of Zabbix. Maar al snel ontdekte ik dat de webversie een goede internetverbinding vereist, vooral als je deze voor het eerst met je telefoon opent. Als je echter in de natuur bent, ver weg van de stad, is het moeilijk om een stabiele verbinding te krijgen. Daarom koos ik voor een consoleversie van de monitoring.

Voor consolemonitoring hielp atop me goed, samen met het programma voor het lezen van logs van atop – atopsar. Ze zijn al genoemd op Habr, atop werd zelfs besproken,maar over atopsar is er bijna niets verteld.

Installatie

Zeer eenvoudige installatie, slechts drie commando's.

#Centos

yum install atop

#Debian/Ubuntu

apt-get install atop

Daarna kun je de monitoring aanpassen of de standaardinstellingen gebruiken.

#Debian/Ubuntu/Centos

/etc/default/atop 

Standaardbestand:

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

Voeg toe aan autostart
#Debian/Ubuntu/Centos

systemctl enable atop 

Start atop als een daemon
#Debian/Ubuntu/Centos

systemctl start atop  

Voor de luiere mensen heb ik het in één commando verzameld
#Centos

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

#Debian/Ubuntu

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

Atopsar

Atopsar wordt samen met atop geïnstalleerd, het is een handige console-analyzer voor binaire logs die de atop-daemon bijhoudt. Natuurlijk kun je ook zelf de logs met atop lezen, maar dat is niet zo handig als je een lange tijdspanne moet vastleggen.

Een kleine uitleg over het gebruik van atopsar.

Bij het starten van atopsar zonder parameters wordt de log van vandaag geopend en wordt de belasting op elke kern afzonderlijk weergegeven, evenals de regel idl over alle kernen.

De parameters die ik gebruik:

-A = toon alle informatie uit de log
-s = toon informatie over de belasting op de processorkernen, standaardparameter
-m = belasting op het RAM en swap
-d = schijfactiviteit
-O = top-3 processen met belasting op de CPU
-G = top-3 processen met belasting op het RAM
-D = top-3 processen met belasting op de schijf
-N = top-3 processen met belasting op het netwerk
-r = geef het pad naar de log aan die je wilt lezen, als je de belasting van voorgaande dagen wilt bekijken
-b = tijd vanaf wanneer te beginnen met weergeven
-e = tijd waarop de uitvoer moet eindigen
-M = creëert een extra kolom aan het einde, waarin de kritischheid van de regel wordt gemarkeerd (+ er is belasting, * — kritische belasting)

Dankzij monitoring kunnen we op elk moment de oorzaak van ongewenst servergedrag begrijpen.

Meldingen

Dus er is belastingmonitoring, maar het biedt nog steeds niet de mogelijkheid om snel problemen te vinden en op te lossen. We hebben meldingen nodig van opkomende problemen.

Ik ben de enige die de servers in de gaten houdt, dus meldingen moeten worden gestuurd naar waar ik het altijd kan zien en hierop kan reageren.

In het begin waren er SMS'jes — snel, betrouwbaar, gratis. Maar toen hebben mobiele providers de gratis SMS-diensten via hun gateways stopgezet.
E-mail — duurt lang, er kunnen bezorgproblemen zijn.
Messaging-apps — moeten op de telefoon worden geïnstalleerd, botten moeten worden aangemaakt.

Als resultaat van de zoektocht werd de messenger Telegram gekozen vanwege de eenvoud en het gebruiksvriendelijke приложение op telefoon en desktop.

Ik heb mijn eigen bot gemaakt met behulp van botfather.
Daarna heb ik een paar scripts op de server gezet die de serverbelasting volgen (IDL, smartct en meer), het bestaan van fouten zoals 'oom killer', fouten bij het maken van back-ups en andere operaties die gecontroleerd moeten worden.

De scripts zijn vrij eenvoudig, geschreven in bash, bijvoorbeeld, LA controleren en meldingen verzenden over het overschrijden van de Load Average ten opzichte van het aantal cores op de server.

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=Op de server $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 processen `top -b -n 1 | grep -A 5 'PID USER' | tail -5`"
    fi

De eenvoud van de syntaxis biedt veel gebruiksmogelijkheden (en kan door iedereen die de programmeertaal een beetje beheerst worden geschreven/aangevuld).

De enige nuance — als de server zich in Rusland bevindt (en je hebt geen IPv6 op de server), dan moet je een proxy gebruiken. Daarom moet aan het begin van het script de verbindingsregel naar de proxy worden vermeld:

export https_proxy=http://gebruikersnaam:wachtwoord@IP.adres:poort

Dit is nog niet het einde

Je loopt rustig door de bergen met een rugzak op je rug, genietend van de natuur, en dan, heel toevallig, vangt je telefoon een signaal en krijgt je een melding over een probleem dat zich op je server heeft voorgedaan. Wat te doen? De serene stemming is als met de wind weggeblazen. Moet ik mijn vrouw bellen en commando's dicteren? Haha!

Ik moest snel een manier bedenken om de problemen snel op te lossen zonder een goede internetverbinding. Hier redde mijn messenger (#telegramlevend). Ik heb mijn bot leren communiceren alleen met mij, terwijl hij alle anderen negeert. Nu, samen met de melding over het probleem, ontvang ik wat meer gegevens waarmee ik begrip krijg van de bron van het probleem, en ik kan proberen het op afstand op te lossen. Het is simpelweg genoeg om een bericht naar de bot te sturen, de telefoon iets hoger te houden zodat dit bericht verzonden kan worden, en voilà – de bot gaat aan de slag om jouw werk te doen. Op deze manier kan ik bijvoorbeeld een ongewenst proces beëindigen, een daemon herstarten, een IP blokkeren, en meer.

Daarnaast heb ik toekomstige aanvraagbehoeften van klanten overgebracht, zoals urgente wachtwoordresets voor gebruikers (want "Aaah, we kunnen niet op de server komen, we verliezen miljoenen!") en het zoeken naar een gebruiker met toegang tot de benodigde map, het in- en uitschakelen van de website, en andere. Natuurlijk blijf ik de functionaliteit van de bot voortdurend verbeteren, aangezien de fantasie van klanten soms onverwachte en niet door mij voorziene verzoeken oplevert. Maar de meesten zijn tevreden.

Er is ook een versie voor VK, maar die is niet echt aangeslagen.

Nu reis ik rustig en ontdek ik deze wereld, zonder bang te zijn dat er iets kapot gaat, en ik niet op de hoogte kan zijn of het kan oplossen.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster