Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Make by tools (01.00.01) - action=same_as_next_version
Scroll Ignore
scroll-viewporttrue
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmltruefalse
Panel
titleSommaire

Table of Contents
stylenone

Description

Concept

Shinken ne fournit pas de commandes natives pour sauvegarder ou restaurer une rétention. Cette page décrit le protocole à suivre pour effectuer ces opérations manuellement.

La procédure de sauvegarde et de restauration dépend du En fonction du type du module de rétention utilisé par votre ( ou vos ) Schedulers, il y a deux méthodes pour sauvegarder et restaurer la rétention :vos Scheduler :


Sauvegarde et restauration de la rétention avec le module PickleRetentionFile

Où trouver la rétention Pickle

Lorsque le module PickleRetentionFile est utilisé, la sauvegarde de la rétention se fait rétention est sauvegardée dans un fichier situé à la destination suivante , situé par défaut dans le répertoire suivant : /var/lib/shinken/

Les fichiers de rétention sont nommés en suivant ce format :

Code Block
retention.dat_--_realm--REALM_NAME_--_scheduler--SCHEDULUER_NAME_--_id--SCHEDULER_ID.retention

Avec :

NomExempleDescriptionREALM_NAMEAllNom du royaumeSCHEDULER_NAMEscheduler-masterNom du SchedulerSCHEDULER_ID0Id du Scheduler

.

Ce chemin peut toutefois varier selon la configuration spécifique des modules PickleRetentionFile utilisés par les Scheduler ( voir la page Module PickleRetentionFile ( Rétention par fichier plat ) ).

Voici un exemple complet de nom de fichier de rétention Pickle : 

Code Block
languagetext
themeEmacs
/var/lib/shinken/

Exemple de fichier : 

Code Block
retention.dat_--_realm--all_--_scheduler--scheduler-master_--_id--0.retention
Info

Il peut y avoir plusieurs fichiers de rétention dans /var/lib/shinken/ si vous avez plusieurs royaumes et / ou plusieurs Schedulers.

Pensez à vérifier que vous les avez tous sauvegardés.

Comment sauvegarder la rétention Pickle

Pour sauvegarder ces les fichiers de rétention, il suffit de les copier à l'endroit souhaité avec la commande cp <source> <destination> :vers l'emplacement choisi en veillant à préserver leur intégrité et leurs permissions :

Code Block
languagetext
themeEmacs
cp -a
Code Block
cp /var/lib/shinken/retention.dat_--_realm--all_--_scheduler--scheduler-master_--_id--0.retention /root/retention_save/

Cette commande va copier le fichier de rétention retention.dat_--_realm--all_--_scheduler--scheduler-master_--_id--0.retention dans le dossier /root/retention_save/

Info
  • Le dossier de destination /root/retention_save/ doit exister avant de lancer la commande.
  • Le dossier de destination /root/retention_save/ n'est qu'un exemple, choisissez un endroit que vous retiendrez.


  • -a : permet de préserver les droits et métadonnées du fichier

Comment restaurer la rétention Pickle

Restauration des fichiers de rétention

Pour restaurer un fichier de rétention Pickle, il suffit de le remettre à l'endroit depuis lequel ils ont été copiés : faut le copier dans le dossier /var/lib/shinken/ :

Attention, la commande cp écrase la destination !

Avant de restaurer les fichiers Pickle, assurez-vous qu'il n'y a pas de fichier du même nom dans /var/lib/shinken/, ou assurez-vous de les sauvegarder si besoin.
Code Block
languagetext
themeEmacs
cp -a /root/retention_save/retention.dat_--_realm--all_--_scheduler--scheduler-master_--_id--0.retention /var/lib/shinken/ 
Warning

Redémarrage du Scheduler

Après avoir restauré les fichiers de rétention, il faut redémarrer le Scheduler pour que les changements soient pris en compte :

Code Block
languagetext
themeEmacs
service shinken-scheduler restart

Anchor
saveMongodbRetention
saveMongodbRetention

Sauvegarde et restauration de la rétention avec le module MongodbRetention

se trouve

trouver la rétention

