View Full Version : Backup - Restauration + Dimensionnement
floyd
05-25-2007, 05:22 PM
Bonjour à tous,
Je pense que ces sujets ont été déjà abordés sur le forum mais je désirerais des précisions supplémentaires.
La configuration dont nous parlons sera : Centos 4.4 - Nagios 2.9 - Oreon 1.4 patché
Pour effectuer un backup complet du serveur Oreon/Nagios/reporting... bref tout le tintouin... Suffit-il de sauvegarder
- le répertoire /usr/local/nagios/
- le répertoire /usr/local/oreon/ (comprenant les RRDs)
- le fichier /etc/init.d/ods
- le fichier /etc/cron.d/oreon
- les bases Mysql Oreon et OreonODS
Si tout cela est sauvegardé, cela suffit-il à restaurer une machine qui aurait planté et à repartir presque "comme si de rien n'était ? (Evidemment je pense que les graphes aurons des trous, mais bon...)
Concernant le dimensionnement, je parle au niveau du disque dur principalement, avez-vous des retours d'expérience ?
-> taille de la base de données SQL?
-> taille des fichiers RRD ?
Un rapide calcul concernant les RRD serait facile en considérant la taille moyenne (je sais ce n'est pas facile à dire, chez moi ~ 300ko) multipliée par le nombre de services ("graphables")/hôtes supervisés.
Mais je ne serais pas non plus contre des stats concernant vos serveurs Nagios !
Merci du temps que vous m'accorderez !
Floyd
floyd
05-30-2007, 04:33 PM
Non ? Personne ?
Au moins suis-je chaud sur la manière de backuper mon serveur nagios/oreon ?
Merci :)
jomonbre
05-30-2007, 05:19 PM
Je ne sais pas, je n'ai pas essayé (encore), mais ça a l'air d'être correcte.
De toutes façonnes, j'essaierais avec une machine virtuelle... As-tu essayé qemu?
il est vrai que le plus simple et le plus sur est d'utiliser une machine virtuelle et d'en faire une sauvegarde...
En même temp je ne me suis jamai poser de question sur la sauvegarde du serveur... (j'aurai p'être du d'ailleurs ^^)
sinon ce que tu propose m'a l'air correcte... faut tester ^^
oublie pas si tu teste de nous informer de la suite des évènements :p
floyd
05-31-2007, 11:34 AM
Cette question est même cruciale !!!
Cette méthode pourrait aussi être utilisée pour une migration de serveur.
Personne n'a tenté ça non plus ??
La méthode de la machine virtuelle me semble la plus sûre et rapide.
J'essaierai si j'ai le temps.
Si quelqu'un essaie ça serait vraiment utile à tout le monde d'avoir un retour d'expérience.
Je repose ma question (qui est aussi importante pour moi) :
- nombre d'hôtes/services supervisés ?
- taille des bases de données ?
- nombre et tailles des fichiers RRDs ?
- Depuis combien de temps le serveur tourne aussi ;)
Voili, voilou !
kurty100
05-31-2007, 12:31 PM
Pour faire un backup je me sert de l'exportation de la base de données (options > database > extraire), ensuite quand tu veux recharger tu exécute la requète sql sur la nouvelle base installée.
floyd
05-31-2007, 03:19 PM
Ok, mais ceci ne me garde pas tous les fichiers RRD -> donc plus de graph :/
Au pire tu utilises systemimager pour faire une image complète de ta machine.
floyd
05-31-2007, 04:21 PM
Oui mais j'aimerais éviter cette éventualité-là.
Je préfèrerais une solution plus "classique" de backup complète.
reiben
06-05-2007, 10:33 AM
Bonjour, le sujet est intéressant, je dispose d'une image virtuelle , je vais en faire la sauvegarde puis j'essaierai ta methode pour voir si elle marche.
Par contre je vois pas trop a quoi sert de sauvegarder le fichier le fichier /etc/init.d/ods . Pour moi c'est un script de démarrage.
floyd
06-05-2007, 01:22 PM
Oui c'est juste pour être exhaustif ;-)
Et merci beaucoup pour ton retour !!!
reiben
06-06-2007, 05:38 PM
Salut, bon toujours pas de retour. Par contre je me posais ces questions :
en théorie il suffit juste de sauvegarder la ou les bases de données :
oreon (3,7 Mo chez moi)
ods (103,2 Mo)
Je n'ai pas d'autres bases mysql.
Pour ODS j'ai configuré uniquement en utilisant RRD comme type de stockage.
La base ods c'est celle qui contient mes fichiers RRD?
Bon si elle ne les contient pas il faudra que je sauvegarde tous les fichiers RRD. (dans le dossier /usr/local/oreon/rrd et /usr/local/oreon/OreonDataStorage)
Enfin je suppose si c'est un crash total machine (reinstallation nouveau disque dur + os), il faudra reinstaller tous les paquets utiles...
Tous les fichiers et dossiers dont tu as parlés mais aussi /etc/apache2/conf.d/oreon.conf
PS : je supervise 20 machines et 89 services depuis a peu pres 1 mois.
floyd
06-06-2007, 06:10 PM
Oui en plus des bases de données il faut sauvegarder /usr/local/oreon/rrd et /usr/local/oreon/OreonDataStorage.
Les fichiers *.rrd servent pour les "vues Oreon".
La base de données ODS pour le reporting.
Oui c'est vrai, il faut en plus :
/etc/oreon.conf
/etc/httpd/conf.d/oreon.conf
/etc/httpd/conf.d/nagios.conf
ouf ! C'est tout je pense !
Ok merci pour la taille de ta base de données.
Par contre combien de fichiers RRD as-tu ? Et leur taille en moyenne ?
Thx !
reiben
06-07-2007, 11:35 AM
Bonjour, je viens de tester ce matin la sauvegarde et la restauration ont l'air de fonctionner, je vais laisser tourner la journée pour voir si ca bug pas.
J'utilise nagios 2.9, oreon 1.4 sur ubuntu lamp version 6.10 Edgy Eft.
Voici ma démarche :
En ligne de commande :
Sauvegarde des bases de données
$ mysql -u root -p
Enter password :
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| oreonbd |
| oreonodsbd |
+--------------------+
mysql> QUIT;
$ mkdir backup_nagios_oreon
$ cd backup_nagios_oreon
$ mysqldump -u root -p oreonbd > oreonbd_bck070607.sql
Enter password :
$ mysqldump -u root -p oreonodsbd > oreonodsbd_bck070607.sql
Enter password :
On vient de sauvegarder les deux bases de données. Si vous en avez plus, adaptez ceci à votre configuration.
Sauvegarde des dossiers nagios et oreon et autres fichiers
$ cd ../backup_nagios_oreon
$ sudo tar cvzf nagios_oreon_save.tar.gz /usr/local/nagios/ /usr/local/oreon/ /etc/init.d/ods /etc/init.d/nagios /etc/cron.d/oreon /etc/oreon.conf /etc/apache2/conf.d/oreon.conf
Si vous avez l'interface nagios activée intégrez aussi le fichier à l'archive /etc/apache2/conf.d/nagios.conf (ou /etc/httpd/conf.d/oreon.conf
/etc/httpd/conf.d/nagios.conf en fonction de votre distribution linux).
Suppression des fichiers pour simulation de crash...
Restauration des fichiers (cela suppose tous les paquets pré-requis installés)
Placez l'archive à la racine /
$ cd /
$ sudo tar xvzf nagios_oreon_save.tar.gz
Restauration des bases de données
$ cd ../backup_nagios_oreon/
$ mysql -u root -p
Enter password :
mysql> CREATE DATABASE oreonbd;
mysql> CREATE DATABASE oreonodsbd;
mysql> QUIT;
$ mysql -u root -p oreonbd < oreonbd_bck070607.sql
Enter password :
$ mysql -u root -p oreonodsbd < oreonodsbd_bck070607.sql
Enter password :
Cette deuxième ligne prendra du temps en fonction de la taille de votre base de données (plus de 100 Mo chez moi).
Relancer les démons
$ sudo /etc/init.d/nagios start
$ sudo /etc/init.d/ods start
c0bw3b
06-07-2007, 12:01 PM
Et hop un vote 5 étoiles pour ce topic parce que il le mérite largement !
La question m'intéressait aussi, je crois que maintenant on a carrément un tuto complet pour remettre en place rapidement sa supervision en cas de problème.
Tu nous diras si tout marche au poil dans la journée. :D
reiben
06-07-2007, 12:02 PM
Re, pour la taille des fichiers rrd voici ce que j'obtiens :
$ du -h OreonDataStorage/
598M OreonDataStorage/ /* 157 fichiers */
$ du -h rrd/
26M rrd/ /* 74 fichiers */
Soit environ 3.8 Mo pour chaque fichier de OreonDataStorage/ (a savoir qu'ils ont tous la meme taille) et entre 300 et 400 Ko pour les fichiers de rrd/
reiben
06-07-2007, 12:06 PM
Salut , effectivement cela pourrait servir de tuto :) . Enfin il faudrait quelqu'un pour confirmer ma démarche ^^ et après on pourra mettre ca dans un wiki :)
floyd
06-07-2007, 12:09 PM
Salut,
Bon ben si ça tourne nickel c'est génial.
Je pense que je vais aussi faire une simulation (sur un autre serveur que j'installe cette après-midi)
Merci pour tes stats reinben ;)
reiben
06-07-2007, 05:03 PM
Bon ca fait bientot 6 H que ca tourne et aucun probleme en vue.
J'ai redémarré la machine et nagios et ods se lancent bien automatiquement au démarrage.
Je vais repartir de la sauvegarde de l'image virtuelle (pourquoi? je sais pas je suis parano peut-etre :) ).
Par contre il faudrait reflechir a une externalisation de la sauvegarde et qu'elle soit faite de façon automatique.
Si vous avez des idées je suis preneur.
floyd
06-08-2007, 09:42 AM
Externaliser la sauvegarde, tu entends quoi par là ?
L'automatiser ?
Le fait de pouvoir la lancer depuis une autre machine ?
reiben
06-08-2007, 04:29 PM
Salut, externaliser la sauvegarde : ce serait par exemple de sauvegarder les fichiers sql et les dossiers sur un autre serveur.
Automatiser : peut-etre utiliser des scripts pour faire ca... :)
Mais bon j'avoue ne pas maitriser cela, je ne fais que proposer ^^
Ca fera encore plus "pro" une "vraie" sauvegarde :)
c0bw3b
06-08-2007, 04:52 PM
Bah un shellscript qui fait toutes les commandes que t'as mises dans ton tuto, t qui finit par du SSH, du scp ou du rsync, et tu met tes sauvegardes au chaud. ^^
reiben
06-08-2007, 05:13 PM
Salut ok avec un petit coup de cron et le tour est joué :)
ludo_x
06-19-2007, 04:55 PM
Excellent post !
Merci :)
reiben
06-20-2007, 12:25 PM
Salut, je fais part de mon experience de migration.
J'ai refait une installation propre sur le nouveau serveur :
paquets pre-requis
nagios 2.9
nagios plugin 1.4.8
oreon 1.4
(en suivant le wiki dispo pour ubuntu)
J'ai oreon 1.4 non patché (mais mes sauvegardes ont été faites avec oreon patché)
Je suis allé sur l'interface oreon pour faire comme une premiere installation.
Des que j'ai pu me loguer, j'ai effectué ma procédure de restauration décrite dans ce post.
Ca marche :)
PS : j'ai bien des trous dans les graphes mais c'est normal. J'ai repris l'ancienne adresse ip pour le nouveau serveur pour ne pas m'embeter a reconfigurer snmp sur tous les hosts
smarechal
08-03-2007, 03:52 PM
Salut,
Au bout de 2 jours mon répertoire OreonDataStorage fait 1.2Go:
centreon:/usr/local# du -h oreon/OreonDataStorage/
395M oreon/OreonDataStorage/backup
1,2G oreon/OreonDataStorage/
Mais je pense qu'il y'a quelquechose d'anormal:cool:
icedance
10-02-2007, 11:59 AM
une fois que le fichier tar.gz est dézippé, il y a perte des droits qui existait ou pas ?
utilise l'option -p de TAR
extrait du man:
-p, --same-permissions, --preserve-permissions
icedance
10-02-2007, 12:56 PM
super merci je ne connaissait pas
icedance
10-02-2007, 06:00 PM
si ca peu aider des gens .j'ai fait deux scripts ( pas forcement secure parce que mot de passe en clair dans le code hein mais bon ca peut dépanner )
avantage pas besoin d'intervention humaine.
remarque : dans les commande mysql j'ai pas d'espace entre les -p et le mot de passe et c'est normal.
Les paths peuvent changer d'une machines a une autre
backup.sh
echo "--Sauvegarde sql--"
mysqldump -u admin -pmdp mysql > mysql_bkp.sql
mysqldump -u admin -pmdp oreon > oreon_bkp.sql
mysqldump -u admin -pmdp ods > ods_bkp.sql
mysqldump -u admin -pmdp information_schema > information_schema_bkp.sql
# j'ai la weather map d'installée c'est pour ca que j'ai la derniere table )
echo "--Sauvegarde fichiers au format tar.gz--"
tar cvzf nagios_save.tar.gz /usr/local/nagios/ /usr/local/oreon/ /etc/init.d/ods /etc/init.d/nagios /etc/oreon.conf /etc/apache2/conf.d/oreon.conf /etc/apache2/httpd.conf ./mysql_bkp.sql ./oreon_bkp.sql ./ods_bkp.sql ./information_schema_bkp.sql /etc/postfix/main.cf
#j'ai ajouté le fichier de config de postfix et les fichiers sql que l'on vient de créer
echo "--Sauvegarde terminée--"
echo "--Delete des fichiers temporaires--"
rm ./mysql_bkp.sql ./oreon_bkp.sql ./ods_bkp.sql ./information_schema_bkp.sql
echo "--transfert vers serveur de backup--"
wput ./nagios_save.tar.gz ftp://login:mdp@serveur/centreon/
#paquet wput peut etre a installé car sauvegarde sur un FTP
echo "--suppression de l'archive--"
rm ./nagios_save.tar.gz
et le restore.sh
echo "--transfert vers serveur de backup--"
wget ftp://login:mdp@serveur/centreon/nagios_save.tar.gz
echo "--dezippe de l'archive avec les meme droits--"
tar -p xvzf nagios_save.tar.gz
# le fameux -p merci Watt
echo "--Création des tables sql--"
mysql -u admin -pmdp -e "create database oreon";
mysql -u admin -pmdp -e "create database mysql";
mysql -u admin -pmdp -e "create database ods";
mysql -u admin -pmdp -e "create database information_schema";
echo "--Remplissage de la base--"
mysql -u admin -pmdp mysql < mysql_bkp.sql
mysql -u admin -pmdp oreon < oreon_bkp.sql
mysql -u admin -pmdp ods < ods_bkp.sql
mysql -u admin -pmdp information_schema < information_schema_bkp.sql
echo "--Delete des fichiers temporaires--"
rm ./mysql_bkp.sql ./oreon_bkp.sql ./ods_bkp.sql ./information_schema_bkp.sql
echo "--suppression de l'archive--"
rm ./nagios_save.tar.gz
echo "--transfert vers serveur de backup--"
plus qu'a relancé nagios et ods ou alors la machine ( sacrilège )
et reppassé le script de backup dans /etc/init.d/
pourquoi c'est pas dans le script ? parce que l'on doit etre admin sur la machine pour faire ca...
et pour finir on peux jouer avec des variables pour faire un backup qui comprend la date. Mais j'en avait pas l'utilité vu que ma sauvegarde est hebdomadaire
testé chez moi et ca passe.
Voila voila
Salut,
si tu ne veux pas mettre ton mot de passe en clair, utilise l'utilisateur oreon pour faire les backups
MYSQL_BIN="mysqldump"
MYSQL_USER=$(grep user /opt/oreon/www/oreon.conf.php | awk -F= '{print $2}' | awk -F; '{print $1}')
MYSQL_PASSWD=$(grep password /opt/oreon/www/oreon.conf.php | awk -F= '{print $2}' | awk -F; '{print $1}')
MYSQL_COMMAND="$MYSQL_BIN -u $MYSQL_USER -p$MYSQL_PASSWD"
$MYSQL_COMMAND oreon > oreonsql.sav
$MYSQL_COMMAND ods > odssql.sav
ya surement mieux, mais ce sont des idées :)
icedance
10-02-2007, 06:54 PM
Salut,
si tu ne veux pas mettre ton mot de passe en clair, utilise l'utilisateur oreon pour faire les backups
MYSQL_BIN="mysqldump"
MYSQL_USER=$(grep user /opt/oreon/www/oreon.conf.php | awk -F= '{print $2}' | awk -F; '{print $1}')
MYSQL_PASSWD=$(grep password /opt/oreon/www/oreon.conf.php | awk -F= '{print $2}' | awk -F; '{print $1}')
MYSQL_COMMAND="$MYSQL_BIN -u $MYSQL_USER -p$MYSQL_PASSWD"
$MYSQL_COMMAND oreon > oreonsql.sav
$MYSQL_COMMAND ods > odssql.sav
ya surement mieux, mais ce sont des idées :)
ouai c'est vrai je sais bien
non mais c'est le truc de base que je propse
ceux qui s'y conaisse assez auront pas besoin de ca.
Il feront a leur sauce.
On peux aussi rendre le fichier lisible que par certain user. si possible pas celui courant.
De toute facon quand il passe dans le script il est montré en xxx le mdp sur l'écran
pi puis de tt facon, sur ton serveur de backup comme sur le serveur de supervision, dois pas y avoir bcp de monde qui accede ? :)
Au pire ta que Root, et franchement Root il t'en tape des mots de passe des users, C'EST LE PLUS FORT XD
icedance
10-03-2007, 02:18 PM
ha mince j'ai pas fait gaffe mais le module weather map ne fonctionne plus ...
il est considéré comme non installé
et si je réinstal plus rien
comment il faut faire ?
une idée ?
icedance
10-03-2007, 05:39 PM
ha une piste lors de la restauration les tables de la WM ne sont pas recréées.
De la a comprendre pourquoi!
Si quelqu'un a une idée encore une fois :)
EDIT : je suis un boulet j'ai une erreur dans le restore ... un vieux copier collé ... je corrige je reviens plus tard
Aviscdr
02-21-2008, 09:53 AM
Bonjour,
J'ai rencontré quelques soucis lorsque le tar est effectué chaque soir via un crontab. En effet, le (ou les) fichier(s) perfdata sont écris/parsés régulièrement, ce qui peut gêner voir empêcher le bon déroulement de la sauvegarde.
Il suffit alors d'ajouter dans le script de sauvegarde, sous fedora, cette ligne avant la commande tar:
service ods stop
Et après la commande tar:
service ods start
Pour info, j'utilise le package nagios fourni avec fedora core 6 ainsi que centreon 1.4.2.3.
J'utilise la commande tar suivante:
tar -zcf /tmp/backup/nagios/nagios_centreon.tar.gz \
/usr/local/nagios/ /etc/nagios/ /usr/lib/nagios/plugins/ \
/var/log/nagios/ /usr/share/nagios/ /usr/local/centreon/ \
/etc/init.d/ods /etc/init.d/nagios /etc/oreon.conf \
/etc/httpd/conf.d/oreon.conf /etc/httpd/conf/httpd.conf \
mysql.sql centreon.sql centreonstorage.sql information_schema.sql
Bon courage :-)
Edit: A priori ça m'a généré un trou d'environ 2 heures dans mes graphiques, mais j'ai pas saisi pourquoi.
Le script de backup est exécuté à 22 heures et dure 10 minutes, les trous commencent à 23:30 ... ?!?
-Archi-
02-21-2008, 11:01 AM
Personnellement je ne conseillerais pas de stop/start le service ods pour faire une sauvegarde. En effet, le fait de l'arrêter stoppe le traitement de la copie courante du fichier service-perfdata, et lors du redémarrage toutes les données qui n'avaient pas pu être traitées sont perdues car écrasées par les nouvelles, ce qui génère un trou plus ou moins grand. Par contre, étrange que le trou commence 1h30 après...
Aviscdr
02-21-2008, 11:35 AM
Note que je suis d'accord, mais dans ce cas comment permettre à tar d'archiver les deux fichiers lors de la sauvegarde ?
Une option dans le man que j'ai loupé ?
Il faut peut-être les exclure mais quid des graphiques lors d'une restauration ?
Edit: Curieusement lors du backup à 22 heures je n'ai aucun trou, c'est parfaitement continu (en réalité le backup dure 35 secondes).
-Archi-
02-21-2008, 02:04 PM
Effectivement les ignorer serait la bonne solution. Les fichiers service-perfdata n'ont aucune importance pour une restauration, au pire tu perds quelques minutes de données non encore remontées en base, ce qui est équivalent à arrêter/redémarrer le service.
Aviscdr
02-22-2008, 11:30 AM
Bonjour.
Le "service start ou stop" n'était pas responsable du trou. C'est une faute de frappe dans mon sendmail.mc qui a fait monter le load trop haut[/ma_vie].
Mon installation étant jeune, ma sauvegarde dure moins d'une minute et ne génère aucun trou.
En prévision d'une sauvegarde très longue, j'ai exclu les deux fichiers lors de ma commande tar.
Bonne journée, merci du conseil.
slimfast
11-10-2008, 06:34 PM
Bonjour,
J'ai testé la solution et tout marche bien sauf le reporting qui commence à la date de mise en place du nouveau serveur, j'ai pas les archives.
Niveau graphes par contre tout est là.
Aurais-je oublié des fichiers?
Quelqu'un a une idée?
Nagios 2.12 Centron 1.4.2.7
slimfast
11-17-2008, 12:05 PM
il faut copier les archives de logs de nagios:
/usr/local/nagios/var/archives/