Cluster Failover / Load Balancing – DHCP – Windows 2012

windows-server-2012-logo1Bonjour, dans ce billet, je vais vous présenter comment réaliser un cluster DHCP (failover et/ou Load balance) sur Windows Server 2012.

C’est une des nouvelles fonctionnalités très attendu de WS2012.

Pour ma maquette, je suis parti d’une architecture très simple à savoir, 1 serveur AD avec les rôles DNS et DHCP (aucune conf DHCP) et un autre serveur WS2012 lié au domaine avec le rôle DHCP.

Configuration :

- Autoriser les deux serveurs dans l’AD (clique droit sur le nom du serveur -> Authorize dans la mmc du DHCP sur chaque serveur)
- Configurer le(s) étendue(s) sur un des deux serveurs
- Développer l’étendue (dans l’arborescence) puis, clique droit -> Configure Failover
- Donner un nom à la relation entre les deux serveurs
- Changer le « Maximum Client Lead Time » à 1min
- Sélectionner le mode voulu (Load Balance ou Hot Standy, respectivement, équilibrage de charge ou actif/passif)
Valider.

Si vous actualisez les infos DHCP de l’autre serveur, vous devriez voir votre (vos) étendue(s) apparaître !

A bientôt pour de nouvelles aventures !

Source : Technet
Note sur le mode Hot Standby : En anglais

Publié dans Système | Marqué avec , , , , | Laisser un commentaire

Bind9 – Sortlist

Bonjour, dans ce billet, je vais vous présenter l’option « sortlist » de Bind9.
Alors, Sortlist, késako ?
En fait, cette option permet de trier les résultats d’une requête dns – autrement dit, les @IP.
Vous allez me dire, « ça n’a pas grand intérêt… ». Et bien si, ça peut être très utile !
Surtout dans le cas ou l’on a une machine qui à plusieurs @IP (dans des réseaux différents) pour un même nom.
Exemple :

monserveur     IN  A  192.168.3.5
               IN  A  192.168.4.5
               IN  A  192.168.5.5

Sortlist va nous permettre de choisir l’adresse retournée en fonction de l’adresse du client (demandeur).
Petit exemple simple :

options {
 sortlist {
 { 192.168.3/24;  // Si réseau source = 192.168.3.0/24
 // Alors, renvoyer (dans l'ordre) l'adresse 192.168.3 puis .4 puis .5
        { 192.168.3/24; 192.168.4/24; 192.168.5/24; };      
    };
    { 192.168.4/24; // Si réseau source = 192.168.4.0/24
 // Alors, renvoyer (dans l'ordre) l'adresse 192.168.4 puis .3 puis .5
        { 192.168.4/24; 192.168.3/24; 192.168.5/24; };     
    };
   { 192.168.5/24; // Si réseau source = 192.168.5.0/24
 // Alors, renvoyer (dans l'ordre) l'adresse 192.168.5 puis .4 puis .3
        { 192.168.5/24; 192.168.4/24; 192.168.3/24; };      
    };
};
...
}; //Fin option

