Comme je l'ai mentionné dans mon suivi

J'ai décidé de partager mon histoire. Cela pourrait même être une solution économique à un problème bien connu pour certains.

Quand j'étais jeune et fou, ne sachant où diriger mon énergie, j'ai décidé de faire un peu de freelance. J'ai rapidement réussi à obtenir un bon classement et j'ai trouvé quelques clients réguliers qui m'ont demandé de gérer leurs serveurs sur une base continue.

La première chose à laquelle j'ai pensé, c'est la nécessité d'un monitoring. J'ai décidé de faire comme les gens intelligents, de ne pas réinventer la roue et de regarder des options prêtes à l'emploi, comme Munin ou Zabbix. Mais j'ai rapidement découvert que la version Web exige une bonne connexion Internet, surtout si on l'ouvre pour la première fois depuis un téléphone. Si tu es en train de te détendre dans la nature, loin de la ville, obtenir une connexion stable est difficile. C'est pourquoi j'ai choisi une option de monitoring en console.

Pour le monitoring en console, atop m'a bien aidé ainsi que le programme de lecture des logs d'atop, atopsar. Ils ont déjà été mentionnés sur Habr, atop a même été analysé, mais peu de choses ont été dites sur atopsar.

Installation

Installation très simple, seulement trois commandes.

#Centos

yum install atop

#Debian/Ubuntu

apt-get install atop

Ensuite, tu peux configurer le monitoring selon tes besoins ou utiliser les paramètres par défaut.

#Debian/Ubuntu/Centos

/etc/default/atop 

Fichier standard :

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

Ajoutons au démarrage automatique
#Debian/Ubuntu/Centos

systemctl enable atop 

Lancez atop en tant que démon
#Debian/Ubuntu/Centos

systemctl start atop  

Pour les fainéants, j'ai regroupé en une seule commande
#Centos

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

#Debian/Ubuntu

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

Atopsar

Atopsar est installé avec atop, c'est un analyseur de logs binaires en console pratique, que le démon atop garde. Bien sûr, tu peux lire les logs avec atop, mais ce n'est pas aussi pratique si tu dois capturer une longue période.

Un petit cours sur l'utilisation d'atopsar.

Lors du lancement d'atopsar sans clés, le log du jour en cours s'ouvre et affiche la charge de chaque cœur séparément ainsi que la ligne idl pour tous les cœurs.

Les clés que j'utilise :

-A = afficher toutes les informations du log
-c = afficher les informations sur la charge des cœurs de processeur, la clé par défaut
-m = charge de la mémoire vive et swap
-d = activité disque
-O = top 3 des processus en charge du CPU
-G = top 3 des processus en charge de la RAM
-D = top 3 des processus en charge du disque
-N = top 3 des processus en charge du réseau
-r = spécifier le chemin du log que vous souhaitez lire, si vous devez voir la charge des jours passés
-b = temps à partir duquel commencer l'affichage
-e = heure à laquelle il faut terminer la sortie
-M = crée une colonne supplémentaire à la fin, indiquant la criticité de la ligne (+ charge normale, * — charge critique)

Grâce à la surveillance, nous pouvons comprendre la cause du comportement incorrect du serveur à tout moment.

Notifications

Donc, nous avons une surveillance de la charge, mais cela ne permet toujours pas de détecter et de résoudre les problèmes rapidement. Nous avons besoin d'alertes en cas de problème.

Je suis le seul à surveiller les serveurs, donc il faut m'envoyer les notifications là où je pourrai toujours les voir et réagir d'une manière ou d'une autre.

Au début, il y avait les SMS — rapides, fiables, gratuits. Mais ensuite, les opérateurs mobiles ont fermé les services SMS gratuits à travers leurs passerelles.
Le courrier — c'est long, il peut y avoir des problèmes de livraison.
Les messageries — il faut les installer sur le téléphone, il est nécessaire de créer des bots.

En fin de recherche, la messagerie choisie a été Telegram pour sa simplicité et son application pratique sur téléphone et ordinateur.

J'ai créé mon propre bot avec botfather.
Ensuite, j'ai placé sur le serveur plusieurs scripts surveillant la charge sur le serveur (IDL, smartct, etc.), la présence d'erreurs de type « oom killer », les erreurs lors de la création de sauvegardes et d'autres opérations à contrôler.

Les scripts sont assez simples, écrits en bash, par exemple, vérification de LA et notification en cas de dépassement de la charge moyenne du nombre de cœurs à le serveur.

if [ ${LA[0]} -gt 2000 ] || [ ${LA[1]} -gt 3000 ] || [ ${LA[2]} -gt 4000 ]
    alors
        wget -O /dev/null "https://api.telegram.org/$bot_id:$bot_key/sendMessage?chat_id=$chat_id&text=Sur le serveur $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 des processus `top -b -n 1 | grep -A 5 'PID USER' | tail -5`"
    fi

La simplicité de la syntaxe offre de nombreuses possibilités d'utilisation (et n'importe qui ayant un minimum de connaissance en programmation peut écrire / compléter).

La seule nuance — si le serveur est en Russie (et que vous n'avez pas d'IPv6 sur le serveur), il est nécessaire d'utiliser un proxy. Pour cela, au début du script, il faut indiquer la ligne de connexion au proxy :

export https_proxy=http://login:motdepasse@IP.adresse:port

Ce n'est pas la fin

Tu te promènes tranquillement dans les montagnes avec un sac à dos, éloigné de la civilisation, et là, ton téléphone, captant par accident un signal, t'envoie une notification d'un problème sur ton serveur. Que faire ? L'humeur sereine s'évapore comme par magie. Appeler ma femme et lui dicter des commandes ? Ha-ha !

Il fallait absolument trouver un moyen de résoudre rapidement les problèmes survenant sans avoir une bonne connexion internet. C'est là que la messagerie m'a encore sauvé (#télégrammevis). J'ai appris à mon bot à ne parler qu'avec moi, en ignorant tout le monde. Maintenant, avec la notification de problème, je reçois un peu plus de données qui me permettent de comprendre d'où vient le problème et de tenter de le résoudre à distance. Il suffit d'envoyer un message au bot, de lever un peu le téléphone pour que le message parte, et voilà — le bot se met à faire ton travail. Ainsi, je peux tuer un processus indésirable, redémarrer un démon, bloquer une IP, et plus encore.

J'ai également transféré des requêtes futures nécessaires de clients ici, par exemple, une réinitialisation urgente des mots de passe (car « Aaaa, nous ne pouvons pas accéder au serveur, nous perdons des millions ! »), la recherche d'un utilisateur ayant accès au dossier souhaité, l'activation et la désactivation du site, et d'autres. Bien sûr, j'améliore constamment les fonctionnalités du bot, car l'imagination des clients me soumet parfois des demandes inattendues et imprévues. Mais les principales sont satisfaites.

Il existe aussi une version pour VK, mais elle n'a pas vraiment pris.

Maintenant, je voyage paisiblement et découvre ce monde, sans craindre que quelque chose ne se casse et que je ne puisse pas le savoir ou le réparer.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster