Monitoring des CPU de plusieurs serveurs Linux dans un seul et même shell : initiation à l'administration serveur sous SALT

Si vous suivez ce blog, vous connaissez ma passion pour le monitoring, que ce soit sous Windows, Linux ou Mac.

J’adore avoir un bureau qui ressemble à un centre de contrôle spatial avec 4 écrans qui affichent des graphiques et htop à gogo ! ;-)

Seulement voilà, lorsque l’on est en voyage, difficile de se balader avec suffisamment d’écran que pour pouvoir afficher l’état des CPU de chaque serveur.

Si le monitoring réseau de tous les serveurs peut fort bien se centraliser dans une seule console, c’est nettement plus compliqué d’avoir un visuel sur le consommation CPU de tous les serveurs.

Nous allons donc aujourd’hui mettre en place un système d’alerte visuelle qui va nous informer des montées en charge anormale d’un parc serveurs.

Le but est à la fois pratique (car c’est utile quand même [^_*]), mais aussi ludique et éducatif, puisque l’on va un peu apprendre à coder en shell bash Linux et à installer Salt, qui permet la gestion d’un parc via une console centrale.



Première étape le bash de monitoring du CPU


Bon, d’abord je vous mets en garde : je ne suis pas un Dieu du code bash Linux ni de l'administration réseau/système.

Que les puristes me pardonnent, je suis un humble geek qui bidouille quand il a besoin et pour se détendre, mais sans plus.

L’idée ici est donc de recevoir une alerte visuelle en cas de vraie montée anormale.

Pas besoin de visualiser une alerte à chaque fois que le serveur chauffe un peu.

L’idée est que si on a une montée réelle pendant +/- 2 minutes, vous voyez apparaitre une info, qui vous donnera :
  • Le nom du serveur
  • Les 3 processus qui sont la source de cette consommation anormale

Voici donc le script :

#!/bin/bash
#cpu_moni.sh
# Auteur: Brice Cornet http://www.ihaveto.be
#Visualiser les montées en charge d'un CPU via des alertes

#Initiatisation de la limite du CPU

cpumax=80

#Initialisation du compteur de débordement du CPU
cpt=0

#Initialisation du compteur limite de débordement du CPU
#Car cela ne sert à rien d'alerter à chaque montée encharge
: on alerte juste si c'est répétitif
limite=5

#On boucle en continu
while true
   do
    #Tant que le CPU n'a pas été testé plafonnant à la limite CPU pendant +/- 2 minutes
    while test $cpt != $limite;
        do   
            #Pause pour ne pas fatiguer le CPU ;-)           
            sleep 25
            #Si limite CPU atteinte on incrémente le compteur
            if ! ps -e -o pcpu | awk '{c+=$1} END {if(c>$cpumax) exit 1;}'; then
             cpt=$((cpt+1))   
            fi
            #Mais on vérifie ensuite que ce n'était pas une montée temporaire
            sleep 5
            if ! ps -e -o pcpu | awk '{c+=$1} END {if(c<$cpumax) exit 1;}'; then
            #Si montée temporaire on remet le compteur de limite à 0
             cpt=0   
            fi
        done

       #Si alerte, on récupère le nom du serveur
           srv=$(uname -n)
      
       #Et on affiche le message avec les infos
       echo
       echo ---------- CPU alert on server [ $srv ] ------------------------------
       echo
       date
       echo  
       ps aux | sort -k 3,3 | tail -n 3
      
           #Enfin, on remet le compteur à zéro
       cpt=0
   
   done

Salt : la console de gestion centralisée des serveurs Linux / Unix


Salt est composé de deux éléments :
  • Salt-master : qui est le serveur centrale qui pilote les serveurs escalves
  • Salt-minion : les esclaves qui sont tout migons #lol #jAiMangéUnClown

Donc côté console centrale nous installons via :
sudo apt install salt-master

et côté esclave
sudo  apt install salt-minion

Ensuite, nous allons configurer le minion pour lui indiquer qui est son maître.

Le fichier de configuration est bien entendu : /etc/salt/minion
master : Hostname_du_Master
id : Hostname_du_Minion


