Projet

Général

Profil

Anomalie #3819

Absence des logs d'erreur de borg durant les backups

Ajouté par Christian P. Momon il y a presque 5 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normale
Assigné à:
Christian P. Momon
Catégorie:
-
Version cible:
-
Début:
17/07/2019
Echéance:
% réalisé:

0%

Temps estimé:

Description

Actuellement, dans /srv/bin/backup.sh :

$borg_bin create --stats $backup_dest::$backup_name / \
        --exclude /proc \
        --exclude /dev  \
        --exclude /sys  \
        --exclude /var/lib/libvirt/coon \
        --exclude /var/lib/libvirt/maine \
        --exclude /var/lib/libvirt/images/  \
        --exclude '/srv/backups/*.chapril.org' \
                                           2>&1 >> $logger

Le 2>&1 >> $logger se lit :
  • faire pointer la sortie erreur vers le descripteur de fichier pointé par la sortie standard ;
  • puis faire pointer la sortie standard vers le descripteur de fichier de $logger.

La deuxième étape ne met pas à jour le descripteur de fichier de la sortie erreur et donc celle-ci pointe par défaut dans celle du cron qui n'est pas configurée et donc les logs sont perdues.

Propositions d'améliorations du script /srv/bin/backup.sh :
  • remplacer tous les « >> $logger » par un seul « >> /var/log/backup.log » dans la ligne de cron :
    • facilité d'écriture du script /srv/bin/backup.sh,
    • meilleure lisibilité,
    • évitement des pièges de 2>&1
  • dans le borg create, ajout du paramètre --info pour que le --stats affiche quelque chose ;
  • transformation du test de code de retour de borg create de « if then fi » en « if then else fi » :
    • permet d'avoir un affichage prévenant que le backup est interrompu.

Ci-joint une proposition de nouvelle version du script. Testable dans icinga2:/srv/bin/backup2.sh.


Fichiers

backup2.sh (1,61 ko) backup2.sh Christian P. Momon, 17/07/2019 18:28

Historique

#1

Mis à jour par Christian P. Momon il y a presque 5 ans

  • Statut changé de Nouveau à En cours de traitement

Ce qui donne à l'exécution quand ça se passe bien :

=(^-^)=root@icinga2:/srv/bin# ./backup2.sh > out
=(^-^)=root@icinga2:/srv/bin# more out
========================================================================
                              New backup
========================================================================
mercredi 17 juillet 2019, 18:42:35 (UTC+0200)

== Executing package selection: 
mercredi 17 juillet 2019, 18:42:35 (UTC+0200)

== Backup pre-hook
mercredi 17 juillet 2019, 18:42:35 (UTC+0200)

Executing /etc/borg/scripts/pre-hooks/dump-mysql...
Executing /etc/borg/scripts/pre-hooks/dump-pgsql...
Executing /etc/borg/scripts/pre-hooks/dump-selections...
== Backup launch
mercredi 17 juillet 2019, 18:42:35 (UTC+0200)

------------------------------------------------------------------------------
Archive name: 2019-07-17-test
Archive fingerprint: 862a48ff46f824bc36e05a3161ce6341ce772bade04542e0121df4a0f0783fe1
Time (start): Wed, 2019-07-17 18:42:36
Time (end):   Wed, 2019-07-17 18:42:47
Duration: 10.91 seconds
Number of files: 42579
------------------------------------------------------------------------------
                       Original size      Compressed size    Deduplicated size
This archive:                1.79 GB              1.79 GB             87.89 MB
All archives:               21.49 GB             21.51 GB              2.80 GB

                       Unique chunks         Total chunks
Chunk index:                   46009               509881
------------------------------------------------------------------------------
== Backup info
mercredi 17 juillet 2019, 18:42:48 (UTC+0200)