dans

Mongo

Avec Lorsque le module MongodbRetention est utilisé, la rétention se trouve est sauvegardée dans la base base shinken par défaut ) dans les collections de MongoDB ( voir la page Module MongodbRetention ( Rétention en base de données centralisée par royaume ) ), au sein des collections retention_hosts_raw et retention_services_raw. 

Info

Il est impératif de sauvegarder et de restaurer les deux collections pour garantir l’intégrité de la rétention.

Note

Pensez à vérifier que vous n'avez pas changé le nom de la base par défaut ( shinken )

Comment sauvegarder la rétention

MongodbRetention

Mongo

Avant de lancer la sauvegarde

Avant de procéder à la sauvegarde de sauvegarder la rétention, il est conseillé ( si possible ) de redémarrer le Scheduler afin de forcer la mise à jour de la rétention , et donc d'avoir et d’obtenir ainsi des données plus fraiches fraîches

Code Block
languagetext
themeEmacs
service shinken-scheduler restart

Anchor
mongodumpCommand
mongodumpCommand

Sauvegarder la rétention

Détails de la commande

Pour enregistrer les données de ces collections, on utilise la commande mongodump la rétention, il faut lancer les deux commandes suivantes :


Code Block
languagetext
themeEmacs
mongodump -d DATABASE_NAMEshinken -c COLLECTION_NAME -h HOST_NAME -p HTTP_PORT --ssl -o OUTPUT_NAME

Explication des paramètres :

ParamètreObligatoireExempleDescription
Code Block
-d DATABASE_NAME
OuishinkenNom de la base Mongo
Code Block
-c COLLECTION_NAME
Ouiretention_hosts_rawNom de la collection Mongo
Code Block
-h HOST_NAME
Non192.168.1.25Adresse IP ou nom de l'hôte où se trouve la base MongoDB utilisée par le Scheduler pour sauvegarder sa rétention. Non nécessaire si la commande est lancée sur le même serveur.
Code Block
-p HTTP_PORT
Non4567Port HTTP du serveur où se trouve la base MongoDB utilisée par le Scheduler pour sauvegarder sa rétention. Non nécessaire si la commande est lancée sur le même serveur.
Code Block
--ssl
Non-Si votre base MongoDB utilise le SSL, il faut préciser cet option.
Code Block
-o OUTPUT_NAME
Nonretention_hosts_11_10_2021Nom du fichier de sortie de la commande. Ce paramètre est optionnel, mais nous vous recommandons de donner un nom parlant au dossier créé par mongodump. Si ce paramètre n'est pas renseigné, alors le dossier sera nommé dump.
Info

Pour savoir quels paramètres utiliser, vous pouvez vous référer au fichier de configuration de votre Scheduler, par défaut ici : /etc/shinken/schedulers/scheduler-master.cfg

Ces deux commandes vont créer deux dossiers à l'emplacement /root/retention_mongo/ assurez vous que ce chemin existe ) nommés retention_hosts_11_10_2021 et retention_services_11_10_2021 contenant des fichier .json et .bson qui contiennent les données des collections correspondantes.

Quelques exemples de mongodump

Sauvegarde de la rétention sur une MongoDB en local

Pour sauvegarder la rétention dans deux dossiers retention_hosts_11_10_2021 et retention_services_11_10_2021 depuis un MongoDB sur le même serveur où ces commandes sont lancées :

Code Block
mongodump -d shinken -c retention_hosts_raw -o /root/retention_mongo/retention_hosts_11_10_2021
mongodump -d shinken -c retention_services_raw -o /root/retention_mongo/retention_services_11_10_2021
Sauvegarde de la rétention sur une MongoDB à distance

Pour sauvegarder la rétention dans deux dossiers retention_hosts_11_10_2021 et retention_services_11_10_2021 depuis un MongoDB sur un serveur hébergé sur un serveur nommé host_bordeaux avec le port 4679 :