Comme vous pouvez le constater, la syntaxe est assez simple….
sortlist {
{ <ip/reseau source>;
{<ip/reseau à retourner>; [ip/reseau à retourner;]};
};

Voila, n’hésitez pas si vous avez des remarques !

Publié dans Système | Marqué avec , , , , | Laisser un commentaire

Bind9 – Utiliser les vues

Bonjour, aujourd’hui je vais vous montrer comment utiliser les vues (view) de Bind9 pour sécuriser votre serveur DNS ou pour d’autres applications, comme ce cas :
On a un serveur avec plusieurs interfaces et @IP dans des réseaux différents qui doit répondre sous un nom précis commun à tous les réseaux ; avec un seul serveur DNS.
Dans un prochain billet, je vous montrerai une autre méthode plus simple pour réaliser cela.

On va donc « splitter » notre/nos zone(s) afin de choisir la partie correspondante en fonction de l’adresse source de la requête.
Exemple : le serveur à comme nom « sauvegarde.mondomaine.fr » avec les IPs suivantes :
192.168.0.20/24
192.168.1.20/24
192.168.3.20/24

Objectif :
Si la machine qui demande la résolution « sauvegarde.mondomaine.fr » est dans le réseau 192.168.0.0/24 elle devra recevoir l’adresse 192.168.0.20
Si la machine qui demande la résolution « sauvegarde.mondomaine.fr » est dans le réseau 192.168.1.0/24 elle devra recevoir l’adresse 192.168.1.20
Si la machine qui demande la résolution « sauvegarde.mondomaine.fr » est dans le réseau 192.168.2.0/24 elle devra recevoir l’adresse 192.168.2.20

Exemple de configuration de 3 vues :

//Dns dynamique
acl "res0" {192.168.0.0/24;};
acl "res1" {192.168.1.0/24;};
acl "res2" {192.168.2.0/24;};
 
view "reseau0" {
        match-clients { "res0"; };
        recursion yes;
        zone "mondomaine.fr" {
                type master;
                file "/etc/bind/mondomaine.fr.zone.res0";
        };
};
 
view "reseau1" {
        match-clients { "res1"; };
        recursion yes;
        zone "mondomaine.fr" {
                type master;
                 file "/etc/bind/mondomaine.fr.zone.res1";
        };
};
 
view "reseau2" {
        match-clients { "res2"; };
        recursion yes;
        zone "mondomaine.fr" {
                type master;
                 file "/etc/bind/mondomaine.fr.zone.res2";
        };
};
view "external" {
        match-clients { any; };
        recursion no;
 
        zone "." {
                type hint;
                file "/etc/bind/db.root";
        };
        zone "localhost" {
                type master;
                file "/etc/bind/db.local";
        };
        zone "127.in-addr.arpa" {
                type master;
                file "/etc/bind/db.127";
        };
        zone "0.in-addr.arpa" {
                type master;
                file "/etc/bind/db.0";
        };
        zone "255.in-addr.arpa" {
                type master;
                file "/etc/bind/db.255";
        };
};

Exemple de fichier de zone (/etc/bind/mondomaine.fr.zone.common) :

;
; BIND data file for mondomaine.fr
;
$TTL    604800
@       IN      SOA     monSrvDns hostmaster.mondomaine.fr. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@               IN      NS      hv-1
mondomaine.fr.   IN      MX      10 mail
 
monSrvDns            IN      A       192.168.0.171
mail                     IN      A       192.168.0.180

Exemple de fichier de zone (/etc/bind/mondomaine.fr.zone.res0) :

include "/etc/bind/mondomaine.fr.zone.common";
sauvegarde           IN      A       164.81.0.20

Exemple de fichier de zone (/etc/bind/mondomaine.fr.zone.res1) :

include "/etc/bind/mondomaine.fr.zone.common";
sauvegarde           IN      A       164.81.1.20

Exemple de fichier de zone (/etc/bind/mondomaine.fr.zone.res2) :

include "/etc/bind/mondomaine.fr.zone.common";
sauvegarde           IN      A       164.81.2.20

Comme vous l’aurez compris, j’ai choisi d’utiliser un fichier commun pour éviter les enregistrements redondants.

Une telle configuration peut aussi servir a accroitre la sécurité. En effet, dans le(s) fichier(s) de zone de la vue « external » vous pouvez limiter les enregistrements vu depuis un réseau extérieur (autre que 192.168.0.0/24, 192.168.1.0/24, 192.168.2.0/24).

N’hésitez pas à commenter si vous avez des questions / améliorations.

Publié dans Système | Marqué avec , , , , , , , , , | Laisser un commentaire

Web SSO avec LemonLdap-ng (Debian) [2 - Configuration] [2 - Reverse Proxy Authentifiant]

Bonjour, aujourd’hui nous allons voir comment configurer LemonLdap-ng pour faire un reverse proxy authentifiant (Ldap / Cas).

Fonctionnement :

Le principe de cette application est “d’intercepter” les requêtes qui passent par Apache afin de procéder à un traitement dessus. (expressions régulières sur les headers HTTP …)

Reverse proxy :
Complétement géré par Apache. Il se configure à la main dans les virtual hosts.

Exemple : mon_application.conf

PerlOptions +GlobalRequest
#PerlRequire /usr/local/lemonldap-ng/handler//MyHandler.pm
 
#Mon appli de test
 
<VirtualHost *:80>
  ServerName hv-3.unilim.fr
  PerlHeaderParserHandler My::Package
  #Reverse-Proxy
  ProxyPass / http://hv-6.unilim.fr/
  ProxyPassReverse / http://hv-6.unilim.fr/
  ProxyPreserveHost on
  #Logs
  ErrorLog /var/log/apache2/proxysite_error.log
  CustomLog /var/log/apache2/proxysite_access.log combined
</VirtualHost>

Explications :
ServerName : nom (dns) sur lequel le reverse proxy va écouter
PerlHeaderParserHandler My::Package : Instancie les classe de LemonLdap qui “intercepte” les requêtes et procèdent au traitement adapté
ProxyPass  / <adresse serveur> : Adresse du serveur vers lequel rediriger les requettes
ProxyPassReverse / <adresse serveur> : Adresse du serveur duquel viennent les requetes (dans le sens inverse)
ProxyPreserveHost on : Transfère les Header HTTP

Exemple de configuration d’une application web SSO proxifiée :

Le principe est de se servir de LemonLdap comme passerelle.

Donc créez des alias CNAME ou enregistrements A qui pointent sur votre serveur LemonLdap.
Exemple :
monappli.mondomaine.fr. IN CNAME lemonldap.mondomaine.fr
ou
monappli.mondomaine.fr. IN A <adresse ip du serveur>

Ensuite, créez un virtualhost pour apache (comme dans l’exemple ci-dessus) dans un nouveau fichier (dans /etc/lemonldap-ng/).
Faire un lien symbolique vers le répertoire d’Apache :
cd /etc/apache2/site-available/
ln -s /etc/lemonldap-ng/mon-appli.conf

ou en une fois :
ln -s /etc/lemonldap-ng/mon-appli.conf /etc/apache2/site-available/

Ajoutez le nouveau virtualhost dans Apache :
a2ensite mon-appli.conf
/etc/init.d/apache2 reload

Enfin, créez un Hôte Virtuel dans LemonLdap qui porte le même nom que celui d’apache.
Exemple :
monappli.mondomaine.fr

Vous pouvez maintenant définir des règles de filtrage / redirection …
Exemple d’en-tête HTTP (Transmission d’info de l’utilisateur à l’application par les header HTTP ) :
Créez les variables à exporter (dans les menu : Variables -> Attributs à exporter).
Exemple :
nomUser        displayName
Explication :
nomUser => sera le nom de la variable qui contiendra le contenu de l’attribut displayName de l’annuaire (on pourra l’appeler via $nomUser).

Créez le header correspondant (dans les menu : Hôtes virtuels -> monappli.mondomaine.fr -> En-tête HTTP)
Exemple :
REMOTE_USER    $nomUser
Explication :
REMOTE_USER => nom du header (que l’on pourra lire à partir de l’application proxifié)
$nomUser => variable qui va “remplir” ce header

Exemple de lecture du header REMOTE_USER en PHP :
echo $_SERVER[‘HTTP_REMOTE_USER’];

Note : vous pouvez créez vos propres headers (variables) et les récupérer de la même manière.
Exemple :
echo $_SERVER[‘HTTP_Nom_De_Famille’];

Notions de “profils utilisateur” : On peut les faire à partir des hôtes virtuels.
Exemple :
On crée l’hôte virtuel “etudiants.unilim.fr” (dans lemonldap et dans apache).
On crée une règle de filtrage pour “defaut”. Exemple : expression=default  Règle=$uid eq « hve01″. Ce qui signifie que seul l’utilisateur “hve01” aura accès à cet hôte virtuel.

On crée la liste des applications pour le portail (Paramètres généraux -> Portail -> Menu -> Catégories et Applications).
Exemple :
Nom de la clé = 1ENT ;
Nom à afficher = ENT étudiants ;
Adresse = http://etudiants.unilim.fr/ent/ ;
Mode d’affichage = automatique ;
Description = Espace numerique de travail ;
Logo=monlogo

Enfin, on crée les “redirections” dans le virtual host (apache). (En mode Reverse Proxy)
Exemple :

<VirtualHost *:80>
ServerName etudiants.unilim.fr
PerlHeaderParserHandler My::Package

rewriteEngine On
rewriteRule ^/ent/(.*) http://ent.unilim.fr/$1 [P]
rewriteRule ^/webmail/(.*) http://mail.unilim.fr:8080/$1 [P]

ErrorLog /var/log/apache2/proxysite_error.log
CustomLog /var/log/apache2/proxysite_access.log combined
</VirtualHost>
Publié dans Système | Marqué avec , , , , , , , , | Laisser un commentaire

Web SSO avec LemonLdap-ng (Debian) [2 - Configuration] [1 - Serveur CAS]

Bonjour, dans ce billet, nous allons voir comment créer une première configuration pour LemonLdap afin qu’il puisse faire office de serveur CAS (à partir de l’interface web).

Configuration du portail :

Rendez-vous dans « Paramètres généraux » -> « Portail » .

URL : http://portal.mondomaine.fr

La recherche des utilisateurs et de leurs attributs se fera dans un annuaire LDAP.

Configuration de l’authentification :

Rendez-vous dans « Paramètres généraux » -> « Modules d’authentification » .

Sélectionnez LDAP pour les 3 modules (Authentification, Utilisateur, Mot de passe).

Sauvez la configuration.

Retournez dans le menu précédant, un sous-menu apparait « Paramètres LDAP ». Celui-ci va vous permettre de configurer la connexion et les différents filtres de recherche.

Exemple de configuration :

Niveau d'authentification : 2

Connexion :

Hôte : ldap://ldap.mondomaine.fr
Port : 389
Base de recherche des utilisateurs : dc=mondomaine,dc=fr

Groupes :

Base de recherche : ou=posix_groups,dc=mondomaine,dc=fr
Classe d'objet : posixGroup
Attribut cible : memberUid
Attribut source utilisateur : uid
Attributs recherchés : cn
Récursif : désactivé

Le sous menu « Groupes » permet de configurer une « moulinette » qui va lister automatiquement les groupes existants et les utilisateurs qui en font parti (bien utile si vous n’avez pas d’attribut « memberOf » dans vos compte utilisateurs).

A ce stade, vous devriez pouvoir vous authentifier sur le portail (http://portal.mondomaine.fr)avec un utilisateur LDAP.

Configuration serveur CAS :

Rendez-vous dans « Paramètres généraux » -> « Modules fournisseur » -> « CAS » .
Exemple de configuration :

Activation : activer
Chemin : ^/cas/
Règle d'utilisation : $authenticationLevel > 1

Options :

Identifiant CAS : uid
Politique de contrôle d'accès : none

Création de certificats (auto signés) pour CAS :
Connectez-vous en ssh au serveur (si vous êtes à distance).
Création de la clé privée :

# openssl genrsa -des3 -out mondomaine.key 1024
# openssl req -new -key mondomaine.key -out mondomaine.csr

Création du certificat :

openssl x509 -req -days 365 -in mondomaine.csr -signkey mondomaine.key -out mondomaine.crt

Déplacement des fichiers :

# mv mondomaine.key /etc/ssl/private/
# mv mondomaine.crt /etc/ssl/certs/
# mv mondomaine.csr /etc/ssl/certs/

Modification de la configuration de LemonLdap pour inclure le certificat (https) :
Editez le fichier /etc/lemonldap-ng/portal-apache2.conf

Modifiez :
en

Ajoutez (dans le virtual host) :

SSLEngine On
SSLCertificateFile /etc/ssl/certs/mondomaine.crt
SSLCertificateKeyFile /etc/ssl/private/mondomaine.key
SSLCertificateChainFile /etc/ssl/certs/mondomaine.csr

Editez le fichier /etc/apache2/ports.conf et rajoutez la ligne suivante :

<IfModule mod_ssl.c>
Listen 443
</IfModule>

Activez le module apache ssl :

root@hv-4:~# a2enmod ssl
apache2ctl restart

Le portail répondra maintenant à httpS://portal.mondomaine.fr donc, modifiez la configuration du portail en conséquence.

Voilà, vous serveur doit être opérationnel.

Test :

Pour tester, voici un exemple de test d’authentification CAS en PHP (basé sur la librairie phpCAS disponible ici) que vous pouvez installer sur un de vos serveur web.

Arborescence :
|/index.php
|/CAS/config.php
|—–/Client.php
|…

Fichier index.php :

<?php
include_once('CAS.php');
require_once ('config.php');
phpCAS::setDebug();
phpCAS::client(CAS_VERSION_2_0,$cas_host,$cas_port,$cas_context);
phpCAS::setNoCasServerValidation();
phpCAS::forceAuthentication();

if (isset($_GET['logout']) && $_GET['logout'] == "Déconnexion")
        phpCAS::logout();

?>
        <h1>Authentification CAS réussie !</h1>
        <p>L'utilisateur est <b><?php   echo phpCAS::getUser(); ?></b>.</p>
        <form action='#' method='GET' >
                <input type='submit' name='logout' value='Déconnexion'>
        </form>

Extrait du fichier config.php :

$phpcas_path = 'CAS/';
// Full Hostname of your CAS Server
$cas_host = 'portal.mondomaine.fr';
// Context of the CAS Server
$cas_context = '/cas';
$cas_port = 443;
$cas_real_hosts = array('portal.mondomaine.fr');

Les informations de débugage se trouve (par défaut) dans /tmp/phpCAS.log .

 

 

Publié dans Système | Marqué avec , , , , , , , , | Un commentaire

Web SSO avec LemonLdap-ng (Debian) [1 - Installation]

Bonjour, aujourd’hui, dans ce billet je vais essayer de vous présenter un produit qui m’a beaucoup plus : LemonLdap-ng.

L’installation sera faite sur une VM (kvm) Debian 6 (Squeeze) x64 en installation minimale.

Pour mon installation de test, j’ai choisi d’utiliser le package du depot officiel Debian.

L’utilisation des sources devient obligatoire si vous désirez utiliser les dernières fonctionnalités ou corrections de bug.

Se référer à la documentation officielle de LemonLdap pour les détails.

Notez cependant l’importance des différents points de configuration obligatoires que je vais reprendre ici :

Exécutez cette commande afin de changer le domaine par défaut :

sed -i 's/example\.com/mondomaine.fr/g' /etc/lemonldap-ng/*
 /var/lib/lemonldap-ng/conf/lmConf-1 /var/lib/lemonldap-ng/test/index.pl

Ajoutez la configuration à Apache :

root@hv-4:~# a2ensite handler-apache2.conf
root@hv-4:~# a2ensite portal-apache2.conf
root@hv-4:~# a2ensite manager-apache2.conf

Testez la configuration et relancez Apache :

root@hv-4:~# apache2ctl configtest
root@hv-4:~# apache2ctl restart

Dans la documentation, il vous est précisé de copier le contenu du fichier hosts de LemonLdap dans celui du système avec la commande suivante :

cat /etc/lemonldap-ng/for_etc_hosts >> /etc/hosts

Il n’est pas utile de tout copier. LemonLdap à besoin de 4 noms différents pour fonctionner correctement : auth.mondomaine.fr, manager.mondomaine.fr, portal.mondomaine.fr et reload.mondomaine.fr.

Vous créerez les enregistrements A (ou AAAA si ipv6) pour « manager » et « portal » (qui pointerons sur les @ip de LemonLdap privé/public en fonction) dans votre DNS donc inutile de les mettre dans le Hosts.

Seul auth.mondomaine.fr et reload.mondomaine.fr seront utiles (pour permettre l’enregistrement de la configuration via l’interface web) car ils sont utilisés uniquement en local.

Il est bien sur possible de modifier ce comportement par défaut en éditant les fichier de configuration des VirtualHosts dans /etc/lemonldap-ng/ .

Sécurisation de l’accès au Manager avec authentification Ldap :

Activez le module ldap pour apache :

root@hv-4:~# a2enmod authnz_ldap
root@hv-4:~# apache2ctl restart

Éditez le fichier /etc/lemonldap-ng/manager-apache2.conf

Remplacez :

Order deny,allow
      Deny from all
      Allow from 127.0.0.1
      Options +ExecCGI

Par :

AuthzLDAPAuthoritative On
     AuthName "Bienvenue sur le manager de LemonLdap-ng. Veuillez vous identifier."
     AuthType Basic
     AuthBasicProvider ldap
     #Rentrez les infos de votre serveur Ldap
     #AuthLDAPBindPassword "secret"
      AuthLDAPURL ldap://ldap.mondomaine.fr:389/ou=LocalPeople,dc=mondomaine,dc=fr?uid
      Require ldap-user Administrateur
      Satisfy all
      Options +ExecCGI

Voir la doc d’apache pour les directives, mais je pense qu’elles sont assez explicites.

Testez la configuration et relancez Apache :

root@hv-4:~# apache2ctl configtest
root@hv-4:~# apache2ctl restart

A ce stade, vous devez avoir un accès à l’interface web de LemonLdap à l’adresse suivante : http://manager.mondomaine.fr
La configuration va pouvoir commencer… :)

Publié dans Système | Marqué avec , , , , , , | 3 commentaires

Lvm sur Scientific Linux 6.2

Logo KVMBonjour, dans ce billet, nous allons voir comment utiliser LVM + KVM sur un réseau Fibre Channel.

 

Pour ce test, je suis parti d’une Scientific Linux 6.2 (Red Hat)  installé sur une lame Dell M610 (bi-Xeon(2x2x4 coeurs) avec 48Go de RAM ).

Installation de KVM :

[root@lamed11 ~]# yum install kvm virt-manager

Un serveur X est nécessaire pour lancer virt-manager. Si vous n’en avez pas, faite une installation minimale et connectez vous en ssh -X (X11 forwarding dans putty) :

[root@lamed11 ~]# yum install xorg-x11-xauth urw-fonts 

(pour les fonts, vous avez le choix…)

Préparez le LUN sur la baie SAN et mappez-le à votre serveur.

Faites le zonning sur les switchs FC (dans mon cas, j’ai créé une zone de test avec juste mon serveur et la baie SAN).

LVM :

Repérez le disque (LUN) sur votre machine Linux (soit par un simple dmesg , avec lsscsi ou autres commandes) et lancez les commandes suivantes :

[root@lamed11 ~]# pvcreate /dev/sdb

(ce ne sera peut être pas le même nom dans votre cas)

[root@lamed11 ~]# vgcreate DATA /dev/sdb 

(où DATA est le nom du nouveau VolumeGroup)

[root@lamed11 ~]# vgdisplay -v DATA 

(pour verifier)

[root@lamed11 ~]# lvcreate -L40000 -n data_film DATA 

(-L40000 = 40Go,
data_film = nom du VirtualVolume à créer,
DATA = nom du VolumeGroup dans lequel créer le LogicalVolume)

Vous vous retrouvez donc avec un nouveau disque « vierge » de 40Go dans /dev/DATA/data_film .

 

Si après le redémarrage de la machine votre volume groupe n’apparait pas, lancez la commande suivante :

[root@lamed11 ~]# lvscan
 inactive          '/dev/DATA/data_film' [558,98 GiB] inherit
 ACTIVE            '/dev/VolGroup/lv_root' [50,00 GiB] inherit
 ACTIVE            '/dev/VolGroup/lv_home' [67,95 GiB] inherit

On voit ici que le volume DATA d’est pas actif.

Pour l’activer :

[root@lamed11 ~]# vgchange -ay DATA

Vérification :

[root@lamed11 ~]# lvscan
  ACTIVE            '/dev/DATA/data_film' [558,98 GiB] inherit
  ACTIVE            '/dev/VolGroup/lv_root' [50,00 GiB] inherit
  ACTIVE            '/dev/VolGroup/lv_home' [67,95 GiB] inherit

/dev/DATA est maintenant accessible ;-)

Vous pouvez l’assigner directement à une VM par l’interface graphique de Virt-Manager.

Prochainement, des articles sur LemonLdap-ng (web SSO, serveur CAS, Ldap)….

Publié dans Système | Marqué avec , , , , , | Laisser un commentaire

Sript de restauration de configuration Nagios – Centreon (Fan)

Bonjour, voici le script associé à mon précédant billet

#!/bin/bash
#
#Script de restauration de sauvegarde Nagios(3.x)-Centreon(2.x)
#Version 1.0
#
#A utiliser uniquement avec le résultat du script BackUp
#
#Par Hervé Vanmeerbeck 
#############################################

echo -e "\n\n\nRemise en place de votre configuration de Centreon\n"
 
# Repertoire courant + repertoire où sont les sauvegardes
rep=`pwd`
rac=/root/Sauvegardes
 
# Selection du fichier de sauvegarde
echo -e "Liste des fichiers de sauvegarde disponibles :"
ls -l /root/Sauvegardes/CentConf-*
read -p "Entrez la date (Jour) de la sauvegarde a importer -- exemple 'jeudi' :  " choix
 
# Arret des services de supervision
supervision stop
 
# Decompression du fichier ZIP de sauvegarde
echo -e "\n Décompression des fichiers ...... \n"
 
tar xzf $rac/CentConf-$choix.tar.gz
tar xzf $rac/CentHist-$choix.tar.gz
tar xf $rep/BackUpCentreon/conf_nagios.tar
tar xf $rep/BackUpCentreon/logs_nagios.tar
tar xf $rep/BackUpCentreon/logs_centreon.tar
tar xf $rep/BackUpCentreon/conf_centreon.tar
tar xf $rep/BackUpCentreon/confs_apache.tar
tar xf $rep/BackUpCentreon/confs_cron.tar
tar xf $rep/BackUpCentreon/confs_init.tar
tar xf $rep/BackUpCentreon/vues_centreon.tar
echo -e "Terminé"
 
# Importation des bases de donnees
echo -e "\n Réstauration de la base de donnée..... \n"
 
cd $rep/BackUpCentreon
mysql -u root centreon2 < BdD_centreon.sql
mysql -u root centreon2_storage < BdD_storage.sql
mysql -u root nagios < BdD_ndo.sql
echo -e "Terminé"
 
# Suppression du dossier temporaire
cd $rep
rm -r BackUpCentreon
 
# Relance des services de supervision
supervision start
echo -e "\n\nRestauration terminee\n"

Utilisation :
./restore

La liste des différentes archives de sauvegarde vous sera présenté, ensuite saisissez simplement le jour (exemple « jeudi ») de la sauvegarde que vous souhaitez retaurer.

Publié dans Développement, Réseaux | 2 commentaires

Script de contrôle des services de supervision (FAN)

Voici un script pour contrôler les différents service de supervision de la distribution FAN (Fully Automated Nagios).

Le script est à copier dans le dossier /bin si vous désirez l’utiliser de n’importe où.
Note : Pensez à autoriser l’execution du script (chmod +x )

#!/bin/sh
#
#Script de lancement / arret des services Nagios(3.x)-Centreon(2.x)
#Version 1.0
#
#
#
#Par Hervé Vanmeerbeck 
#############################################

# Recuperation du parametre
case $1 in
 
start)
echo -e "\n ... Demarage du centre de supervision ... \n\n"
/etc/init.d/nagios start
/etc/init.d/centcore start
/etc/init.d/centstorage start
;;
 
stop)
echo -e "\n ... Arret du centre de supervision ... \n\n"
/etc/init.d/nagios stop
/etc/init.d/centcore stop
/etc/init.d/centstorage stop
;;
 
status)
/etc/init.d/nagios status
/etc/init.d/centcore status
/etc/init.d/centstorage status
;;
 
restart)
$0 stop
$0 start
;;
*)
echo "Usage: supervision {start|stop|status|restart}"
exit 1
;;
esac
 
# End of script
Publié dans Développement, Réseaux | Un commentaire

Script de sauvegarde Nagios – Centreon (FAN)

Bonjour, aujourd’hui, je vous propose un script de sauvegarde pour la distribution FAN (Fully Automated Nagios).

Il permet de sauvegarder les différents fichiers de configuration de Nagios et Centreon ainsi que l’historique associé (Mysql).

#!/bin/sh
#
#Script de sauvegarde Nagios(3.x)-Centreon(2.x)
#Version 1.0
#
#A utiliser avec les scripts 'RestoreCentreon' et backUpMail.
#
#Par Hervé Vanmeerbeck
#############################################

# Arret des services de supervision
supervision stop
 
# Creation d'un dossier temporaire
mkdir /BackUpCentreon
cd /BackUpCentreon
 
# Compression des fichiers de configuration, des vues et des logs
echo -e "\n Précompression des fichiers \n"
tar cf conf_nagios.tar /etc/nagios
tar cf logs_nagios.tar /var/log/nagios
tar cf logs_centreon.tar /var/log/centreon
tar cf conf_centreon.tar /usr/share/centreon/cron /usr/share/centreon/filesGeneration /usr/share/centreon/lib
tar cf confs_apache.tar /etc/httpd/conf.d/centreon.conf /etc/httpd/conf.d/nagios.conf
tar cf confs_cron.tar /etc/cron.d/centreon /etc/cron.d/centstorage
tar cf confs_init.tar /etc/init.d/nagios /etc/init.d/ndo2db /etc/init.d/centcore /etc/init.d/centstorage
tar cf vues_centreon.tar /var/lib/centreon/metrics /var/lib/centreon/nagios-perf /var/lib/centreon/status
 
# Sauvegarde des bases de donnees
echo -e "\n Sauvegarde de la base de donnée... \n"
mysqldump -u root --opt centreon2 > BdD_centreon.sql
mysqldump -u root --opt centreon2_storage > BdD_storage.sql
mysqldump -u root --opt nagios > BdD_ndo.sql
 
# Relance des services de supervision
supervision start
 
# Définition du path où sont les sauvegardes
rep=/root
 
# Creation des fichiers ZIP de sauvegarde
echo -e "\n Compression des fichiers... \n"
jour=`date +%A`
if [ -e $rep/Sauvegardes/CentConf-$jour.tar.gz ]; then
rm $rep/Sauvegardes/Cent*-$jour.tar.gz
fi
tar czf $rep/Sauvegardes/CentConf-$jour.tar.gz /BackUpCentreon/conf_nagios.tar /BackUpCentreon/conf_centreon.tar /BackUpCentreon/confs_apache.tar /BackUpCentreon/confs_cron.tar /BackUpCentreon/confs_init.tar /BackUpCentreon/BdD_centreon.sql
tar czf $rep/Sauvegardes/CentHist-$jour.tar.gz /BackUpCentreon/logs_nagios.tar /BackUpCentreon/logs_centreon.tar /BackUpCentreon/vues_centreon.tar /BackUpCentreon/BdD_storage.sql /BackUpCentreon/BdD_ndo.sql
 
# Suppression du dossier temporaire
rm -R /BackUpCentreon
 
# Modification des droits sur les fichiers
chmod 750 $rep/Sauvegardes/Cent*-$jour.tar.gz
chown root:root $rep/Sauvegardes/Cent*-$jour.tar.gz
echo -e "\n Back-Up Terminé! \n"
 
# End of script

Utilisation : ./Backup

Publié dans Développement, Réseaux | 17 commentaires