<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Check_mssql_health on Zwindler's Reflection</title><link>https://blog.zwindler.fr/tags/check_mssql_health/</link><description>Recent content in Check_mssql_health on Zwindler's Reflection</description><generator>Hugo -- gohugo.io</generator><language>fr</language><copyright>Licensed under CC BY-SA 4.0</copyright><lastBuildDate>Wed, 15 Sep 2010 08:47:41 +0000</lastBuildDate><atom:link href="https://blog.zwindler.fr/tags/check_mssql_health/index.xml" rel="self" type="application/rss+xml"/><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></channel></rss>