Il est à noter que vous pouvez définir plusieur Master, ce qui pratique pour pouvoir administrer depuis son laptop :
master :
-    Hostname_premier_Master
-    Hostname_deuxième


Ensuite : roulez jeunesse côté Master via
/etc/init.d/salt-master start

Et côté Minion via:
/etc/init.d/salt-minion start

Nous avons donc ici un Master qui entend des Minion l’appeler.

Pour visualiser cela (et les autoriser à se connecter), nous lançons :
sudo salt-key –L

Et bing : on voit la liste des Minion en attente :-)

Pour accepter ces mignons Minions :
sudo salt-key  –A

Voilà ! C’est fini !

Bon, on va quand même tester si ça marche via la commande:
salt ‘*’ test.ping

et devant vos yeux remplis de joie, vous verrez chaque Minion répondre True.

Utiliser Salt pour voir les résultats de notre script sur tous les Minion

Simple comme bonjour, à condition d’avoir placé notre script sur tous les Minion :
salt '*' cmd.run 'sh /tmp/cpu_moni.sh'

Bon, si on est malin, on va d’ailleurs utiliser Salt pour déployer cpu_moni.sh sur tous les mignons. Puisqu’il faut être malin, j’avoue que j’ai un peu galéré ;-)

La première étape est de distribuer le script que nous avions créé sur tous les Minion.

Il faut donc d’abord éditer le fichier de configuration du Master pour définir un dossier de partage. C’est dans ce dossier que nous placerons le script à transmettre aux Minion.

Donc, éditer : /etc/salt/master

file_roots :
base :
-    home/salt/share2minion


Ensuit placez le script cpu_moni.sh, puis déployez le sur tous les Minions :

Pour ce faire on utilise :

cat copy_cpumoni.sls
/tmp/cpu_moni.sh :
file :
-    managed
-    source : salt://cpu_moni.sh

Conclusion

Vous avez vu les bases : à vous de jouer.

Pour ce faire, cfr la doc officielle de Salt sur http://docs.saltstack.com/topics/installation/debian.html

Bonne bidouille à tous et toutes ! 

Messages les plus consultés

Dépannage Informatique

Dépannage Informatique
Dépannage Informatique

Libellés