Code Block
mongodump -d shinken -c retention_hosts_raw -h host_bordeaux -p 4679 -o /root/retention_mongo/retention_hosts_11_10_2021
mongodump -d shinken -c retention_services_raw -h host_bordeaux -p 4679 -o /root/retention_mongo/retention_services_11_10_2021
retention_hosts_raw -o /root/retention_mongo/ ( + MONGO_DB_CONNECTION_OPTIONS )
Code Block
languagetext
themeEmacs
mongodump -d shinken -c retention_services_raw -o /root/retention_mongo/ ( +  MONGO_DB_CONNECTION_OPTIONS )


  • shinken : nom de la base définie dans la configuration du module (voir la page Module MongodbRetention ( Rétention en base de données centralisée par royaume ) ).
  • /root/retention_mongo/ : dossier où seront sauvegardées les rétentions. Le chemin peut être absolu ou relatif ( dans ce dernier cas, le dossier sera créé à l’emplacement où la commande est exécutée ).
  • retention_hosts_raw / retention_services_raw : noms des collections où se trouvent les données de retentions. Ne pas les modifier dans la commande.
  • MONGO_DB_CONNECTION_OPTIONS : options de connexion à MongoDB. Ces options sont nécessaires si l’authentification, le chiffrement ou des paramètres spécifiques sont activés sur la base ( voir le chapitre Options de connexion à la base MongoDB ).



Note

Dans le cas d'un cluster MongoDB, il faut s'assurer de communiquer avec un mongos.


La commande crée les fichiers suivants :  

  • retention_hosts_raw.bson
  • retention_hosts_raw.metadata.json
  • retention_services_raw.bson
  • retention_services_raw.metadata.json


Anchor
Options de connexion à la base MongoDB
Options de connexion à la base MongoDB

Include Page
MongoDB - options de connexion à la base des commandes MongoDB
MongoDB - options de connexion à la base des commandes MongoDB

Exemple de sauvegarde

Sauvegarde de la rétention sur un MongoDB en local

Pour sauvegarder la rétention depuis un MongoDB sur le même serveur où les commandes sont lancées :

Code Block
languagetext
themeEmacs
Sauvegarde de la rétention sur une MongoDB qui utilise le SSL

Pour sauvegarder la rétention dans deux dossiers retention_hosts_11_10_2021 et retention_services_11_10_2021 depuis un MongoDB sur un serveur hébergé sur un serveur nommé host_bordeaux avec le port 4679 et utilisant le SSL :

Code Block
mongodump -d shinken -c retention_hosts_raw -h host_bordeaux -p 4679 --ssl -o /root/retention_mongo/retention_hosts_11_10_2021
mongodump -d shinken -c retention_services_raw -h host_bordeaux -p 4679 --ssl -o /root/retention_mongo/retention_services_11_10_2021
Info

Il faut faire la sauvegarde en local sur la machine.  Pour des raisons de sécurité, MongoDB écoute que sur l'interface locale ( localhost ).

Exemple de retour avec succès de la commande
note
Code Block
languagetext
themeEmacs
20212025-1006-12T1104T03:0958:12.823+020027.264-0400    writing shinken.retention_services_raw to /root/retention_hosts_11_10_2021mongo/shinken/retention_services_raw.bson
20212025-1006-12T1104T03:0958:12.823+020027.269-0400    writing shinken.retention_services_raw metadata to /root/retention_hosts_11_10_2021mongo/shinken/retention_services_raw.metadata.json
20212025-1006-12T1104T03:0958:12.825+0200    the collection shinken.retention_services_raw appears to have been dropped after the dump started
2021-10-12T11:09:12.825+020027.272-0400    done dumping shinken.retention_services_raw (4532 documents)


Si

sur

la dernière ligne du retour de la commande, il y a écrit "(0 documents)"

, alors il y a peut-être un problème quelque part, comme le nom de la collection qui n'est pas correcte.

:

  • La première sauvegarde de la rétention n'a pas encore eu lieu.
  • Les paramètres fournis sont incorrects. Vérifier le nom de la base, des collections. 

Comment restaurer la rétention MongodbRetention

Avant de sauvegarder la rétention

Avant d'effectuer la restauration de la rétention, il est conseillé d'éteindre le Scheduler :

