| Scroll Ignore |
|---|
| scroll-viewport | true |
|---|
| scroll-pdf | true |
|---|
| scroll-office | true |
|---|
| scroll-chm | true |
|---|
| scroll-docbook | true |
|---|
| scroll-eclipsehelp | true |
|---|
| scroll-epub | true |
|---|
| scroll-html | truefalse |
|---|
|
|
Shinken ne fournit pas de commandes natives La méthode 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 et restaurer manuellement la rétention dépend du type de module de rétention utilisé par vos Schedulers Scheduler :
| Info |
|---|
Vous trouverez plus d'information sur ces modules en suivant ces liens :
donnée
| Anchor |
|---|
savePickleRetention | savePickleRetention | 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 est sauvegardée dans un fichier situé au chemin , situé par défaut dans le répertoire suivant : /var/lib/shinken/
Le nom de ces fichiers respecte ce format :
| Code Block |
retention.dat_--_realm--REALM_NAME_--_scheduler--SCHEDULUER_NAME_--_id--SCHEDULER_ID.
retention| Nom | Exemple | Description |
|---|
All | Nom du royaume sauvegardé dans la rétention. | scheduler-master | Nom du Scheduler qui a effectué la rétention. | 0 | Id du Scheduler qui a effectué la rétention. | 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 |
|---|
|
/var/lib/shinken/ |
Exemple de nom de fichier :
| Code Block |
|---|
retention.dat_--_realm--all_--_scheduler--scheduler-master_--_id--0.retention |
| Info |
|---|
En fonction de votre configuration ( en fonction du nombre de royaumes et de Schedulers que vous avez ) il peut y avoir plusieurs fichiers dans le dossier /var/lib/shinken/Pensez à vérifier que vous avez sauvegardé tous les fichiers. |
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 |
|---|
|
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 nommé /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 où bon vous semble.
|
- -a : permet de préserver les droits et métadonnées du fichier
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/Si les fichiers ont été copiés dans un dossier nommé /root/retention_save/ , alors la commande pour restaurer la rétention devrait ressembler à ça :
| Code Block |
|---|
|
cp -a /root/retention_save/retention.dat_--_realm--all_--_scheduler--scheduler-master_--_id--0.retention /var/lib/shinken/ |
| Warning |
|---|
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. |
Après avoir restauré les fichiers de rétention, il faut redémarrer le Scheduler pour que les changements fassent effet soient pris en compte :
| Code Block |
|---|
|
service shinken-scheduler restart |
| Anchor |
|---|
| saveMongodbRetention |
|---|
| saveMongodbRetention |
|---|
|
Sauvegarde et restauration de la rétention avec le module MongodbRetention
Où
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 ), dans le cas contraire, il faudra changer le nom de la base dans la commande ( paramètre "-d" ) |
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 |
|---|
|
service shinken-scheduler restart |
| Anchor |
|---|
| mongodumpCommand |
|---|
| mongodumpCommand |
|---|
|
Détails de Sauvegarder la
commande mongodumprétention
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 |
|---|
|
mongodump -d DATABASE_NAMEshinken -c COLLECTION_NAME -h HOST_NAME -p HTTP_PORT --ssl -o OUTPUT_NAME |
Explication des paramètres :
| Paramètre | Obligatoire | Exemple | Description |
|---|
| Code Block |
|---|
-d DATABASE_NAME |
Oui | shinken | Nom de la base Mongo | | Code Block |
|---|
-c COLLECTION_NAME |
Oui | retention_hosts_raw | Nom de la collection Mongo | Non | 192.168.1.25 | Adresse 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. | Non | 4567 | Port 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. | Non | - | Si votre base MongoDB utilise le SSL, il faut ajouter cette option qui ne prend pas d'arguments. | Non | retention_hosts_11_10_2021 | Nom 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 - Il est possible d'utiliser plusieur fois le même OUTPUT_NAME, les données seront alors toutes sauvegardées dans le même dossier et donc peuvent être toutes restaurées avec qu'une seule commande mongorestore.
|
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 fichiers .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 sur un autre serveur
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 |
|---|
|
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 |
|---|
|
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 :
Sauvegarde de la rétention sur une MongoDB sur un autre serveur 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
| Code Block |
|---|
|
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) |
| Note |
|---|
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.
Avant de sauvegarder la rétention
Avant d'effectuer la restauration de la rétention, il est conseillé d'éteindre le Scheduler :
| Code Block |
|---|
|
service shinken-scheduler stop |
| Anchor |
|---|
| mongorestoreCommand |
|---|
| mongorestoreCommand |
|---|
|
Détails de la commande mongorestore
La restauration des données issues de la commande mongodump se fait avec la commande mongorestore :
Pour restaurer la rétention, lancer la commande :
| Code Block |
|---|
|
code |
mongorestore --drop --ssl -h HOST_NAME -p HTTP_PORT RETENTION_FOLDER_PATH |
| Paramètre | Obligatoire | Exemple | Description |
|---|
Non mais conseillé | - | Sans ce paramètre, MongoDB va tenter de garder les collections présentes actuellement dans la base, ce qui peut résulter en des mélanges de données non souhaitée. Pour retrouver la rétention au même état qu'au moment de sa sauvegarde, il faut utiliser ce paramètre.
| Warning |
|---|
Ce paramètre va effacer la rétention acutellement présente en base. |
Non | - | Si votre base MongoDB utilise le SSL, il faut ajouter cette option qui ne prend pas d'arguments. | Non | 192.168.1.25 | Adresse 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. | Non | 4567 | Port 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 |
|---|
RETENTION_FOLDER_PATH |
Oui | /root/retention_hosts_11_10_2021/ | Chemin vers le dossier contenant la sauvegarde de la rétention qui a été créé avec la commande mongodump. Le dossier doit être sur le même serveur que celle où la commande est lancée. | /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
Quelques exemples de commandes de restaurationRestauration 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_hosts_11_10_2021/
| Code Block |
|---|
mongorestore --drop /root/retention_hosts_11_10_2021/ |
Restauration d'une rétention sur un MongoDB sur un autre serveur
mongo/ :
Cette commande va restaurer dans un MongoDB sur un serveur nommé host_bordeaux avec le port 4679 les données contenues dans le dossier /root/retention_hosts_11_10_2021/
code |
mongorestore --drop -h host_bordeaux -p 4679 /root/retention_hosts_11_10_2021/ |
Restauration d'une rétention sur un MongoDB sur un autre serveur qui utilise le SSL
| 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 ). |
Cette commande va restaurer dans un MongoDB sur un serveur nommé host_bordeaux avec le port 4679 et utilisant le SSL, les données contenues dans le dossier /root/retention_hosts_11_10_2021/
| Code Block |
|---|
| mongorestore --drop --ssl -h host_bordeaux -p 4679 /root/retention_hosts_11_10_2021/ |
Exemple de retour avec succès d'une commande de restauration
| Code Block |
|---|
|
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+0200
2025-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 |
Si sur l'avant-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)"
, 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 ):
- 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
Une fois la restauration terminée, vous pouvez redémarrer il faut redémarrer le Scheduler :
| Code Block |
|---|
|
service shinken-scheduler start |