windows Explication Coups de coeur actu Astuces - trucs et bidules chrome securite photos optimisations Assistance informatique à domicile Tarifs informatique réparation de votre ordinateur chez vous Carte Graphique Logiciel sécurité astuces Tutorial firefox Boitier Périphérique OS Windows OS Mac Tutoriels Windows ressources retouche mobile reseaux videos Dépannage informatique à domicile bureautiques sauvegarde Actualité Alimentation Pré-histoire ICT Gimp DigiScrap OS Linux Windows 8 tutoriel Aircooling Gimp création Monitoring server Windows 7 Word astuce Carte Mère Pilotes-drivers-PC captures design divers langage Html navigateurs pdf Acer Aspire Android Réparer clé usb USB 2 Unix Linux hardware informations logiciel loisirs sciences Cours C Geek Vintage HP Pavilion Internet SSD microsoft Gimp retouche image Lan Management Stockage Watercooling XnView conversion définition explication video google reseaux sociaux Configurations Complètes Curseurs souris Imprimer Samsung Notebook NP USB bootable Usb 3 WinXP Windows Seven Wordpress XPI iPhone icones résolution Développement Fujitsu Amilo Linux Logiciel USB Objets connectés Optimiser Probleme USB Processeur RAM Tutoriels iPhone/iPad/iPod bureautique clé usb exercice windows feature internet java mise à jour optimiser Windows 7 recadrer resaux et material templates vie privée Administration Apple Asus Eeepad Asus G Asus X Bidouille Défragmentation Dépannage Electronique Facebook Gadget Windows 7 Gimp ressources IOS (iPhone / Ipad) JPG LaPoste Licence Windows MSE Malwarebytes Migration Optimisation Packard Bell Easynote Photoshop Product key Récupérer fichiers Réparer Sécurity Theme Windows 7 Thunderbird Toshiba Satellite Tutoriels Divers Tutoriels Photoshop Tutoriels Spécial Windows 8 Ubuntu Windev Windows Update Windows XP Zend affichage anti-virus antivirus clavier et souris comment enlever les yeux rouges framework games gestion des images installation le materiel informatique linux mode sans échec musiques métadonnée nettoyer ordinateur pixel poids smartphone solution informatique taille telechargement tutorial téléphone virus 0x80244019 11x20 14 juillet 2015 16/9ème 7z 80070490 8E5E03FA 8E5E03FB ABC de la sécurité Accélérer le démarrage Acer Aspire One Acer Extensa Acer Iconia Alarme Alt key status Anonymat Anti Yeux rouges Arduino Astuces Jeux iPhone/iPad/iPod Asus Memo Pad Asus Transformer Book Asus Transformer Pad Asus VivoBook Authentification Automatisation Autorisation d'accès BF3 Batterie PC BattleField 2 Bioshock BranchCache C CS6 Caps Lock status Ccleaner Cheval de Trois Classic Shell CookieViz Ctrl key status Cube DOS DPI Dossier partagé Démarrage Ecran Bleu Windows 7 Ecran Bleu mort Excel Explorateur Windows Fin Windows XP Fond ecran Fujitsu Lifebook Gateway Gimp Gimp installation Gimp suggestions Google Hard Drive activité Hardware Horloges Windows 7 IBM Lenovo 3000 IBM Thinkpad ISO Windows 8 ISO Windows 8.1 Internet Explorer Internet Explorer 8 Jeu Jeux Jeux-video Live USB Livres Lubuntu Ma Musique Mac Menu Mes Documents Mes Images Mes Vidéos Microsoft Microsoft Office Microsoft Security Essentials Num Lock status OEM PC grande marque Pare-feu Partage SMB Patrice A. BONNEFOY PicPick Polaroid Probleme mise a jour ProductKey Publicité Quota RAW Recovery Ressource partagée Restauration Réinitialiser Mot de Passe Windows 7 Rôles et fonctionnalités Samsung Série 3 Scroll Lock status SevenZip Shift key status Site Web Spyboot TIF Taux de panne Taux de retour Toshiba Qosmio TrayStatus Trojan Tutoriels Office USB-RS232 UTC Virtualisation WinTools Windows 10 Windows 8.1 Windows Defender Windows Embedded Industry Windows Embedded POSReady Windows Server 2003 Windows Server 2015 Windows Update impossible Windows XP SP3 Windows key status Windows n'est pas authentique WindowsUpdateAgent WindowsUpdateAgent30-x86.exe WpKey XP jusqu'au 9 avril 2019 Xubuntu activation activation Windows activer Windows ads adware android arrêt des mise à jour de Windows XP assemblage PC barre des charmes base de donnée bleu de Windows 7 blog booster bouton démarrer capture écran choix distribution Linux classement chronologique clavier clé produit code malicieux commande Exécuter comment réinitialiser mot de passe compatibilité des applications compte local cookies cookies Chrome cookies Firefox cookies Internet Explorer cookies Opera cookies Safari cours Vb crack date de prise de vue disques durs drive-by dual-boot décalage heure défragmentation Windows 7 défragmentation du disque démarrer en mode normal déplacer déplacer Ma Musique déplacer Mes Documents déplacer Mes Images déplacer Mes Vidéos exif exploit facebook faille de sécurité fiabilité des composants format argentique format d'image format numérique grandes marques hacker heure GMT heure système hi-tech humour iPod infographie insolite interface graphique animée intranet joke joomla lancer programme au démarrage langages licence OEM logiciels malveillants mac maintenance malware meilleurs composants informatiques mises à jour mode détails mode normal mode sans echec mode sans echec windows 7 moniteur montage PC mort Windows XP msconfig navigateur nettoyage news optimiser son pc panoramique partitionner pas de son phishing php piratage prolonger mises à jour promo raccourcis rapport recadrer par lot redimensionner restaurant riskwares rootkit récupérer clé produit récupérer product key réparation windows 7 réparer réparer windows 7 sans le formater sauvegarde Windows 7 sauvegarde des données sauvegarder screenshot site web MS spam speeddial spyware supprimer cookies toujours en mode sans échec ubunto un disque dur utiliser utilitaires vbs vignettes windows7 économiseur d'écran écran