Au moment où j'écrivais mon suivi

J'ai décidé de partager mon histoire. Peut-être que même quelqu'un trouvera utile cette solution budgétaire à un problème bien connu.

Quand j'étais jeune et sexy et ne savais pas où mettre mon énergie, j'ai décidé de travailler un peu en freelance. J'ai réussi à obtenir rapidement une note et j'ai trouvé quelques clients réguliers qui m'ont demandé de maintenir leur serveur sur une base continue.

La première chose à laquelle j'ai pensé était le besoin de surveillance. J'ai décidé de le faire en tant que personnes intelligentes, non pas pour réinventer la roue, mais pour regarder des options toutes faites, comme Munin ou Zabbix. Mais il a été immédiatement découvert que la version Web nécessite une bonne connexion Internet, surtout si vous l'ouvrez d'abord depuis votre téléphone. Si vous vous détendez dans la nature loin de la ville, il est difficile d'obtenir une connexion stable. Par conséquent, une option de surveillance de la console a été choisie.

Atop et le lecteur de journaux atop atopsar m'ont beaucoup aidé pour la surveillance de la console. Ils ont déjà été mentionnés sur habr, le sommet a même été démonté , mais presque rien n'a été dit sur atopsar.

L'installation


Installation très simple, seulement trois équipes.

#Centos

yum install atop 

# Debian / Ubuntu

 apt-get install atop 


Ensuite, vous pouvez configurer vous-même l'opération de surveillance 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" #      

Ajouter à l'exécution automatique
# Debian / Ubuntu / Centos

 systemctl enable atop 

Exécuter au sommet en tant que démon
# Debian / Ubuntu / Centos

 systemctl start atop 

Pour les paresseux réunis en une seule équipe
#Centos

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

# Debian / Ubuntu

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

Atopsar


Avec atop, atopsar est également installé, qui est un analyseur de console pratique des journaux binaires exécutés par le démon atop. Bien sûr, vous pouvez lire les journaux sur lui-même, mais ce n'est pas si pratique si vous souhaitez capturer un grand intervalle de temps.

Un petit programme éducatif sur le travail d'atopsar.

Quand atopsar démarre sans clés, il ouvre le journal pour aujourd'hui et affiche la charge sur chaque noyau individuellement et la chaîne idl pour tous les noyaux.

Les clés que j'utilise sont:

-A = imprimer toutes les informations du journal
-c = afficher des informations sur la charge sur les cœurs de processeur, la clé par défaut
-m = RAM et charge d'échange
-d = activité du disque
-O = 3 premiers processus de charge CPU
-G = 3 premiers processus de chargement de RAM
-D = 3 premiers processus de chargement de disque
-N = 3 premiers processus de charge réseau
-r = spécifiez le chemin d'accès au journal que vous souhaitez lire, si vous avez besoin de voir la charge des derniers jours
-b = temps pour démarrer la sortie
-e = temps pour terminer la sortie
-M = crée une colonne supplémentaire à la fin, dans laquelle la criticité de la ligne est marquée (+ il y a une charge, * - charge critique)

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

Notifications


Il y a donc une surveillance de la charge, mais elle ne permet toujours pas de trouver et de résoudre rapidement les problèmes. Nous avons besoin de notifications sur le problème.

Je suis le seul à suivre les serveurs, je dois donc indiquer où je peux toujours le voir et au moins en quelque sorte y réagir.

Au début, il y avait des SMS - rapides, fiables et gratuits. Mais les opérateurs mobiles ont ensuite dissimulé une distribution de SMS gratuite via leurs passerelles.
Mail - pendant longtemps, il peut y avoir des problèmes de livraison.
Messagers - doivent être mis sur le téléphone, vous devez créer des bots.

À la suite de la recherche, le messager Telegram a été sélectionné pour sa simplicité et son application pratique sur le téléphone et le bureau.

Créé son bot en utilisant botfather .
Après avoir mis plusieurs scripts sur le serveur qui suivent la charge sur le serveur (IDL, smartct, etc.), la présence d'erreurs comme "oom killer", d'erreurs lors de la création d'une sauvegarde et d'autres opérations qui doivent être contrôlées.

Les scripts sont assez simples écrits en bash, par exemple, pour vérifier LA et notifier que Load Averadge a dépassé le nombre de cœurs sur le serveur.

 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 

La simplicité de la syntaxe donne de nombreux cas d'utilisation (et quiconque connaît au moins un petit langage de programmation peut écrire / ajouter).

La seule mise en garde - si le serveur est situé en Russie (et que vous n'avez pas IPv6 sur le serveur), vous devez utiliser un proxy. Pour ce faire, au début du script, vous devez enregistrer la chaîne de connexion au proxy:

 export https_proxy=http://:@IP.: 

Ce n'est pas la fin


Vous marchez calmement à travers les montagnes avec un sac à dos derrière vous, faites une pause dans la civilisation, puis le téléphone, interceptant accidentellement la connexion, lance une notification concernant un problème survenu sur votre serveur. Que faire Une humeur sereine a été emportée par le vent. Appeler ma femme et lui dicter des commandes? Haha

Il était urgent de trouver un moyen de résoudre les problèmes rapidement et sans la disponibilité d'un bon Internet. Ici, j'ai de nouveau été sauvé par le messager (# telegrammivi). J'ai appris à mon robot à communiquer uniquement avec moi, ignorant tout le monde. Maintenant, avec la notification du problème, j'obtiens un peu plus de données, selon lesquelles je comprends qui est la source du problème, et je peux essayer de le résoudre à distance. Il suffit juste d'écrire un message au bot, de lancer le téléphone plus haut pour que ce message disparaisse, et le tour est joué - le bot est allé faire votre travail. Ainsi, je peux, par exemple, tuer un processus indésirable, redémarrer le démon, bloquer l'IP, etc.

Ici, j'ai également transféré les futures demandes nécessaires des clients, par exemple, la réinitialisation urgente des mots de passe aux utilisateurs (parce que "Ahhh, nous ne pouvons pas accéder au serveur, nous en perdons des millions!"), Rechercher un utilisateur qui a accès au dossier souhaité, activer et désactiver le site, etc. . Bien sûr, je modifie constamment la fonctionnalité du bot, car l'imagination des clients apparaît parfois inattendue et non fournie par mes demandes. Mais les fondamentaux sont satisfaits.

Il existe également une version pour VK, mais elle n'a en quelque sorte pas pris racine.

Maintenant, je voyage calmement et explore ce monde, sans avoir peur que quelque chose se brise là-bas, et je ne pourrai pas le découvrir ou le réparer.

Source: https://habr.com/ru/post/fr453430/


All Articles