Superviser les cartes DELL Perc 5i et 6i avec Ubuntu

1 Présentation

1.1 Fonctionnement général

Les cartes RAID fournies par DELL, en configuration SATA, sont des cartes PERC (fabriquant : LSI).

DELL fournit tous les outils pour superviser ses serveurs depuis des distributions RedHat ou Suse, mais ne certifie rien pour les autres distributions, et notamment Debian/Ubuntu. Toutefois, il est possible d’installer assez facilement (quoique...) un outil qui permet, depuis une interface web, de consulter l’état du serveur, voire de réaliser des opérations concernant les disques (ou autres).

Pour la supervision, il existe des programmes en ligne de commande qui permettent d’interroger le système, et notamment de suivre l’état de fonctionnement du raid. Un script bash peut être utilisé comme plugin pour Nagios, qui semble mieux fonctionner avec NRPE que le plugin megaraid, souvent utilisé.

1.2 Systèmes concernés

Installations réalisées avec Ubuntu 10.04 LTS, en version 32 bits et 64 bits. Les spécificités de la version 64 bits sont décrites dans le chapitre

2 Installer les outils

La procédure a été (légèrement) adaptée à partir de ce site :

http://www.ccn.ucla.edu/users/jkyle/weblog/e14bd/Dell_Perc_5i_on_Ubuntu_64.html.

2.1 Installer libstdc++5

Le paquetage est considéré comme obsolète, mais nous en avons besoin... Téléchargez-le depuishttp://packages.debian.org/squeeze/..., et installez-le par la commande :

dpkg -i libstdc++5_3.3.6-20_i386.deb

2.2 Installer DellOmsa

Il s’agit de l’outil complet de gestion du serveur.

2.2.1 Rajouter le dépôt dans la configuration des sources

Éditez le fichier /etc/apt/sources.list, et rajoutez la ligne suivante :

deb ftp://ftp.sara.nl/pub/sara-omsa dell6 sara

Téléchargez la clé publique du dépôt depuis l’adresse suivante :

http://ftp.sara.nl/debian_sara.asc

et intégrez la clé dans apt :

apt-key add debian_sara.asc

2.2.2 Installer le paquetage

apt-get update
apt-get install dellomsa

2.2.3 Cas particulier pour Ubuntu 8.04

