Table des matières

, , ,

Bareos: la ressource Message

C'est via la ressource Message qu'on définit la manière dont seront gérés les messages émis par les différents daemons Bareos. Même si chaque daemon à un contrôleur de message complet, on transmet généralement les messages au Director, cela permet de combiner l'ensemble des notifications liées à une même tâche puis d' envoyer un mail, journaliser dans le catalogue, dans un fichier etc.

Chaque message généré par Bareos à un type associé. La ressource message permet de définir quel type de message on souhaite pouvoir visualiser (filtrage), et quelle action déclencher (enregistrer, envoyer par mail etc). De plus un message peut être envoyé vers de multiples destinations: on peut vouloir par exemple à la fois enregistrer les messages d'erreurs et les envoyer par mail.

En définissant plusieurs ressources Message on peut avoir plusieurs politiques de diffusion de messages à associer aux différentes taches existantes.

En général les messages sont associés aux tâches et intégrés aux rapports de tâches (Job report). Il existe cependant des cas où c'est impossible par exemple lorsque aucune tâche ne s’exécute, ou lorsque des erreurs de communications se produisent entre daemons. Dans ces cas, les messages peuvent rester dans le système et devraient être effacés à la fin de l’exécution de la prochaine tâche.

Syntaxe

Dans sa forme la plus simple, un enregistrement (record) présent dans une ressource Message consiste en une destination suivie par une liste de type de message à lui transmettre:

Message{
  destination = mess-type1, mess-type2, ...
}

Si la destination a besoin d'une adresse la syntaxe suivante est utilisée:

Message{
  destination = adresse = mess-type1, mess-type2, ...
}

destination

La destination est un mot clé prédéfinis indiquant où le message est envoyé (action). La documentation est exhaustive à ce sujet, on présente ci-dessous quelques valeurs:

Append Ajoute les messages dans le fichier indiqué dans la section adresse.
Catalog Envoi le message dans la base. Les messages sont alors accessibles par des logiciels de reporting. En interne Bareos ne l'utilise pas par défaut.
Console Les messages sont affichés dans les consoles connectées au Director.
File Envoi les messages vers le fichier dont le nom est dans le champ adresse. Ecrase les valeurs préexistantes.
Mail Envoi les messages aux adresses mails (séparées par des virgules).
Mail Command Spécifie exactement la commande et les options pour l'envoi par mail.
Mail On Error Envoi des messages aux destinataires si la tâche est en erreur.
Mail On Success Notification par mail pour les tâches réussies.
syslog Transmission des messages à un serveur syslog.

Les types de messages

info Information générale
warning avertissement. Situation inhabituelle mais non critique.
error Erreur non fatale. La tache continue à exécuter.
fatal Erreur ayant provoqué l'arrêt de la tache.
terminate Généré lors de l'arrêt d'un daemon
notsaved Erreur empêchant la sauvegarde d'un fichier
skipped fichier ignoré. N'est pas une erreur car explicitement définit par la configuration (exclusion) ou type de sauvegarde (incrémentale)
mount montage ou intervention nécessaire sur le daemon de stockage
restored généré lors de la restauration d'un fichier.

Mail Command

La directive Mail Command doit être définie dans la ressource Message avant les directives souhaitées Mail, Mail On Succes ou Mail On Error. En fait, Chacune de ces directives peut être précédée par une directive Mail command.

Mail Command peut utiliser un ensemble de variables:

Exemples

Messages {
  # Le record Name permet de lier la ressource aux taches ou aux services
  Name = Standard

  Description = "Politique de diffusion raisonnable -- Envoi une grande partie des messages par mail, dans les consoles, vers un fichier de log et le catalogue."

  # Spécifie la commande d'envoi des messages par mail pour les messages à destination des opérateurs
  OperatorCommand = "/usr/bin/bsmtp -h smtp.server.fqdn:25 -f \"\(Bareos\) \<bareos@host.fqdn\>\" -s \"Bareos: Intervention needed for %j\" %r"
  
  # Destinataires des notifications par mail pour les opérateurs (séparés par des virgules)
  Operator = an_user@domain.fqdn = mount                         

  # Spécifie la commande d'envoi des messages par mail
  MailCommand = "/usr/bin/bsmtp -h smtp.server.fqdn:25 -f \"\(Bareos\) \<bareos@host.fqdn\>\" -s \"Bareos: %n %l %e\" %r"
  
  # Destinataires des notifications par mail (séparés par des virgules)
  Mail = an_user_1@mdomain.fqdn,an_user_2@domain.fqdn,an_user_n@domain.fqdn = all, !skipped, !saved, !audit             

  Console = all, !skipped, !saved, !audit
  Append = "/var/log/bareos/bareos.log" = all, !skipped, !saved, !audit
  Catalog = all, !skipped, !saved, !audit
}

Références