Développer FAN

Dans la partie Wiki [ici|/dokuwiki/doku.php?id=supervision:guide_du_developpeur_fan|fr], j’illustre la méthode à mettre en oeuvre pour obtenir un environnement de build pour FAN : installation des outils de packaging, des librairies de développement pour la compilation et comment créer sa propre image iso de FAN. J’explique par un exemple comment re-packager Centreon pour installer une nouvelle base de données.

je suis lyonnais

Avant… %%% ((/public/perso/.img_0184_s.jpg|c1-avant||c1-avant, oct 2008))%%% Apres… %%% ((/public/perso/.img_0185_s.jpg|c1-apres||c1-apres, oct 2008))%%% Et oui, je quitte la région du Maine-et-Loire (Angers) pour venir m’installer à Lyon. Plus de 6 heures pour tout déménager, avec un camion qui roule à pas plus de 90 km/h et idem pour le retour. Très sport, très épuisant ce genre d’aventure que je ne recommande pas forcément. La prochaine fois, je penserai investir dans un déménageur. Ah, c’est là qu’on voit où sont vraiment nos amis ! Merci à tout le monde pour le coup de main !

Enfin la version de FAN 1.0

Il a fallu attendre tout l’été pour avoir enfin la sortie de [FAN 1.0|http://fannagioscd.sourceforge.net/drupal/?q=node/11|en]. Forcément, les développeurs de FAN devaient prendre un peu de vacances pour se reposer, profiter du soleil et de la plage… Quoi de neuf dans cette nouvelle version ? et bien pas beaucoup de nouveautés si ce n’est que la mise à jour des paquets CentOS et des corrections de bug : * [Bug #2095028|https://sourceforge.net/tracker2/?func=detail&aid=2095028&group_id=220110&atid=1051366|en] * [Bug #2108002|https://sourceforge.net/tracker2/?func=detail&aid=2108002&group_id=220110&atid=1051366|en] * [Bug #2112390|https://sourceforge.net/tracker2/?func=detail&aid=2112390&group_id=220110&atid=1051366|en] Il y a eu qu’une seule nouvelle fonctionnalité, une contribution faite par Jean Cabes qui nous a proposé ces plugins d’envoi d’email via sendmail en couleur. Ces plugins ont été packagés et quelques peu corrigés pour les intégrer à FAN. Ils sont disponibles dans le répertoire /usr/lib/nagios/plugins : * sendmailhost.pl * sendmailservices.pl Voici les requêtes SQL pour les intégrer dans la base de données de Centreon ou vous pouvez aussi les faire manuellement : %%% @@INSERT INTO command (command_name,command_example,command_line,command_type) VALUES (‘host-notify-by-sendmailhost’,”,’$USER1$#S#sendmailhost.pl “$NOTIFICATIONTYPE$” “$HOSTNAME$” “$HOSTSTATE$” “$HOSTADDRESS$” “$HOSTOUTPUT$” “$SHORTDATETIME$” “$CONTACTEMAIL$”‘,’1’);@@%%% @@INSERT INTO command (command_name,command_example,command_line,command_type) VALUES (‘notify-by-sendmailservices’,”,’$USER1$#S#sendmailservices.pl “$NOTIFICATIONTYPE$” “$SERVICEDESC$” “$HOSTALIAS$” “$HOSTADDRESS$” “$SERVICESTATE$” “$SHORTDATETIME$” “$SERVICEOUTPUT$” “$CONTACTEMAIL$”‘,’1’);@@ Enfin dernière nouvelle : FAN est possède son propre dépôt yum. C’est une fonctionnalité qui nous a été très démandée lors des différentes présentations de FAN. Vous pourrez ainsi effectuer un “yum update” pour récupérer les derniers paquets FAN disponibles.

Tutorial d’installation et configuration de FAN 0.6

FAN 0.6 est sorti et en regardant un peu mes log apache, je me rends compte qu’il a des personnes qui arrivent sur mon blog depuis Google car elles cherchent des tuto sur FAN ! Malheureusement, la documentation de FAN est quasi inexistante.%%% Alors voici une première vidéo qui vous montre comment l’installer : [fan-video-install|/public/fan-video-install.ogg|fr] %%% Pour cela, j’utilise une machine virtuelle avec VirtualBox, je vous conseille d’installer la version xVM de Sun disponible [ici|https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_SMI-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=innotek-1.6-G-F@CDS-CDS_SMI|en] pour différentes plateforme. C’est parti, je créé une nouvelle machine que j’appelle FAN-test et je monte l’iso de FAN-0.6.iso. Je la démarre et réponds aux quelques questions : * choix de la langue, du clavier, * gestion des disques, * fuseau horaire * et le mot de passe “root”. Rien de bien compliquer pour le moment. %%% Vient ensuite quelques manipulations de geek pour ceux qui ne sauraient activer le dhcp et obtenir une adresse IP. Vous l’aurez compris FAN est une distribution où il n’y a aucune interface graphique d’installer. Tout se passe en ligne de commande ou avec le serveur web apache d’installer.%%% La deuxième video vous montre comment utiliser FAN : [fan-video-utilisation|/public/fan-video-utilisation.ogg|fr]%%% Pour ma part, j’accède à FAN avec une adresse IP NATé d’où le “localhost:8180”, si vous l’installez sur une vraie machine et que vous disposez d’un serveur dhcp sur votre réseau ; vous accéderez à FAN, avec par exemple, http://192.168.0.1.%%% Alors voici, une belle page web qui donne accès à tous les outils de supervision. Attention le login et le mot de passe à utiliser est : “nagiosadmin”.%%% ((/public/./.Fully_Automated_Nagios_1216659570738_s.jpg|Fully_Automated_Nagios_1216659570738.jpg||Fully_Automated_Nagios_1216659570738.jpg, juil 2008))%%% Sur cette video, on vous montre très brièvement comment utiliser l’interface web de Nagios, comment générer une nouvelle conf Nagios avec Centreon et utiliser Nareto. Je vous montre aussi une petite incohérence que j’ai rencontré dans Centreon sur l’utilisateur “nagiosadmin” : dans les notification des services, il faut utiliser le plugin “notify-by-email” au lieu de “host-notify-by-email”.

Encore une nouvelle version de FAN : la 0.6

L’annonce vient d’être faite sur le blog de [Cédric Temple|http://cedrictemple.net/dotclear/index.php/2008/07/18/71-fan-fully-automated-nagios-est-disponible-en-version-06|fr] et l’iso est disponible sur le site de [FAN|http://fannagioscd.sourceforge.net/drupal/|en] rubrique Download.%%% J’ai participé à pas mal de correction de bug : Pear, Centreon, Nagvis, Nagios…Cette nouvelle monture propose une meilleure intégration des outils de supervision. Un autre plus, dès le démarrage de FAN, une page web vous permettra d’accéder directement aux url de Nagios, Nareto, Centreon, Nagvis et sourtout FAN possède possède son Logo qui a été généreusement offert par [David BIJEARD|http://www.art-com.fr/|fr] .%%% Cette version a été présentée aux séminaires Supervision de [Linagora|http://www.linagora.com|fr] tenus à Paris et à Toulouse. Là voilà enfin disponible et j’espère qu’elle fera beaucoup d’heureux.

bug ndo2db sur FAN 0.5

Je viens de rencontrer un bug sur FAN 0.5. Il s’agit du fichier ndomod.o du paquet nagios-ndoutils qui ne correspond pas à la version de Nagios installé. Les conséquences de ce problème fait que Nagvis ne fonctionne pas. Je propose la correction de ce bug [#2006512|http://sourceforge.net/tracker/index.php?func=detail&aid=2006512&group_id=220110&atid=1051366|en] sur le tracker de sourceforge.net en téléchargeant une nouvelle du fichier nagios-ndoutils-1.4-fan.6.i386.rpm qui corrige ce problème. %%% Pour installer le nouveau paquet, lancer en tant que root %%% @@# rpm -Uvh nagios-ndoutils-1.4-fan.6.i386.rpm@@%%% Arrêtez le service Nagios%%% Arrêtez le service ndo2bd%%% Démarrez le service ndo2bd%%% Démarrez le service Nagios%%% Pour vérifier que le bug n’est plus présent, vérifiez que le module ndomod.o est bien chargé dans /var/log/nagios.log%%% Voilà, Nagvis devrait fonctionner normalement.

Connaissez-vous FAN ?

FAN pour __Fully Automated Nagios__ est une distribution CentOS 5.2 axée essentiellement sur la supervision dont l’incontournable Nagios. Je ne vais pas vous décrire tous les aspects de FAN car [le blog de Cédric|http://cedrictemple.net/dotclear/|fr] le fait très bien. Aujourd’hui, une nouvelle version est disponible, la [version 0.5|http://cedrictemple.net/FAN/FAN-0.5.iso|fr] dont j’ai participé à son developpement. Cette nouvelle version montre que le projet se veut ambitieux car 7 nouvelles personnes (dont moi), toutes du Groupe Linagora, ont participé à son développement et la correction de bugs. Le site du projet est pour le moment hébergé sur [SourceForge.net|http://sourceforge.net/projects/fannagioscd|fr], on y retrouvera également le dépôt svn dont on peut récupérer les sources. Pour ceux ou celles qui souhaitent participer au développement, le [site officiel de FAN|http://fannagioscd.sourceforge.net/drupal/|fr] vous explique assez brièvement comment builder sa propre version de FAN. %%% Allez pour vous faire languir un peu ! Juste quelques infos sur les nouvelles fonctionnalités qu’intégrera FAN : en ce moment, je travaille sur l’intégration de Nagios 3 et Centreon 2. Pour le moment, elle n’est pas très stable mais j’espère la proposer dans la prochaine version en béta test, peut être FAN 0.6. Toutefois, la version de Centreon 2 n’est pas encore stable donc il va falloir attendre encore…

Installation Openldap

Voici que les éléments nécessaires pour installer un serveur Openldap. Je vais changer changer un peu les paramètres du serveur pour le rendre plus fiable. L’installation est très simple sur une Debian Etch. La commande à lancer :

# apt-get install slapd db4.2-util ldap-utils

Répondez arbitrairement aux questions demandées, on changera les paramètres par la suite le fichier de configuration.
Arrêter le serveur Openldap pour le moment :

# /etc/init.d/slapd stop

Je vous propose d’utiliser un autre script d’initialisation pour l’arrêt et le démarrage du serveur, il est disponible sur www.linagora.org

# unzip slapd.init-0.6-3-2.zip
# cp /etc/init.d/slapd /etc/init.d/slapd.ori
# mv slapd /etc/init.d
# chmod +x /etc/init.d/slapd

Il vous faudra aussi télécharger le script de configuration :

# unzip slapd.default-2.zip
# cp /etc/default/slapd /etc/default/slapd.ori
# mv slapd.default /etc/default/slapd

Voici un exemple du fichier de configuration du serveur : /etc/ldap/slapd.conf
Le dn que j’ai utilisé est dc=gezen,dc=fr.

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema

pidfile  /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args

loglevel 0
#128 1 4 16 32
allow bind_v2
modulepath  /usr/lib/ldap
moduleload  back_bdb
moduleload  syncprov
sizelimit unlimited
tool-threads 1
access to attrs=userPassword
  by self write
  by anonymous auth
  by * none

access to dn.base="" by * read

access to dn.base="cn=Subschema" by * read

access to *
  by * read
  defaultsearchbase dc=gezen,dc=fr

sasl-host localhost
sasl-secprops none

########################
# Database definition  #
########################
database   bdb
suffix     "dc=gezen,dc=fr"
rootdn     "cn=Manager,dc=gezen,dc=fr"
rootpw     secret
directory  "/var/lib/ldap/gezen.fr"
checkpoint    512 30
dbconfig set_cachesize 0 128000000 0
dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500
index     objectClass,entryCSN,entryUUID eq
lastmod   on

Le mots de passe super-utilisateur doit figurer de manière cryptée, au niveau de la directive rootpw. Pour ce faire, il est nécessaire de recourir à l’utilitaire slappasswd et remplacer la valeur “secret” par le résultat obtenu.

# slappasswd
New password:
Re-enter new password:
{SSHA}88FbV6FgFyM0+YStQCcJCnn92tJDESgu

Création des répertoires manquant à la configuration :

# cd /var/lib/ldap/
# rm -fr *
# mkdir gezen.fr
# chmod 700 gezen.fr
# chown openldap:openldap gezen.fr

Premier démarrage du serveur : si tout se passe bien, le serveur doit démarrer correctement.

# /etc/init.d/slapd start

Initialisation du serveur

Votre serveur est bien démarrer sauf qu’il ne contient rien pour le moment. Un exemple simple à vérifier son contenu est d’utiliser la commande suivante :

# slapcat
ou
# ldapsearch -h localhost -b "dc=gezen,dc=fr" -x

Nous allons utiliser le format de fichier LDIF pour effectuer sa première alimentation. Créer le fichier “fichier.ldif” et coller le contenu suivant :

dn: dc=gezen,dc=fr
dc: test
objectClass: dcObject
objectClass: organization
o: GEZEN

dn: ou=people,dc=gezen,dc=fr
objectClass: organizationalUnit
ou: people

dn: ou=group,dc=gezen,dc=fr
objectClass: organizationalUnit
ou: group

dn: uid=lkco,ou=People,dc=gezen,dc=fr
loginShell: /bin/bash
employeeNumber: lkco
sn: LI-KIANG-CHEONG
gidNumber: 1000
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: person
objectClass: shadowAccount
objectClass: organizationalPerson
mail: lkco@gezen.fr
givenName: Olivier
uid: lkco
uidNumber: 10000
displayName: LI-KIANG-CHEONG Olivier
cn: Olivier LI-KIANG-CHEONG
homeDirectory: /home/lkco

Lancer ensuite la commande :

# ldapadd -h localhost -D "cn=Manager,dc=gezen,dc=fr" -w -x -f fichier.ldif

Schéma de l’arborescence de l’annuaire :
Voici un petit schéma simple pour illustrer ce qui a été créé.

dc=gezen,dc=fr
|_ou=group,dc=gezen,dc=fr
|_ou=people,dc=gezen,dc=fr
   |_uid=lkco,...

   |

Vous pouvez aussi l’installer l’outil phpldapadmin si vous souhaitez utiliser une interface plus conviviale pour administrer votre annuaire.

# apt-get install phpldapadmin

Au niveau de sa configuration, tout se passe dans le fichier “/usr/share/phpldapadmin/config/config.php”. Il est très bien documenté et je pense que vous ne devriez pas avoir de problème à le configurer tout seul.

Tutorial : Cluster HA avec Équilibrage de charge pour des annuaires

Voici un tutorial qui je pense être assez complet. Avec la dernière version d’Openldap, à savoir 2.4.8, j’aborde la configuration du serveur en mutlimaitre. L’équilibrage de charge est assuré par IPVS et la haute dispo par Hearbeat. Tout ça [ici|/index.php?pages/Cluster-Haute-Disponibilite/Equilibrage-de-charge-avec-des-OpenLDAP-multi-maitre|fr]

Naissance de Gezen.fr

Voilà, je vais le grand pas en m’offrant une [Dedidox V2|http://www.dedibox.fr|fr]. Cela fait quelques temps que j’hésitais à en prendre une et bien maintenant c’est chose faite ; je pense clairement que je vais bien m’éclater avec ce serveur dédié. Coté matériel, il est équipé d’un processeur Intel Celeron 220, de 2Go de RAM et de 160 GO de disque dur. Dont aussi on peut installer mon propre système : mon choix s’est porté sur une [Debian|http://www.debian.org/index.fr.html|fr]. Pourquoi ? Car je l’illustre dans le domaine de l’opensource, pour ma part une Debian est un système stable et fiable sur lequel j’ai entièrement confiance. Deuxième grand pas : mon achat de mon premier nom de domaine chez [Gandi|http://www.gandi.net/|fr], voici donc la naissance de gezen.fr Sur lkco.gezen.fr, je le consacre à l’Opensource et à mon blog perso. Dans mes prochains posts, je vous parlerai comment j’ai mis en place sur ma dédibox : mon serveur de messagerie (Postfix, cyrus), un annuaire Openldap, mon multiblog avec Dotclear2 et puis encore pleins d’autres choses….