Name: 2019-07-17-test
Fingerprint: 862a48ff46f824bc36e05a3161ce6341ce772bade04542e0121df4a0f0783fe1
Hostname: icinga2.cluster.chapril.org
Username: root
Time (start): Wed, 2019-07-17 18:42:36
Time (end):   Wed, 2019-07-17 18:42:47
Command line: /usr/bin/borg create --info --stats backup@backup.chapril.org:/srv/backups/icinga2.cluster.chapril.org::2019-07-17-test / --exclude /proc --exclude /dev --exclude /sys --exclude /var/lib/libvirt/coon --exclude /var/lib/libvirt/maine --exclude /var/lib/libvirt/ima
ges/ --exclude /srv/backups/*.chapril.org
Number of files: 42579

                       Original size      Compressed size    Deduplicated size
This archive:                1.79 GB              1.79 GB             87.89 MB
All archives:               21.49 GB             21.51 GB              2.80 GB

                       Unique chunks         Total chunks
Chunk index:                   46009               509881
== Backup pruning
mercredi 17 juillet 2019, 18:42:50 (UTC+0200)

== Backup post-hook
mercredi 17 juillet 2019, 18:42:51 (UTC+0200)

mercredi 17 juillet 2019, 18:42:51 (UTC+0200)
Returned 0
========================================================================

Et quand ça se passe pas bien :

=(^-^)=root@icinga2:/srv/bin# ./backup2.sh
========================================================================
                              New backup
========================================================================
mercredi 17 juillet 2019, 18:33:20 (UTC+0200)

== Executing package selection: 
mercredi 17 juillet 2019, 18:33:20 (UTC+0200)

== Backup pre-hook
mercredi 17 juillet 2019, 18:33:20 (UTC+0200)

Executing /etc/borg/scripts/pre-hooks/dump-mysql...
Executing /etc/borg/scripts/pre-hooks/dump-pgsql...
Executing /etc/borg/scripts/pre-hooks/dump-selections...
== Backup launch
mercredi 17 juillet 2019, 18:33:20 (UTC+0200)

Warning: The repository at location ssh://backup@backup.chapril.org/srv/backups/icinga2.cluster.chapril.org was previously located at /srv/backups/icinga2.cluster.chapril.org
Do you want to continue? [yN] n
Aborting.
Repository access aborted
Error in borg create action. Stopping backup.
Returned 2
========================================================================

#2

Mis à jour par Christian P. Momon il y a presque 5 ans

Sur IRC:freenode#april-chapril le 18/02/2019 :

12:10 < cpm_screen> PoluX________: si tu peux jeter un oeil sur https://agir.april.org/issues/3819, je voudrais ta validation avant déploiement :D
12:20 < PoluX________> ok
12:21 < PoluX________> cpm_screen: tu peux déployer pour au moins 3 raisons
12:22 < PoluX________> 1) ce script était *biiiiiip* *améliorable* (bon en même temps c'est du sh)
12:22 < PoluX________> 2) ça a l'air de fonctionner
12:22 < PoluX________> 3) j'ai 100% confiance dans le monitoring :)
12:22 < PoluX________> bref, aucune raison de te retarder
12:28 < cpm_screen> haha, ça marche, je tente ce soir

Décision de modifier directement le paquet backup-chapril :

13:11 < cpm_screen> QGuLL: pour le déploiement du backup.sh, on peut faire ça en (solution A) 2 temps : 1) déploiement manuel sur 2 vm pour vérifier que ça se passe bien, 2) déploiemen\
t via apt. Ou (solution B) directement via apt directement.
13:11 < cpm_screen> tu préfères A ou B ?
13:17 < QGuLL> 2/
13:17 < QGuLL> c'est pas long de déployer

Actions menées :
  • paquet backup-chapril modifié/commité/buildé/duploadé ;
  • apt-get update && apt-get dist-upgrade sur les machines du cluster Chapril.

En attente de voir comment ça se passe la prochaine nuit.

#3

Mis à jour par Christian P. Momon il y a presque 5 ans

  • Statut changé de En cours de traitement à Résolu

Backups ok cette nuit. Plus qu'à attendre un incident pour profiter des logs.

#4

Mis à jour par Christian P. Momon il y a plus de 4 ans

  • Projet changé de Chapril à Infra Chapril
  • Statut changé de Résolu à Fermé

Formats disponibles : Atom PDF