Sonde Nagios [Résolu][Shell/Batch/Python] - Shell/Batch - Programmation
Marsh Posté le 20-12-2018 à 14:40:07
J'ai viré la version Python vu que j'y comprends pas grand chose et le thread sera plus lisible
Edit: J'ai finis par faire ce que je voulais, je vous mets le script ci-dessous
Code :
|
Marsh Posté le 18-12-2018 à 21:09:19
Bonjour à tous, je bloque sur la création d'une sonde Nagios, je vous explique vite fait le contexte :
Je suis en alternance, et mon tuteur m'a demandé de créer une sonde Nagios qui vérifie si les paquets installé sur une machine dispose d'une version dans les dépôts, si oui alors tout est ok, sinon je demande au Nagios de m'afficher un Warning, si le paquet 'apt-show-versions' que j'utilise dans mon script n'est pas installé alors je remonte un CRITICAL au Nagios, enfin je dois mettre en place une whitelist de paquets à ignorer par machine (ou groupe de machines).
J'avais le choix entre Python et le Shell et j'ai choisis le second, mais si vous avez une idée en Python n'hésitez pas
Donc maintenant le contexte mis en place, je vous explique ou je bloque. La première partie normalement devrait être bonne mais je vois absolument pas comment intégrer une whitelist par machine dans mon script
Voilà mon script pour l'instant :
Merci d'avance
Edit: J'ai pas préciser mais si je dois passer le script en Python ce sera Python 3
Edit 2: Ok a tête reposé et grâce à l'aide d'un ami je sais comment intégrer ma Whitelist mais je bloque sur la mise en œuvre, je vous mets ci dessous la version avec les commentaires aux endroits où je bloque.
Pour moi il faudrait créer un tableau qui récupère uniquement le nom du paquet sur la sortie standard de apt-show-versions (donc autant d'éléments dans mon tableau que de ligne sur la sortie) et vérifier si le paquet présent dans la whitelist et présent dans le tableau apt-show-versions. Si oui alors enlever l’occurrence présente dans le tableau apt-show-versions et à la fin du traitement si le tableau apt-show-versions est vide alors Ok sinon Warning avec en sortie un echo des éléments présent dans le tableau apt-show-versions. Éventuellement on peut remonter un Warning si certains paquets whitelisté ne sont pas présent dans les dépôts ou installés.
Si je dois listé mes problèmes :
-
Comment récupérer uniquement le premier champs ET la première ligne de ma sortie standard : apt-show-versions | grep 'No available version in archive' | cut -d: -f1 // Ne récupère que le premier champs mais de toute les lignes
Edit: Apparemment awk est parfait pour ce genre de problème, mais j'ai pas l'habitude de m'en servir du coup je vais me renseigner dessus voir si de base il est disponible sur toute nos machines et si oui m'en servir pour formater ma sortie comme je le souhaite.
Edit2: apt-show-versions | grep 'No available version in archive' | cut -d: -f1 | head -n 1 // Récupère le premier champs ET la première ligne. Du coup je pense ne pas avoir besoin d'awk mais cela reste a voir, si vous avez une version avec awk je suis preneur, pour voir comment cela fonctionne.
- Comment insérer la sortie de la commande au dessus dans mon tableau : Je vais avoir besoin d'une boucle for pour mettre chaque ligne de ma sortie dans mon tableau, mais comment ?
La deuxième version :
Message édité par Ghrew le 03-01-2019 à 15:55:58