<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Perl on Zwindler's Reflection</title><link>https://blog.zwindler.fr/tags/perl/</link><description>Recent content in Perl on Zwindler's Reflection</description><generator>Hugo -- gohugo.io</generator><language>fr-fr</language><copyright>Licensed under CC BY-SA 4.0</copyright><lastBuildDate>Tue, 18 Apr 2017 11:35:31 +0000</lastBuildDate><atom:link href="https://blog.zwindler.fr/tags/perl/index.xml" rel="self" type="application/rss+xml"/><item><title>NaviSecCLI pour piloter ses baies EMC² VNX depuis Linux</title><link>https://blog.zwindler.fr/2017/04/18/naviseccli-pour-piloter-ses-baies-emc-vnx-depuis-linux/</link><pubDate>Tue, 18 Apr 2017 11:35:31 +0000</pubDate><guid>https://blog.zwindler.fr/2017/04/18/naviseccli-pour-piloter-ses-baies-emc-vnx-depuis-linux/</guid><description>&lt;img src="https://blog.zwindler.fr/2017/04/vnx5300-2.webp" alt="Featured image of post NaviSecCLI pour piloter ses baies EMC² VNX depuis Linux" /&gt;&lt;h2 id="naviseccli--à-quoi-bon-snapshoter-nos-luns-si-on-ne-peut-pas-le-scripter-"&gt;NaviSecCLI : à quoi bon snapshoter nos LUNs si on ne peut pas le scripter ?
&lt;/h2&gt;&lt;p&gt;Lorsque j’ai intégré mes premières baies EMC² VNX (lien mort, pas dispo sur Internet Archive) 5300 en 2012, on m’a présenté les avantages de la baies (et notamment la possibilité de réaliser des clones et des snapshots comme toutes les autres baies) , la première chose que j’ai demandé c’est « Oui mais est ce qu’on peut le scripter ». Et heureusement la réponse a été « Oui avec NaviCLI » (ou la version « sécurisée » NaviSecCLI).&lt;/p&gt;
&lt;p&gt;Note : Vous connaissez peut être NaviCLI (la CLI Navisphere) disponible sur les CLARiiON, sachez qu’elle a été remplacée par NaviSecCLI. La version non sécurisée ne fonctionnera pas sur les VNX mais rassurez vous, les commandes sont identiques !&lt;/p&gt;
&lt;p&gt;Quelques exemples de ce que j’avais en tête et que nous avons mis en production assez rapidement :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Créer un script permettant de disposer d’une préproduction ISO-prod en terme de données, rafraichie toutes les semaines tout en limitant l’interruption pour la production ET la préproduction. Ce script par une brève coupure de la base de données de production pendant une fenêtre de maintenance, créé un snapshot de baie et monte la préproduction dessus&lt;/li&gt;
&lt;li&gt;Créer un script Nagios pour vérifier qu’il reste des RLP (Reserved LUN Pool) pour que les snapshots de la préproduction ne se bloquent pas en cas d’écriture intensive côté production (ou préproduction)&lt;/li&gt;
&lt;li&gt;&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2017/04/vnx5300.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Le but de cette procédure est de lister les étapes permettant d’installer la NaviSecCLI sur un serveur Redhat Entreprise Linux.&lt;/p&gt;
&lt;h2 id="installation"&gt;Installation
&lt;/h2&gt;&lt;p&gt;Pour une installation de la CLI sous Redhat, EMC² propose un RPM (c’est sympa de leur part). Enfin bon, encore faut il le trouver ! EMC² a vraiment du travail à faire pour simplifier la recherche de fichiers sur leur site&amp;hellip; Je ne me risquerais pas à vous fournir un lien, j’ai peur qu’il ne soit pas valide longtemps. Sachez qu’il faut trouver un fichier du type « NaviCLI-Linux-64-x86-xxx.rpm ».&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;yum install NaviCLI-Linux-64-x86-en_US-7.32.0.5.54-1.x86_64.rpm #version compatible sur les RHEL 5
yum install NaviCLI-Linux-64-x86-en_US-7.33.3.0.72-1.x86_64.rpm #version nécessaire pour les RHEL 6
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Normalement, le RPM est assez basique et il y a peu de chance que l’opération échoue. Une fois installé, il faut ensuite sélectionner le niveau de sécurité que l’on souhaite appliquer sur le serveur en question. Pour être parfaitement honete, je ne suis pas complètement certain de comprendre les différence entre les deux niveaux proposés (moyen ou élevé). J’imagine qu’il s’agit probablement de paramètres disponibles pour assurer de la rétrocompatibilité avec des matériels plus anciens.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/opt/Navisphere/bin/setlevel_cli.sh
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Il faut ensuite rajouter des variables d’environnement dans le fichier .profile de &lt;strong&gt;l’utilisateur que l’on souhaite utiliser&lt;/strong&gt; pour lancer les scripts. Voici les lignes à intégrer dans un fichier (type .bashrc par exemple si l’utilisateur utilise bash comme interpréteur de commandes)&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;PATH=/usr/sbin:$PATH:/sbin:/home/root:/opt/Navisphere/bin
SHLIB_PATH=$SHLIB_PATH:/opt/Navisphere/lib/seccli
NAVI_SECCLI_CONF=$NAVI_SECCLI_CONF:/opt/Navisphere/seccli
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Enfin, toujours sur le même utilisateur, il faut initialiser un fichier de sécurité (certificat) qui permettra de ne pas spécifier en clair les mots de passes des baies (dans un script, par exemple) à chaque utilisation&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;naviseccli -user admin_de_la_baie -password passwordpassecure -scope 0 -AddUserSecurity
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pour tester si NavisecCLI peut adresser la baie sans mettre le user/password. Le contrôleur interrogé renverra des informations :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;naviseccli –h 10.1.1.10 getagent
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="aller-plus-loin"&gt;Aller plus loin
&lt;/h2&gt;&lt;p&gt;Et bien maintenant il ne vous reste plus qu’à écrire vos scripts ! L’ensemble des commandes disponibles sont listées dans ce guide d’utilisation disponible &lt;a class="link" href="https://web.archive.org/web/20150724000538/http://www.emc.com/collateral/support-training/support/069001038-navisphere-cli.pdf" target="_blank" rel="noopener"
&gt;sur le site d’EMC (lien mort, j&amp;rsquo;utilise Internet Archive)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si vous voulez un exemple de script utilisant la NaviSecCLI pour surveiller le nombre de RLP encore disponible et compatible avec Nagios, je vous invite &lt;a class="link" href="https://github.com/zwindler/check_emc_rlp" target="_blank" rel="noopener"
&gt;sur mon Github check_emc_rlp.pl&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Utiliser le gestionnaire d’extension Perl CPAN derrière un proxy</title><link>https://blog.zwindler.fr/2017/03/29/utiliser-perl-cpan-derriere-proxy/</link><pubDate>Wed, 29 Mar 2017 12:00:26 +0000</pubDate><guid>https://blog.zwindler.fr/2017/03/29/utiliser-perl-cpan-derriere-proxy/</guid><description>&lt;img src="https://blog.zwindler.fr/2017/03/cpan.webp" alt="Featured image of post Utiliser le gestionnaire d’extension Perl CPAN derrière un proxy" /&gt;&lt;h2 id="aaaah-cpan-un-vrai-bonheur"&gt;Aaaah, CPAN, un vrai bonheur
&lt;/h2&gt;&lt;p&gt;Ceux qui me suivent savent que, bien qu’il m’arrive d’utiliser Perl de temps en temps (et même de coder un peu de Perl, ce qui m’a fait acheter Learning Perl et Programing Perl de chez O’Reilly), je passe surtout la plupart de mon temps à pester contre le CPAN (&lt;a class="link" href="https://blog.zwindler.fr/2010/09/08/installer-3-plugins-nagios-dans-eon-1-2-coupe-dinternet-level-2/" &gt;voir cet article où je détaille entièrement comment installer un simple plugin Nagios sans accès à Internet&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/11/cpan.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Car CPAN et les modules/dépendances Perl, c’est bien, mais c’est quand même mieux quand on a accès à Internet !&lt;/p&gt;
&lt;h2 id="pas-dinternet-dans-mon-dc-ou-presque"&gt;Pas d’Internet dans mon DC (ou presque)
&lt;/h2&gt;&lt;p&gt;Il n’est pas rare que je n’ai pas accès à Internet lorsque j’installe un serveur, et c’est généralement dans ce genre de cas qu’on essaye de trouver des bidouilles.&lt;/p&gt;
&lt;p&gt;Par exemple, dans les DC qui n’ont accès qu’à un proxy avec authentification NTLMv2 (Microsoft), je n’hésite pas à installer &lt;a class="link" href="http://cntlm.sourceforge.net/" target="_blank" rel="noopener"
&gt;cntlm&lt;/a&gt; (ou avant ntlmaps). C’est crade, mais ça me permet d’avoir mon proxy pour Yum, wget, etc&amp;hellip; qui ne seraient pas (ou mal) gérés autrement. Et ça m’a sauvé bien des fois !&lt;/p&gt;
&lt;p&gt;Dans le cas qui nous concerne dans cet article sur CPAN, j’ai découvert avec stupeur qu’il existe un « shell » CPAN, auquel on peut tout simplement ajouter une configuration particulière, notamment pour lui donner un proxy !&lt;/p&gt;
&lt;p&gt;Voilà de quoi régler une partie de mes problèmes !&lt;/p&gt;
&lt;p&gt;Pour activer le shell CPAN, deux méthodes (similaires) :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;perl -MCPAN -e shell
#ou
cpan
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="configurer-le-proxy-pour-cpan"&gt;Configurer le proxy pour CPAN
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;o conf init /proxy/
If you&amp;#39;re accessing the net via proxies, you can specify them in the
CPAN configuration or via environment variables. The variable in
the $CPAN::Config takes precedence.
&amp;lt;ftp_proxy&amp;gt;
Your ftp_proxy? [] @IP:&amp;lt;port&amp;gt;
&amp;lt;http_proxy&amp;gt;
Your http_proxy? [] @IP:&amp;lt;port&amp;gt;
&amp;lt;no_proxy&amp;gt;
Your no_proxy? [] @IP:&amp;lt;port&amp;gt;
Please remember to call &amp;#39;o conf commit&amp;#39; to make the config permanent!
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Et comme nous sommes disciplinés, nous n’oublierons pas d’enregistrer les modifications avec la commande indiquée plus haut&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;o conf commit
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="désactiver-le-proxy"&gt;Désactiver le proxy
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;o conf no_proxy 1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Et on sauvegarde !&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;o conf commit
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="bonus-track--forcer-le-proxy-http-plutôt-que-ftp"&gt;Bonus track : forcer le proxy HTTP plutôt que FTP
&lt;/h3&gt;&lt;p&gt;Je me suis retrouvé avec CPAN qui essayait à un moment donner de passer par FTP pour télécharger les packages alors que je n’avais qu’un proxy HTTP. Et pour ce problème particulier, je suis tombé sur cette page sur serverrfault qui donne quelques clés pour s’en sortir :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Simplest way of having it not use FTP is to shove HTTP URLs on the front of your urllist - or replace it completely like sebastionopilla said.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pour afficher les URLs utilisées&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;o conf urllist
urllist
0 [http://example.org/]
1 [http://example.org/]
2 [http://example.org/CPAN/]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Exclure une URL de la configuration (un miroir par exemple)&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;o conf urllist unshift http://example.org/here/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pour tout vider&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;o conf urllist -
o conf urllist shift
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Source : &lt;a class="link" href="http://serverfault.com/questions/130690/force-cpan-to-download-via-http/292696" target="_blank" rel="noopener"
&gt;serverfault.com/questions/130690/force-cpan-to-download-via-http/292696&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Installer 3 plugins Nagios dans EON 1.2, coupé d’Internet, level 3</title><link>https://blog.zwindler.fr/2010/09/15/installer-3-plugins-nagios-dans-eon-1-2-coupe-dinternet-level-3/</link><pubDate>Wed, 15 Sep 2010 08:47:41 +0000</pubDate><guid>https://blog.zwindler.fr/2010/09/15/installer-3-plugins-nagios-dans-eon-1-2-coupe-dinternet-level-3/</guid><description>&lt;img src="https://blog.zwindler.fr/2010/09/icone_EON.webp" alt="Featured image of post Installer 3 plugins Nagios dans EON 1.2, coupé d’Internet, level 3" /&gt;&lt;p&gt;Pour le dernier plugin, &lt;a class="link" href="http://labs.consol.de/lang/en/nagios/check_mssql_health/" target="_blank" rel="noopener"
&gt;check_mssql_health&lt;/a&gt;, j’ai vraiment dû faire face à de gros ennuis. Ce script Perl, très bien fait une fois installé, permet de vérifier à peu près tout ce qu’on pourrait vouloir vérifier dans une base de donnée MS SQL. C’est vraiment très impressionnant, et assez bien documenté une fois qu’on est sur le site officiel, heureusement en anglais (certains sites ne référencent que la partie allemande de l’aide, ce qui peut s’avérer particulièrement inutile quand on ne connait pas plus d’Allemand que quelques paroles de Rammstein).&lt;/p&gt;
&lt;p&gt;Même si c’est probablement dû à mon cas particulier, j’ai souvent dû faire face à des documentations incomplètes pour l’installation des différents composants. J’ai passé un bon moment à tâtonner, chercher de la doc à droite à gauche, tester, râler&amp;hellip; C’est pourquoi un passage en revue de tous les aspects de la chaine me parait utile.&lt;/p&gt;
&lt;p&gt;D’abord, commençons par redire qu’il s’agit d’un script Perl. Pour fonctionner, celui-ci nécessite plusieurs choses. D’abord, il utilise un module Perl permettant de communiquer avec des bases de données. Mais ce module nécessite bien sûr d’un client de base de données, et enfin, ce client de base de données nécessite les bibliothèque qui vont bien pour s’installer.&lt;/p&gt;
&lt;p&gt;Voyons cela plus en détails&amp;hellip; Le &lt;strong&gt;plugin check_mssql_health&lt;/strong&gt; nécessite du module &lt;strong&gt;DBD::Sybase&lt;/strong&gt;, qui est en fait un module permettant de s’interfacer avec des base de données Sybase, en passant par l’intermédiaire d’un client fournit par Sybase. On pourrait se dire que c’est un choix curieux sachant qu’on veut communiquer avec une base MSSQL, mais en fait, le module permet également d’utiliser un autre client, &lt;strong&gt;FreeTDS&lt;/strong&gt; (qui est une réimplémentation ce précédent client), qui gère également les bases &lt;strong&gt;MSSQL 2000 ou supérieure&lt;/strong&gt; (le vCenter 2.5 utilise une base de données MS SQL Server 2005 Express).&lt;/p&gt;
&lt;p&gt;La première chose à faire est d’installer le client &lt;strong&gt;FreeTDS&lt;/strong&gt;. Pour ce faire, il faut d’abord ajouter les paquets suivant avec Yum :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# yum install unixODBC
# yum install unixODBC-devel
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Si vous vous en tenez à la documentation de &lt;strong&gt;FreeTDS&lt;/strong&gt;, vous ne lirez nulle part qu’il faut installer &lt;strong&gt;unixODBC-devel&lt;/strong&gt;, et si vous ne le faites pas, le script d’installation continuera inlassablement à vous indiquer que vous n’avez pas installé &lt;strong&gt;unixODBC&lt;/strong&gt; (alors que si!).&lt;/p&gt;
&lt;p&gt;Une fois que ceci est fait, il faut télécharger &lt;a class="link" href="http://www.freetds.org/software.html" target="_blank" rel="noopener"
&gt;les sources de freetds&lt;/a&gt;, car le DVD d’EyesOfNetwork qui nous sert de répository local ne contient pas le paquet pour l’installer. Pour fonctionner correctement, notre script Perl nécessitera au moins la version 6.2 de FreeTDS, sachant que je n’ai testé que la version que la 8.2. De préférence, choisir la version dite &lt;strong&gt;stable&lt;/strong&gt;.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# tar xvzf freetds-stable.tgz
#cd freetds-[version_stable]
# ./configure
# make
# make install
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Maintenant que FreeTDS est installé, il faut le configurer. Si on lit la documentation de check_mssql_health, il est indiqué que pour des raisons de sécurité, il vaut mieux passer le protocole de communication de FreeTDS de la version 4.2 (par défaut) à la version 8.0. Pour ma part, ce n’est pas un conseil, c’est une obligation. check_mssql_health n’a jamais fonctionné tant que je n’ai pas modifié de paramètre. Et ce n’est pas plus mal, quand on sait que cette version 4.2 du protocole envoie votre mot de passe en clair sur le réseau, lors des authentifications avec la base de données (O_o).&lt;/p&gt;
&lt;p&gt;Pour changer cette version de protocole, éditez le fichier &lt;strong&gt;/etc/freetds.conf&lt;/strong&gt; pour qu’il ressemble à ça :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[global]
#TDS protocol version
tds version = 8.0
[...]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Maintenant que nous disposons du client, que celui-ci est correctement configuré, il faut installer les dépendances Perl. Par rapport à la dernière fois, il ne m’en manquait que deux :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DBD::Sybase
&lt;ul&gt;
&lt;li&gt;DBI&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Par contre, avant de pouvoir installer &lt;strong&gt;DBD::Sybase&lt;/strong&gt;, il est nécessaire de le configurer (contrairement aux autres modules Perl installés jusqu’à présent). Dans les fichiers d’aide &lt;strong&gt;README&lt;/strong&gt; et &lt;strong&gt;README.freetds&lt;/strong&gt; contenus dans l’archive &lt;strong&gt;DBD::Sybase&lt;/strong&gt;, il est indiqué que le chemin vers FreeTDS doit être connu par le script &lt;strong&gt;Makefile.PL&lt;/strong&gt;. Cette valeur doit normalement être renseignée en enregistrant le chemin vers FreeTDS dans la variable d’environnement SYBASE.&lt;/p&gt;
&lt;p&gt;Pour des raisons qui me sont totalement inconnues, je n’ai jamais réussi à faire fonctionner ce script avec cette méthode. La variable n’était jamais prise en compte, et même si l’installation continuait, le module n’était pas fonctionnel, puisqu’il n’avait pas accès au client. Pour contourner ce problème, j’ai utilisé une solution radicale et pas très élégante. Dans &lt;strong&gt;Makefile.PL&lt;/strong&gt;, j’ai remplacé les lignes&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Sub configure{
my $sybase_dir = $ENV{SYBASE};
[...]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;par&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Sub configure{
my $sybase_dir = &amp;#39;[chemin_vers_freetds]&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Après cela, l’installation du module s’est déroulée sans encombres, et le script à pu être compilé :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# tar xvzf check_mssql_health_[version].tar.gz
# cd check_mssql_health_[version]
# ./configure --prefix&amp;#39;/srv/eyesofnetwork/nagios-3.0.6&amp;#39; --with-nagios-group=eyesofnetwork
# make
# make install
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Une fois encore, il est important de ne pas mettre de &lt;strong&gt;/&lt;/strong&gt; final dans le chemin indiqué dans la ligne &lt;strong&gt;./configure&lt;/strong&gt;. Une fois les commandes exécutées avec succès, le script est installé dans le dossier &lt;strong&gt;/srv/eyesofnetwork/nagios-3.0.6/libexec&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Ca y est ? Non&amp;hellip;&lt;/p&gt;
&lt;p&gt;Même si maintenant tout est correctement configuré et installé côté plugin, il est encore nécessaire de configurer votre base MSSQL pour qu’elle accepte les connexions. Je ne traiterai pas de l’aspect création d’un utilisateur avec des droits suffisant pour lire l’état de la base, je ne suis vraiment pas un expert, et j’imagine qu’on trouve de très bon tutos sur le net, expliquant bien chaque type de droit, et la manière de bien le faire. Vous pouvez soit chercher du côté de MS SQL Server Management Studio, soit effectuer les autorisations manuellement via le tuto du &lt;a class="link" href="http://labs.consol.de/lang/en/nagios/check_mssql_health/" target="_blank" rel="noopener"
&gt;site de mssql_health_check&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pour que la base accepte les connexions distantes de notre client FreeTDS, il faut d’abord s’assurer que le pare feu Windows laisse bien entrer les connexions &lt;strong&gt;TCP&lt;/strong&gt; sur le port &lt;strong&gt;1433&lt;/strong&gt;, et que le serveur les accepte, lui aussi.&lt;/p&gt;
&lt;p&gt;Pour se faire, il suffit d’utiliser l’utilitaire &lt;strong&gt;SQL Server Configuration Manager&lt;/strong&gt;, installé par défaut avec la base de données, puis d’aller dans &lt;strong&gt;Configuration du réseau SQL Server 2005/Protocole pour [nom_base_données]/TCP/IP&lt;/strong&gt;. Dans l’onglet &lt;strong&gt;Protocoles&lt;/strong&gt;, choisir &lt;strong&gt;Oui&lt;/strong&gt; pour la valeur &lt;strong&gt;Activer&lt;/strong&gt;. Le serveur doit ensuite être redémarré pour que les modifications soient bien prises en compte.&lt;/p&gt;
&lt;p&gt;Ouf&amp;hellip; Il ne reste plus qu’à lancer vos sondes depuis Nagios, maintenant!&lt;/p&gt;</description></item><item><title>Installer 3 plugins Nagios dans EON (Eyes of Network) 1.2, coupé d’Internet, level 2</title><link>https://blog.zwindler.fr/2010/09/08/installer-3-plugins-nagios-dans-eon-1-2-coupe-dinternet-level-2/</link><pubDate>Wed, 08 Sep 2010 12:16:33 +0000</pubDate><guid>https://blog.zwindler.fr/2010/09/08/installer-3-plugins-nagios-dans-eon-1-2-coupe-dinternet-level-2/</guid><description>&lt;img src="https://blog.zwindler.fr/2010/09/icone_EON.webp" alt="Featured image of post Installer 3 plugins Nagios dans EON (Eyes of Network) 1.2, coupé d’Internet, level 2" /&gt;&lt;p&gt;Maintenant que la première partie (check_esxi_wbem.py) s’est passée sans encombres, nous allons pouvoir passer à quelque chose d’un peu plus fun : &lt;a class="link" href="http://www.op5.com/support/documentation/how-to/400-monitoring-vmware-esx-3x-esxi-vsphere-4-and-vcenter-server" target="_blank" rel="noopener"
&gt;check_esx3&lt;/a&gt;. Je rappelle que cet article n’est utile que pour les gens qui se tirent vraiment une balle dans le pied, en utilisant pour des raisons divers un Eyes Of Network 1.2 (EON) et qui n’ont pas accès à Internet sur leur machine de supervision.&lt;/p&gt;
&lt;p&gt;Comme son nom l’indique, il s’agit d’un plugin Nagios pour superviser des produits VMware à partir de la version 3. Comme son nom ne l’indique pas, il s’agit d’un plugin en Perl. Joie et bonne humeur, CPAN.org nous voilà&amp;hellip;&lt;/p&gt;
&lt;p&gt;[Edit]Si vous avez une version de ce plugin antérieure à mai 2010, vous serez peut être heureux d’apprendre que la communauté à retravaillé ce script. Il semblerait que celui ci souffrait de redondances lors des requêtes. Après avoir jeté un œil aux remarques de la communauté, l’éditeur du script a effectué les modifications, et sur une machine peu performante, j’arrive à avoir des gains très significatifs entre les deux versions (2 secondes au lieu de 6 pour une sonde sur l’usage cpu/mémoire), ce qui la soulage beaucoup. Peut être que les gains ne seront pas aussi important pour des machines plus récentes, mais ça ne peut pas faire de mal de mettre ce plugin à jour&amp;hellip;[/Edit]&lt;/p&gt;
&lt;p&gt;Si vous êtes familier avec Perl, vous saurez que les scripts en Perl utilisent souvent des modules qui peuvent eux même dépendre d’autres modules, et ainsi de suite. Pour régler simplement ces problèmes de dépendance, il existe d’autres modules Perl qui permettent d’automatiser ce processus, en gérant récursivement les dépendances et en les téléchargeant sur Internet, un peu comme un gestionnaire de paquets. Seulement voilà, nous sommes offline, pas d’Internet sur notre serveur de supervision! Damnation&amp;hellip;&lt;/p&gt;
&lt;p&gt;Bon, commençons par le plus simple&amp;hellip; Il arrive que ces modules Perl nécessitent des paquets rpm pour fonctionner. Ici c’est le cas pour notre script, qui nécessite au moins les outils suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;gcc&lt;/li&gt;
&lt;li&gt;libxml2&lt;/li&gt;
&lt;li&gt;libxml2-devel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour éviter de devoir se payer l’installation des dépendances des rpms à la main, je vous invite à vous reporter sur « l’astuce » du dépôt local de RPM, disponible &lt;a class="link" href="https://blog.zwindler.fr/2015/04/11/tutoriel-migrer-facilement-son-blog-de-wordpress-com-vers-un-hebergement-mutualise-ovh/" &gt;ici&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ça, c’est fait. Passons maintenant aux modules Perl nécessaires qui ne sont pas préinstallés sur notre EON 1.2 :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nagios::Plugin
&lt;ul&gt;
&lt;li&gt;Class::Accessor&lt;/li&gt;
&lt;li&gt;Config::Tiny&lt;/li&gt;
&lt;li&gt;Math::Calc::Units&lt;/li&gt;
&lt;li&gt;Params::Validate
&lt;ul&gt;
&lt;li&gt;Module::Build
&lt;ul&gt;
&lt;li&gt;ExtUtils::CBuilder&lt;/li&gt;
&lt;li&gt;ExtUtils::Manifest&lt;/li&gt;
&lt;li&gt;ExtUtils::ParseXS&lt;/li&gt;
&lt;li&gt;TestHarness&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Attribute::Handlers&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;VIPerlToolkit
&lt;ul&gt;
&lt;li&gt;XML::LibXML
&lt;ul&gt;
&lt;li&gt;XML::SAX&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Class:MethodMaker&lt;/li&gt;
&lt;li&gt;SOAP::Lite
&lt;ul&gt;
&lt;li&gt;URI&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Wa-hou&amp;hellip; Sacrée liste&amp;hellip; Vous aurez remarqué que j’ai respecté une hiérarchie entre les modules. Ce sont les niveaux de dépendances. Ainsi, XML::LibXML nécessite XML::SAX pour pouvoir fonctionner, et XML::SAX doit donc être installé avant XML::LibXML.&lt;br&gt;
La plupart des modules Perl listés ci-dessus sont disponibles en téléchargement sur le site Internet CPAN.org, et le VI Perl Toolkit est disponible sur le site de téléchargement de VMware.&lt;/p&gt;
&lt;p&gt;Je n’ai pas trouvé de moyen d’installer ces modules d’une seule commande sans passer par Internet. On aurait pu imaginer un genre de mécanisme de repository local, comme pour l’astuce avec Yum, qui se chargerait de tout installer d’un coup, où au moins une partie. J’ai quand même du mal à y croire et si quelqu’un à la solution, je serai très content d’avoir votre retour là dessus.&lt;/p&gt;
&lt;p&gt;A la place, j’ai du installer un à un tous les modules en respectant l’ordre des dépendances. Comme si ça ne suffisait pas, la procédure pour installer un module Perl diffère selon le module d’installation que son développeur à choisit -_-.&lt;/p&gt;
&lt;p&gt;Si vous trouvez un fichier Makefile.PL dans l’archive téléchargée, c’est que le module utilise le module Perl Makefile pour faire les installation :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# tar xvzf [module_perl].tar.gz
# cd module_perl
# perl Makefile.PL
# make
# make test
# make install
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Mais si en revanche vous trouvez un fichier Build.PL, c’est que le module s’installe grâce au module Perl Module::Build (qui est d’ailleurs dans les listes des modules non présents de base dans EON)&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# tar xvzf [module_perl].tar.gz
# cd module_perl
# perl Build.PL
# ./Build
# ./Build install
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Deux possibilités : soit vous le savez, soit vous tâtonnez comme un idiot jusqu’à trouver les bonnes commandes. J’ai choisi la seconde solution, je vous le déconseille, donc&amp;hellip;&lt;/p&gt;
&lt;p&gt;Une fois tous les modules installés, il ne reste plus qu’à utiliser ./check_esx3 en temps qu’utilisateur &lt;strong&gt;nagios&lt;/strong&gt;. Plus de détails sur l’utilisation de ce script franchement génial sur &lt;a class="link" href="http://www.op5.com/support/documentation/how-to/400-monitoring-vmware-esx-3x-esxi-vsphere-4-and-vcenter-server" target="_blank" rel="noopener"
&gt;le site d’OP5&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="la-même-chose-avec-un-centos-5"&gt;La même chose avec un CentOS 5
&lt;/h2&gt;&lt;p&gt;Sur un CentOS classique (avec le DVD par défaut), la liste des dépendances manquantes sans Internet est malheureusement plus longue. Jugez par vous même&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Builder-0.05&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nagios-Plugin-0.36&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Math-Calc-Units-1.07&lt;/li&gt;
&lt;li&gt;Config-Tiny-2.14&lt;/li&gt;
&lt;li&gt;Params-Validate-1.06
&lt;ul&gt;
&lt;li&gt;Module-Build-0.4001
&lt;ul&gt;
&lt;li&gt;ExtUtils-ParseXS-3.15&lt;/li&gt;
&lt;li&gt;ExtUtils-MakeMaker-6.62&lt;/li&gt;
&lt;li&gt;ExtUtils-Manifest-1.60&lt;/li&gt;
&lt;li&gt;ExtUtils-CBuilder-0.280205
&lt;ul&gt;
&lt;li&gt;PathTools-3.33&lt;/li&gt;
&lt;li&gt;IPC-Cmd-0.78
&lt;ul&gt;
&lt;li&gt;Locale-Maketext-Simple-0.21&lt;/li&gt;
&lt;li&gt;Module-Load-Conditional-0.50
&lt;ul&gt;
&lt;li&gt;Module-Load-0.22&lt;/li&gt;
&lt;li&gt;Module-CoreList-2.68&lt;/li&gt;
&lt;li&gt;Params-Check-0.36
&lt;ul&gt;
&lt;li&gt;Perl-OSType-1.002
&lt;ul&gt;
&lt;li&gt;Test-Simple-0.98&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Test-Harness-3.25&lt;/li&gt;
&lt;li&gt;Module-Metadata-1.000009&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Class-Accessor-0.34&lt;/li&gt;
&lt;li&gt;Attribute-Handlers-0.93&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;SOAP-Lite-0.714&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;URI-1.60&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Class-MethodMaker-2.18&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;XML-LibXML-2.0002&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;XML-SAX-0.99
&lt;ul&gt;
&lt;li&gt;XML-SAX-Base-1.08&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Module-Implementation-0.06&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Try-Tiny-0.11&lt;/li&gt;
&lt;li&gt;Test-Fatal-0.010&lt;/li&gt;
&lt;li&gt;Test-Requires-0.06&lt;/li&gt;
&lt;li&gt;Module-Runtime-0.013&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour le fun, voici ma « procédure d’installation » hors ligne pour ce plugin (160 lignes, quand même !).&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;for i in `ls -1`; do tar xzf $i; done
/Builder-0.05
perl Makefile.PL
make
make install
cd ../ExtUtils-MakeMaker-6.62
perl Makefile.PL
make
make install
cd ../PathTools-3.33
perl Makefile.PL
make
make install
cd ../Test-Simple-0.98
perl Makefile.PL
make
make install
cd ../Perl-OSType-1.002
perl Makefile.PL
make
make install
cd ../Locale-Maketext-Simple-0.21
perl Makefile.PL
make
make install
cd ../Params-Check-0.36
perl Makefile.PL
make
make install
cd ../Module-Load-0.22
perl Makefile.PL
make
make install
cd ../Module-CoreList-2.68
perl Makefile.PL
make
make install
cd ../ExtUtils-Manifest-1.60
perl Makefile.PL
make
make install
cd ../Module-Load-Conditional-0.50
perl Makefile.PL
make
make install
cd ../IPC-Cmd-0.78
perl Makefile.PL
make
make install
cd ../ExtUtils-CBuilder-0.280205
perl Makefile.PL
make
make install
cd ../ExtUtils-ParseXS-3.15
perl Makefile.PL
make
make install
cd ../Attribute-Handlers-0.93
perl Makefile.PL
make
make install
cd ../Math-Calc-Units-1.07
perl Makefile.PL
make
make install
cd ../Config-Tiny-2.14
perl Makefile.PL
make
make install
cd ../Class-Accessor-0.34
perl Makefile.PL
make
make install
cd ../URI-1.60
perl Makefile.PL
make
make install
cd ../SOAP-Lite-0.714
perl Makefile.PL
make
make install
cd ../Class-MethodMaker-2.18
perl Makefile.PL
make
make install
cd ../XML-SAX-Base-1.08
perl Makefile.PL
make
make install
yum install libxml2 libxml2-devel
cd ../XML-LibXML-2.0002
perl Makefile.PL
make
make install
cd ../XML-NamespaceSupport-1.11
perl Makefile.PL
make
make install
#ou yum install perl-XML-NamespaceSupport.noarch
cd ../XML-SAX-0.99
perl Makefile.PL
make
make install
cd ../Test-Harness-3.25
perl Makefile.PL
make
make install
cd ../Module-Metadata-1.000009
perl Makefile.PL
make
make install
cd ../Try-Tiny-0.11
perl Makefile.PL
make
make install
cd ../Test-Fatal-0.010
perl Makefile.PL
make
make install
cd ../Test-Requires-0.06
perl Makefile.PL
make
make install
cd ../Nagios-Plugin-0.36
perl Makefile.PL
make
make install
cd ../Archive-Tar-2.02
perl Makefile.PL
make
make install
cd ../ExtUtils-Install-2.04
perl Makefile.PL
make
make install
cd ../Module-Build-0.4001
perl Makefile.PL
make
make install
cd ../Module-Runtime-0.013
perl Makefile.PL
./Build
./Build install
cd ../Module-Implementation-0.06
perl Makefile.PL
make
make install
cd ../Params-Validate-1.06
perl Build.PL
./Build
./Build install
yum install perl-Crypt-SSLeay.x86_64
cd ..
tar xzf VMware-vSphere-SDK-for-Perl-4.0.0-161974.x86_64.tar.gz
cd vmware-vsphere-cli-distrib/
perl Makefile.PL
make
make install
cd ..
#necessite aussi le module perl UUID (prérequis, pas optionnel) mais fonctionne quand même sans
tar xzf check_vmware_api-1aae4f6.tar.gz &amp;amp;&amp;amp; check_vmware_api-1aae4f6
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Recyclage de plugins Nagios pour nourrir Cacti</title><link>https://blog.zwindler.fr/2010/06/30/reutiliser-ses-plugins-nagios-pour-cacti/</link><pubDate>Wed, 30 Jun 2010 17:39:13 +0000</pubDate><guid>https://blog.zwindler.fr/2010/06/30/reutiliser-ses-plugins-nagios-pour-cacti/</guid><description>&lt;img src="https://blog.zwindler.fr/2010/06/Supervision-Metrologie.webp" alt="Featured image of post Recyclage de plugins Nagios pour nourrir Cacti" /&gt;&lt;p&gt;Aujourd’hui j’aimerais revenir sur ce que j’aifaits, et ça va parler de Nagios et de Cacti. Je plante le décor&amp;hellip;&lt;/p&gt;
&lt;p&gt;Je suis censé finir la mise en place du monitoring des réseaux que j’administre. L’an dernier, mon prédécesseur avait fait une grosse partie de l’aspect c**ant dans le monitoring, créer les templates des équipements et des services qui vont bien, puis rentrer une à une toutes les machines. Pour ce faire, il a utilisé une distribution appelée EyesOfNetwork. En gros, il s’agit d’un frontend pour Nagios (principalement) qui se compose d’une distrib CentOS modifiée, d’un Lamp, d’un Mysql, d’un Nagios et d’un Cacti, le tout enrobé dans une interface graphique (plus ou moins pratique). Pour de plus amples informations je vous conseille d’aller jeter un œil &lt;a class="link" href="http://www.eyesofnetwork.com/?lang=fr" target="_blank" rel="noopener"
&gt;ici&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;J’ai pas mal bossé sur les divers plugins qui étaient utilisés par la communauté pour monitorer VMWare, notamment les VM et les hosts. En voici deux que je conseille tout particulièrement, même si j’ai pas mal galéré pour installer la multitude de dépendances offline (et oui, je travaille coupé du monde) et que d’autres plugins sont probablement très bien aussi :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="http://www.op5.com/support/documentation/how-to/400-monitoring-vmware-esx-3x-esxi-vsphere-4-and-vcenter-server" target="_blank" rel="noopener"
&gt;check_esx3&lt;/a&gt; pour avoir accès à tout ce qui est CPU, RAM, Disques, &amp;hellip;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://web.archive.org/web/20131212160532/https://communities.vmware.com/docs/DOC-7170" target="_blank" rel="noopener"
&gt;check_esxi_wbem.py (lien mort, j&amp;rsquo;utilise Internet Archive)&lt;/a&gt; pour les checks hardware&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;J’en parlerai probablement un peu plus une autre fois&amp;hellip;&lt;/p&gt;
&lt;p&gt;Bon, mais une fois que j’ai intégré avec succès ces plugins à mon Nagios préféré, je me suis penché vers le Cacti d’EyesOfNetwork pour générer mes beaux graphiques. Une fois que j’ai réussi à comprendre l’interface graphique de Cacti (ça m’a pris un peu de temps, mais une fois qu’on est tombé &lt;a class="link" href="https://web.archive.org/web/20210117095431/https://docs.cacti.net/manual:087" target="_blank" rel="noopener"
&gt;sur cette page de la documentation officielle (lien mort, j&amp;rsquo;utilise Internet Archive)&lt;/a&gt;, et plus particulièrement sur la partie &amp;ldquo;data input methods&amp;rdquo;, rien ne peut plus vous arrêter, plus d’excuses), j’ai compris que j’allais devoir trouver un moyen simple d’adapter mes bons vieux plugins Nagios. Mais comment faire?&lt;/p&gt;
&lt;p&gt;Pour ceux qui n’auraient pas totalement percuté où je veux en venir, je vais tout de suite mettre le doigt là où ça fait mal. Prenons l’exemple d’une bête vérification que va chercher la charge CPU de votre ESXi préféré :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Une sortie Nagios est de cette forme CHECK_ESX3 OK cpu_usage=33.33 % | cpu_usage=33.33%;80;90&lt;/li&gt;
&lt;li&gt;Une sortie compatible avec Cacti c’est&amp;hellip; 33.33&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mais WTF me direz vous ! Bon j’exagère un peu. On peut spécifier plusieurs sorties comme ceci « cpu_usage:33.33 mem_usage:2311 ». Toujours est il que c’est très moche et que l’on va devoir sortir notre boite à outils.&lt;/p&gt;
&lt;p&gt;Ma première idée a été &lt;code&gt;sed&lt;/code&gt;. Pourquoi sed? Pourquoi pas. Sur le moment ça m’a paru une bonne idée de juste donner à manger à Cacti le path de mon script Nagios. Bon même si je ne suis pas forcément très à l’aise avec les regexp, un petit bruteforce des possibilités envisageables m’a permis de me remettre dans le bain et de produire un truc correct qui marche notamment pour le script check_esx3 dans le cadre d’un appel à un serveur ESX(i) pour obtenir le « cpu usage »&amp;hellip;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/usr/bin/perl &amp;lt;path_cacti&amp;gt;/scripts/ln-s_to_nagios/plugins/check_esx3 -H xxx.xxx.xxx.xxx -u user -p pass -l cpu -s usage | sed &amp;#39;s/.*=([0-9]*.[0-9]*).*/1/&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Il est très possible que cette solution ne soit pas la meilleure que l’on puisse trouver, mais j’étais content de moi, car dans mon shell, ça marchait très bien. Les experts qui me lisent sont en train de se dire « qu’il est naïf ! ». Effectivement&amp;hellip; ça ne marche pas du tout. Je ne sais pas si c’est le lien symbolique ou le pipe qui bloque, mais cacti ne trouve pas ce qu’il faut, et enregistre misérablement un &lt;strong&gt;NaN&lt;/strong&gt; toutes les 5 minutes.&lt;/p&gt;
&lt;p&gt;Du coup, je me suis tourné vers ma 2ème passion dans la vie, et j’ai écrit un mini script perl dont le but ultime était d’appeler le script check_esx3, puis de récupérer la sortie et d’y appliquer la même regexp. Alors si vous voulez faire comme moi et que vous ne vous êtes pas trop demandé comme Cacti fonctionne, je vais vous épargner un petit moment « débogage en aveugle ».&lt;/p&gt;
&lt;p&gt;En fait, Cacti utilise le cron pour ordonnancer toutes les 5 minutes ses checks, et c’est bien normal si on y réfléchit un peu. Du coup, le cron exécute avec l’utilisateur cacti, mais dans un tout autre contexte que le contexte courant. Au début naïvement j’avais écrit un script du genre :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;#!/usr/bin/perl
$res = `./check_esx3 blablabla`;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;« Ça n’est pas du tout la bonne réponse ! » Il faut absolument mettre des chemins absolus, et ne pas utiliser de liens symboliques. Une fois que vous aurez respecté ces indications, vous devriez pouvoir adapter vos scripts préférés pour qu’ils soient compatibles Cacti.&lt;/p&gt;
&lt;p&gt;Juste un p’ti lien vers un script qui marche pour l’exemple cité dans l’article &lt;a class="link" href="misc/esx_host_cpu.pl" &gt;ici&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Un dernier questionnement : est ce que le mieux ça ne serait pas d’utiliser le module PNP pour Nagios, plutôt que de multiplier inutilement vos checks (et d’adapter vos scripts)? A suivre.&lt;/p&gt;</description></item></channel></rss>