Forum Linux.général Rsyslog: Enrichissement de données

Posté par  . Licence CC By‑SA.
0
17
août
2015

Bonjour,

Je poste mon message chez vous car je n'ai rien trouvé sur le web concernant l'enrichissement sur mon collecteur Rsyslog. Peut être, vous pourrez me donner votre avis sur la faisabilité ou non de ce que je souhaite faire.

J'ai un projet déjà en place qui fonctionne pas mal. J'envoie les logs de mes équipements dans une base SQL et je fais ensuite différents traitements d'enrichissements. Mon outil doit évoluer vers une plateforme ELK et je dois donc procéder différemment. Je souhaite reporter l'activité d'enrichissement avec mon collecteur Rsyslog mais je ne sais pas vraiment comment commencer.

Je fais déjà du filtrage par adresse ip et j'applique le template ci-dessous:

fichier de conf : /etc/rsyslog.d/forwardELK.conf

# Input
$ModLoad imudp.so
$UDPServerRun 5514

# Output
$template JSONDefault, "{\"message\":\"%msg:::json%\",\"fromhost-ip\":\"%fromhost-ip:::json%\",\"timegenerated\":\"%timegenerated:::date-rfc3339%\"}"

# Main actions
if $fromhost-ip != '127.0.0.1' and $hostname != $myhostname \
and $syslogseverity <= 5\
then @add_ip_logstash;JSONDefault

Je souhaite enrichir le message par l'ajout d'un champs lorsque l'adresse ip est trouvée.
Ex : Un message de l’équipement 10.0.0.1 arrive sur mon collecteur, cette adresse est identifiée dans mon fichier "referentiel.txt" (10.0.0.1,groupA; 10.0.0.2,groupB,…)
Je dois donc ajouté le champs group et la valeur associée dans mon template.
Pensez vous que cela soit possible juste en utilisant mon collecteur Rsyslog?
Vous me direz peut être d'utiliser logstash avec un script ruby. En effet c'est possible, cependant, j'envoie mes logs vers plusieurs plateformes et pas toutes peuvent faire cette opération.

Merci pour vos réponses.
Cordialement

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.