Code Block
languagetext
themeEmacs
service shinken-scheduler stop

Anchor
mongorestoreCommand
mongorestoreCommand

Détails

La restauration des données issues

de la commande

mongodump se fait avec la commande mongorestore :

mongorestore

Pour restaurer la rétention, lancer la commande : 

Code Block
languagetext
themeEmacs
Code Block
mongorestore --drop RETENTION_FOLDER_PATH /root/retention_mongo/ ( +  MONGO_DB_CONNECTION_OPTIONS )


  • --drop : Permet de supprimer les collections de rétention présentes dans la base afin d’éviter toute incohérence.
  • /root/retention_mongo/ :Dossier contenant la sauvegarde de la rétention, créé par la commande mongodump ( voir le chapitre mongodump ).
  • MONGO_DB_CONNECTION_OPTIONS : Options de connexion à MongoDB. Nécessaire si l'authentification ou le chiffrement de la base est activé, ou si la base n'utilise pas les paramètres par défauts.



Include Page
MongoDB - options de connexion à la base des commandes MongoDB
MongoDB - options de connexion à la base des commandes MongoDB

Note

Dans le cas d'un cluster MongoDB, il faut s'assurer de communiquer avec un mongos.

Exemple de restauration 

Restauration d'une rétention sur un MongoDB en local

Cette commande va restaurer dans un MongoDB local les données contenues dans le dossier /root/retention_mongo/

Code Block
languagetext
themeEmacs

Il faut préciser à cette commande le dossier créé par la commande mongodump.

Warning

Ces commandes vont effacer toutes données de rétention actuellement présentes en base.

Exemple de commandes :

Code Block
mongorestore --drop /root/retention_mongo/retention_hosts_11_10_2021 
mongorestore --drop /root/retention_mongo/retention_services_11_10_2021
Info

Il faut faire la restauration en local sur la machine.  Pour des raisons de sécurité, MongoDB écoute que sur l'interface locale ( localhost ).

Exemple de retour avec succès
de la commande : 
d'une commande de restauration
Si sur l'avant
Code Block
languagetext
themeEmacs
20212025-1006-12T1104T04:1122:01.024+020019.606-0400    building a list of dbs and collections to restore from /root/retention_hosts_11_10_2021mongo/ dir
20212025-1006-12T1104T04:1122:01.026+020019.611-0400    reading metadata file from /root/retention_hosts_11_10_2021mongo/shinken/retention_services_raw.metadata.json
20212025-1006-12T1104T04:1122:01.026+020019.611-0400    restoring shinken.retention_services_raw from file retention_mongo/shinken/retention_services_raw.bson
2025-06-04T04:22:19.661-0400    reading metadata file from retention_mongo/rootshinken/retention_hosts_11_10_2021_raw.metadata.json
2025-06-04T04:22:19.661-0400    restoring shinken.retention_hosts_raw from file retention_mongo/shinken/retention_serviceshosts_raw.bson
2021-10-12T11:11:01.027+02002025-06-04T04:22:19.666-0400    restoring indexes for collection shinken.retention_services_raw from metadata
2025-06-04T04:22:19.700-0400    finished restoring shinken.retention_services_raw (4532 documents)
20212025-1006-12T1104T04:1122:01.027+0200    done
Note
19.701-0400    restoring indexes for collection shinken.retention_hosts_raw from metadata
2025-06-04T04:22:19.702-0400    finished restoring shinken.retention_hosts_raw (2 documents) 


Si la dernière ligne du retour de la commande, il y a écrit "(0 documents)" :

  • La première sauvegarde de la rétention n'a pas encore eu lieu.
  • Les paramètres fournis sont incorrects.
    • Vérifier le nom de la base, des collections. 

  • Il y a eu une erreur lors de la sauvegarde précédente. 

Après la restauration de la rétention

, alors il y a peut-être un problème quelque part, comme la commande mongodump qui s'est mal passée ( nom de collection incorrect par exemple )

Une fois la restauration terminée, vous pouvez redémarrer il faut redémarrer le Scheduler :

Code Block
languagetext
themeEmacs
service shinken-scheduler start