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.
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, ... }
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. |
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. |
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. |
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:
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 }