Si vous avez une version Ubuntu 8.04, il faut modifier le paquetage (opération décrite dans les notes de ce document : http://blog.admin-linux.org/administration/dell-openmanage-server-administrator-sur-une-ubuntu-804-server) :

wget ftp://ftp.sara.nl/pub/sara-omsa/dists/dell6/sara/binary-i386/dellomsa_6.0.1-10_i386.deb
root@asterix:/usr/local/src# cd /tmp/
root@asterix:/tmp# dpkg-deb -x /usr/local/src/dellomsa_6.0.1-10_i386.deb dellomsa_6.0.1-10_i386
root@asterix:/tmp# mkdir dellomsa_6.0.1-10_i386/DEBIAN
root@asterix:/tmp# dpkg -e /usr/local/src/dellomsa_6.0.1-10_i386.deb dellomsa_6.0.1-10_i386/DEBIAN/
root@asterix:/tmp# vi dellomsa_6.0.1-10_i386/DEBIAN/control
=> On modifie libsmbios2 en libsmbios1
root@asterix:/tmp# dpkg-deb -b dellomsa_6.0.1-10_i386
dpkg-deb : construction du paquet « dellomsa » dans « dellomsa_6.0.1-10_i386.deb ».
root@asterix:/tmp# dpkg -i dellomsa_6.0.1-10_i386.deb

2.2.4 Mettre à jour les bibliothèques

ldconfig

Si une erreur survient, par exemple /opt/dell/srvadmin/dataeng/bin/dsm_sa_datamgr32d : error while loading shared libraries : libdcsmil32.so.5 : cannot open shared object file : No such file or directory, téléchargez le script suivant :http://www.ccn.ucla.edu/users/jkyle/weblog/e14bd/attachments/239d0/dell_omsa.sh et placez-le dans le dosser /etc/init.d/ (rendez-le également exécutable : chmod +x).

Exécutez ce script :

/etc/init.d/dell_omsa.sh

puis lancez (le cas échéant) le serveur :

/etc/init.d/dataeng start

Normalement, vous devez maintenant pouvoir visualiser l’interface de gestion, en vous ouvrant la page web https://serveur:1311. Ne vous inquiétez pas si l’identification ne fonctionne pas pour le moment, nous verrons cela plus tard.

2.2.5 Activer le démarrage du service au démarrage du serveur

update-rc.d dsm_om_connsvc defaults

2.2.6 Activer l’identification

L’identification à l’outil de gestion utilise les modules pam. Vous pouvez visualiser la configuration demandée en consultant le fichier /etc/pam.d/omauth :

auth       required     /lib/security/pam_unix.so nullok
auth       required     /lib/security/pam_nologin.so
account    required     /lib/security/pam_unix.so nullok

Selon la configuration, il est possible que les bibliothèques pam_unix.so et pam_nologin.so ne sont pas dans /lib/security, mais dans /lib/i386-linux-gnu/security...

Créez alors un lien vers les deux bibliothèques ainsi :

cd /lib/security
ln -s /lib/i386-linux-gnu/security/pam_unix.so
ln -s /lib/i386-linux-gnu/security/pam_nologin.so

Maintenant, vous devez pouvoir vous connecter avec le login root dans l’interface de gestion.

2.3 Installer le plugin NAGIOS-NRPE check_omreport

2.3.1 Installer et configurer le plugin

om_report est un utilitaire en ligne de commande qui permet d’interroger l’état du serveur. Pour pouvoir l’utiliser depuis Nagios-nrpe, nous allons créer un programme bash qui va émuler le fonctionnement d’un plugin(Script récupéré depuis le sitehttp://wiki.tuxunix.com/index.php/Nagios_dédié) :

#!/bin/bash
SERVICE_NAME="raid hard sous linux"
OMREPORT="/usr/sbin/omreport"
CHECK_NAME=`$OMREPORT storage vdisk | grep ^State | cut -d ":" -f 2 | sed -e 's/^\ //'`
NB_VDISKS=`$OMREPORT storage vdisk | grep ^ID | wc -l | awk '{ print $1 }' | tr -d '\n'`
CUR_STATUS=0
STATUS=0;
CUR_TXT=""
CUR_VDISK=1
VALID=`echo $CHECK_NAME | tr -d "[:space:]"`
if [ -z $VALID ];
then
       STATUS="3"
else
       for i in $CHECK_NAME
       {
               i=`echo $i | tr -d '\n'`
               if [ $i != "Ready" ];
               then
                       let CUR_STATUS=CUR_STATUS+1
               fi
               CUR_TXT="$CUR_TXT Pile $CUR_VDISK $i - "
               let CUR_VDISK=CUR_VDISK+1
       }
fi
if [ $CUR_STATUS -eq 0 ];
then
       STATUS=0;
else
       STATUS=2;
fi
CHECK_NAME="Etat du RAID pour $NB_VDISKS pile(s): "$CUR_TXT
/bin/echo -e "$CHECK_NAME"
exit $STATUS

Installez-le dans le dossier /usr/lib/nagios/plugins, et rendez-le exécutable. Exécutez-le au moins une fois pour vérifier son bon fonctionnement :

/usr/lib/nagios/plugins/check_omreport 
Etat du RAID pour 1 pile(s):  Pile 1 Ready -

Maintenant, déclarez le plugin dans le fichier de configuration de NRPE /etc/nagios/nrpe.cfg :

command[check_omreport]=/usr/lib/nagios/plugins/check_omreport

et redémarrez le service :

service nagios-nrpe-server restart

2.3.2 Configurer le serveur Nagios

La configuration peut varier énormément selon les serveurs... Voici un exemple :

Éditez le fichier hostgroups.cfg, et créez un nouveau groupe :

define hostgroup{
       hostgroup_name         omreport
       alias                  omreport
       members                serveur1,serveur2
}

Éditez le fichier des services services.cfg, et rajoutez un nouveau service :

define service {
       use                             generic-service
       hostgroup_name                  omreport
       service_description             check_omreport
       is_volatile                     0
       check_period                    24x7
       max_check_attempts              3
       normal_check_interval           5
       retry_check_interval            1
       contact_groups                  MSI
       notifications_enabled           1
       notification_interval           0
       notification_period             24x7
       notification_options            c,r
       check_command                   check_nrpe!check_omreport
}

Vérifiez la configuration de nagios :

nagios3 -v /etc/nagios3/nagios.cfg

et, si tout est ok, rechargez les paramètres :

service nagios3 reload

3 Installer DellOmsa dans Ubuntu 64 bits

La plupart des outils sont des outils 32 bits : il va falloir en tenir compte pour l’installation... La procédure est quasiment identique, à ceci près que certaines opérations sont un peu plus complexes : il va falloir installer les bibliothèques 32 bits.

3.1 Installer les versions 32 bits des bibliothèques de base

apt-get install -f lib32ncurses5 
apt-get install -f ia32-libs

3.2 Installer la bibliothèque libstdc++.so.5

Téléchargez la bibliothèque depuis http://packages.debian.org/squeeze/i386/libstdc++5/download

Surtout, n’installez-pas le paquet directement ! Deux solutions :

3.2.1 Depuis un poste de travail Linux

Ouvrez le fichier deb avec votre archiveur. Allez dans le sous-dossier /usr/lib, et recopiez le fichier libstdc++.so.5.0.7 dans le dossier /usr/lib32/

Créez ensuite le lien :

cd /usr/lib32
ln -s libstdc++.so.5.0.7  libstdc++.so.5

3.2.2 En dépaquetant le fichier

Extrayez le paquetage dans un dossier temporaire

dpkg-deb -x <libname> /tmp/lib32s

puis recopiez les fichiers présents dans usr/lib vers /usr/lib32/.

3.3 Installer DellOmsa

Téléchargez la version 64 bits de DellOmsa depuis ftp://ftp.sara.nl/pub/sara-omsa/dists/dell6/sara/binary-amd64/

Lancez l’installation du paquetage manuellement :

dpkg -i dellomsa_6.0.1-10_amd64.deb

L’installation va échouer : il vous manque des paquets... Lancez alors une réparation, qui va télécharger les paquets manquants :

apt-get install -f

Mettez à jour les bibliothèques en suivant la procédure décrite dans le paragraphe 2.2.4, Mettre à jour les bibliothèques, page 2.

3.4 Configurer l’identification

3.4.1 Récupérer les bibliothèques de base

Téléchargez le paquetage libpam-modules adapté à votre distribution (par exemple, depuishttp://pkgs.org/ubuntu-10.04/ubuntu-main-i386/libpam-modules_1.1.1-2ubuntu2_i386.deb.html).

Extrayez le paquetage comme précédemment pour la bibliothèque libstdc++.so.5, en recopiant :

-

lib/security/pam_unix.so et pam_nologin.so vers /lib32/security/

Vérifiez également que vous disposez bien des librairies libsepol.so et libselinux.so dans /lib32.

Exécutez la commande ldconfig pour que les nouvelles librairies soient bien prises en compte.

3.4.2 Mettre à jour le module pam

Éditez le fichier /etc/pam.d/omauth, et remplacez les accès aux bibliothèques d’identification par :

auth       required     /lib32/security/pam_unix.so nullok
auth       required     /lib32/security/pam_nologin.so
account    required     /lib32/security/pam_unix.so nullok

Le reste de l’installation est identique.