Sauvegarde des données

Initialisation

Avant de faire le rétention, le module nous informe de l'URI utilisée ainsi que du nombre total d'hôtes et de checks à sauvegarder.

[YYYY-MM-DD HH:MM:SS] INFO   : [ scheduler-master ] [ MongodbRetention ] [ SAVE GLOBAL      ] Starting to save retention data with X worker(s). [YY:hosts] [ZZ:checks] (Database used = mongodb://127.0.0.1/?safe=false, use ssh = True/False)

Dans l'exemple,

  • X : Le nombre de workers lancés en parallèle pour effectuer la sauvegarde.
  • YY : Le nombre d'hôtes et clusteurs qui vont être sauvegardés.
  • ZZ : Le nombre de checks qui vont être sauvegardés.

Démarrage des workers

La sauvegarde dans la base mongo se fait avec plusieurs workers, un log par worker nous informe de son PID lors leur création.

[YYYY-MM-DD HH:MM:SS] INFO   : [ scheduler-master ] [ MongodbRetention ] [ SAVE WORKERS     ] Starting worker 0 with pid XXXXX. Try: 1/3
[YYYY-MM-DD HH:MM:SS] INFO   : [ scheduler-master ] [ MongodbRetention ] [ SAVE WORKERS     ] Starting worker 1 with pid YYYYY. Try: 1/3


Connexion à une base de donnée

Quand le module mongo se connecte à une base de données, on va avoir le log suivant:

[YYYY-MM-DD HH:MM:SS] INFO : [ scheduler-master ] [ MongodbRetention ] [ SAVE WORKER X    ] We are creating mongo connection [uri=mongodb://127.0.0.1/?safe=false] [database=shinken_retention] [ssh=False]
[YYYY-MM-DD HH:MM:SS] INFO : [ scheduler-master ] [ MongodbRetention ] [ SAVE WORKER X    ] Connection created in : 0.006s

Il y indique donc:

  • L'URL utilisée
  • La base de données (peut être différente du défaut "shinken" comme ici)
  • Si un tunnel SSH va être utilisé ou pas
  • Le temps prit pour se connecter à la base mongo

Sauvegarde des données

Après avoir créer des workers, chaque worker nous informe de sa progression avec les logs suivants :

[YYYY-MM-DD HH:MM:SS] INFO   : [ scheduler-master ] [ MongodbRetention ] [ SAVE WORKER X    ] Updating retention with elements: checks [ YY ] -- hosts [ ZZ ] in mongodb
[YYYY-MM-DD HH:MM:SS] INFO   : [ scheduler-master ] [ MongodbRetention ] [ SAVE WORKER X    ] Retention data saved into mongodb in 0.018 seconds

Nous sommes donc informés de :

  • Du nombre d'éléments mis à jour dans la base ( nombre de checks et nombre d'hôtes )
  • Le temps que la sauvegarde à prit

Succès de la sauvegarde

Si la sauvegarde se passe bien, nous sommes informés du succèss de chaque worker, ansi que du succès global si tous les workers ont réussi à sauvegarder les données dans la base mongo, et le temps qu'ils ont mit.

[2021-04-08 09:15:43] INFO   : [ scheduler-master ] [ MongodbRetention ] [ SAVE WORKERS     ] The worker 0 did SUCCESS (after 1 try)
[2021-04-08 09:15:43] INFO   : [ scheduler-master ] [ MongodbRetention ] [ SAVE WORKERS     ] The worker 1 did SUCCESS (after 1 try)
[2021-04-08 09:15:43] INFO   : [ scheduler-master ] [ MongodbRetention ] [ SAVE GLOBAL      ] Retention data was saved into mongodb. Total time 0.28s