Mail vers Canopsis¶
Attention
Ce connecteur n'est disponible que dans l'édition CAT de Canopsis.
Introduction¶
Cette documentation détaille la remontée des logs vers Canopsis via le connecteur email2canopsis
.
Fonctionnement¶
Le connecteur email2canopsis permet de lire des emails dans une boite aux lettres POP3 pour les convertir en événements Canopsis.
Les événements générés embarquent des attributs dont les valeurs sont contenues dans les emails et parsés par un mécanisme de template.
Configuration¶
Le fichier de configuration du connecteur est /opt/canopsis_connectors/email2canopsis/etc/email2canopsis.ini
.
# Chaine de connexion au bus AMQP [amqp] url=amqp://cpsrabbit:canopsis@vip-dvp-hypervision-rabbitmq.si3si.int/canopsis # Url d'un redis pour activer le renvoi automatique du dernier état connu des événements [redis] url=redis://redis:6379/0 [mail] # Adresse du serveur POP3 popserver=webmail.test.net # Port du serveur POP3 (110 ou 995 généralement) port=995 # Doit-on négocier en SSL ou en PLAIN ? overssl=True # Login de la bal user=email2canopsis # Mot de passe associé password= # Dossier d'archivage des mails (active si présent) archive_folder= [event] connector.constant=mail2canopsis connector_name.constant=instance1 event_type.constant=check source_type.constant=resource component.value=param1 resource.value=param2 output.value=paramn state.constant=0 [template] # Expéditeur des emails à traiter template1.sender=sender@mail.net # Template à appliquer sur ces emails template1.path=/opt/canopsis_connectors/email2canopsis/etc/template_1.conf
Configuration de la connexion RabbitMQ et Redis¶
Les blocs [amqp]
et [redis]
contiennent respectivement la configuration pour la connexion au bus RabbitMQ et au cache Redis.
Il faut donc vérifier que les URL qui y figurent sont les bonnes.
Configuration de la Boîte aux Lettres¶
Le bloc [mail]
contient la configuration pour la connexion à la boîte aux lettres POP3 dont les mails seront convertis en événements Canopsis.
Il faut donc vérifier que les différents champs sont bien remplis.
Configuration des templates¶
Le bloc template
contient la configuration des templates.
Pour la recette, il faut s'assurer que l'adresse depuis laquelle on va envoyer un email se trouve bien dans le bloc et que le contenu du mail corresponde bien au template appliqué à cette même adresse email.
Ici, pour
[template] # Expéditeur des emails à traiter template1.sender=sender@mail.net # Template à appliquer sur ces emails template1.path=/opt/canopsis_connectors/email2canopsis/etc/template_1.conf
Il faut envoyer un email depuis l'adresse sender@mail.net
et son contenu doit correspondre au template /opt/canopsis_connectors/email2canopsis/etc/template_1.conf
.
Configuration du template de mail¶
Principe du template¶
Les templates permettent d'analyser un mail en suivant quelques régles de transformations simples.
Un fichier template devrait ressembler à quelque chose comme suit :
[tpl] component=MAIL_SENDER output=MAIL_BODY.line(6).word(3).untilword() long_output=MAIL_BODY.line(7).after(le).untilword() state=MAIL_SUBJECT.line(0).word(1) state.converter=Mineur>1,Majeur>2,Critique>3 timestamp=MAIL_DATE timestamp.output=timestamp
Les clefs sont divisées en deux parties, séparées par un point :
- à gauche, une racine : le nom de la variable à insérer dans l'événement généré
- à droite, une méthode : c'est-à-dire l'action de transformation à appliquer
Les actions peuvent être les suivantes :
- selector (utilisé par défaut ; implicite) : applique simplement le template à droite et copie la valeur traduite dans l'événement.
- converter : remplace une chaîne de caractères par une autre (insensiblement à la casse), les deux étant séparés par le symbole '>'. Plusieurs conversions sont appliquables à la suite en les séparant par des virgules. Dans l'exemple ci-dessus, 'Mineur' sera remplacé par 1, 'Majeur' par 2, ...
La partie droite décrit les régles de transformations (où a, b et c sont des entiers, et d, e des chaînes de caractères) :
MAIL_BODY
,MAIL_DATE
,MAIL_ID
,MAIL_SENDER
, etMAIL_SUBJECT
sont les différentes parties de l'emailline(a)
sélectionne une ligne entière numéro aline(a).word(b)
sélectionne le b-ième mot de la ligne aline(a).word(b).untilword(c)
sélectionne tous les mots entre le b-ième et le c-ième sur la ligne aline(a).word(b).untilword()
sélectionne tous les mots à partir du b-ième jusqu'à la fin de la ligne aline(a).after(d)
sélectionne tous les mots après le mot dline(a).after(d).untilword(c)
sélectionne les mots après le mot d et c mots ensuiteline(a).after(d).word(b).untilword(c)
sélectionne les mots après le mot d, à partir du b-ième jusqu'au c-ièmeline(a).before(e)
sélectionne tous les mots avant eline(a).before(e).word(c)
sélectionne tous les mots avant e, mais en commençant au c-ième
MAIL_DATE est automatiquement convertie en objet date, inutile d'applique d'action 'dateformat' dessus.
Attention
Les numéros de lignes et de mots commencent à partir de 0, non de 1.
Exemple : La séquence à la 1° ligne située entre les 5° et le 18° mots sont donc sélectionnables avec la ligne line(0).word(4).untilword(17)
.
Dépannage¶
Appliquer des changements de configuration¶
Pour appliquer un changement (modification de la configuration, ajout de templates, etc.), il faut redémarrer le connecteur.