Re: [FRsAG] syslog-ng et PCRE ?

2017-02-07 Par sujet Benjamin
Bonjour la liste,

 

Chez nous, nous utilisons GrayLog ( https://www.graylog.org/ ) qui est tout 
simplement super.

Il utilise notamment une base Elasticsearch pour le stockage de log et une base 
Mongo pour la config. 

 

Il est capable de gérer et d’ouvrir des « listener » ( syslog, gelf, snmp, … )

Il gère la rétention des logs.

Il a une interface graphique pour la visualisation de logs, et la conception de 
dashboard.

Il a un système d’authentification et d’authorization.

L’API est plutôt sympa et simple à utiliser.

Il a un système de « traitement de log », pour par exemple extraire les champs 
en fonctions de Regex (très utile pour des logs de firewal ;) ), ou encore pour 
ajouter la géolocalisation aux IP récupérées.

Un système d’alerte ( X logs avec tel condition en 1 minute = une alerte )

 

Bref, nous en sommes fan, et il est extrêmement fiable ( jamais planté depuis 
plusieurs années ).

 

Bonne soirée.

Benjamin

 

De : FRsAG [mailto:frsag-boun...@frsag.org] De la part de Alexandre Legrix
Envoyé : mardi 7 février 2017 13:03
À : Yannick Cadin <yann...@diablotin.fr>
Cc : French SysAdmin Group <frsag@frsag.org>
Objet : Re: [FRsAG] syslog-ng et PCRE ?

 

C'est toujours bien l'égo boost, surtout quand ça laisse des traces sur 
l'interweb.

Alex

 

Le 7 février 2017 à 12:53, Yannick Cadin <yann...@diablotin.fr 
<mailto:yann...@diablotin.fr> > a écrit :

Bon comme je constate que mon problème n'émeut personne, j'apporte moi-même la 
réponse :

Il y avait 2 soucis combinés (sans rapport direct l'un avec l'autre).

En premier, c'est posix par défaut jusqu'à la version 3.5 incluse de syslog-ng, 
pcre par défaut à partir de la version 3.6.

Ensuite et surtout, le motif (en premier paramètre de subst) doit 
impérativement être délimité par des apostrophes sans quoi les \ ne serviront 
qu'à banaliser le caractère qui les suit immédiatement et ne seront pas 
interprétés comme faisant partie de symboles PCRE.

OU ALORS, si l'on veut délimiter le motif avec des guillemets il faut alors 
doubler chaque \.

Exemple concret de ce que je voulais réaliser (et qui désormais fonctionne) :

rewrite remove_timestamp_in_docker_events {
subst('(docker/\w+\[\d+]:) \d{4}-\d\d-\d\d \d\d:\d\d:\d\d,\d+', "$1", 
value("MESSAGE") type("pcre"));
};


S'il était avéré qu'une expression rationnelle POSIX soit plus rapide à traiter 
alors on peut opter pour l'une des variantes ci-dessous :

subst('(docker/[^[]+\[[0-9]+]:) [0-9]{4}-[0-9]{2}-[0-9]{2} 
[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]+', "$1", value("MESSAGE") type("posix"));

subst('(docker/[[:alnum:]]+\[[0-9]+]:) [0-9]{4}-[0-9]{2}-[0-9]{2} 
[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]+', "$1", value("MESSAGE") type("posix"));


Merci à moi (on n'est jamais aussi bien servi que par soi-même, surtout en 
guise d'auto-congratulations ;)

Yannick




Le 2017-02-06 22:12, Yannick Cadin a écrit :

Bonsoir,

On reste dans le traitement des logs.

J'appelle une commande subst dans un fichier syslog-ng.conf  (sur
Ubuntu 16.10 à jour)

Si le motif recherché est un littéral, ça marche très bien.
Si le motif recherché est une expression rationnelle au format POSIX,
ça marche très bien.
Si le motif recherché contient ne serait-ce qu'un symbole PCRE
(exemple \d ou \w) alors il N'y a PLUS AUCUNE correspondance trouvée.

Y compris si j'ajoute explicitement type("pcre"). Bien que ce soit
théoriquement superflu puisque c'est le "moteur" d'expressions
rationnelles que syslog-ng prétend employer par défaut.

J'ai, par acquis de conscience, lancer une commande ldd sur le binaire
syslog-ng qui m'a bien confirmé que le programme était lié avec la
librairie partagée libpcre.

Quasi impossible de trouver le moindre exemple d'emploi d'expressions
PCRE dans une config syslog-ng (soit je cherche mal, soit personne
n'emploie les expressions PCRE dans syslog-ng).

Auriez-vous une piste à me suggérer ? (Vous pouvez vous épargner la
solution consistant à se contenter des expressions POSIX, c'est ce que
j'adopterai en dernier recours.)

D'avance merci pour votre aide,

Yannick

___
Liste de diffusion du FRsAG
http://www.frsag.org/

___
Liste de diffusion du FRsAG
http://www.frsag.org/




-- 

Alexandre

___
Liste de diffusion du FRsAG
http://www.frsag.org/

Re: [FRsAG] syslog-ng et PCRE ?

2017-02-07 Par sujet Alexandre Legrix
C'est toujours bien l'égo boost, surtout quand ça laisse des traces sur
l'interweb.

Alex

Le 7 février 2017 à 12:53, Yannick Cadin  a écrit :

> Bon comme je constate que mon problème n'émeut personne, j'apporte
> moi-même la réponse :
>
> Il y avait 2 soucis combinés (sans rapport direct l'un avec l'autre).
>
> En premier, c'est posix par défaut jusqu'à la version 3.5 incluse de
> syslog-ng, pcre par défaut à partir de la version 3.6.
>
> Ensuite et surtout, le motif (en premier paramètre de subst) doit
> impérativement être délimité par des apostrophes sans quoi les \ ne
> serviront qu'à banaliser le caractère qui les suit immédiatement et ne
> seront pas interprétés comme faisant partie de symboles PCRE.
>
> OU ALORS, si l'on veut délimiter le motif avec des guillemets il faut
> alors doubler chaque \.
>
> Exemple concret de ce que je voulais réaliser (et qui désormais
> fonctionne) :
>
> rewrite remove_timestamp_in_docker_events {
> subst('(docker/\w+\[\d+]:) \d{4}-\d\d-\d\d \d\d:\d\d:\d\d,\d+', "$1",
> value("MESSAGE") type("pcre"));
> };
>
>
> S'il était avéré qu'une expression rationnelle POSIX soit plus rapide à
> traiter alors on peut opter pour l'une des variantes ci-dessous :
>
> subst('(docker/[^[]+\[[0-9]+]:) [0-9]{4}-[0-9]{2}-[0-9]{2}
> [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]+', "$1", value("MESSAGE") type("posix"));
>
> subst('(docker/[[:alnum:]]+\[[0-9]+]:) [0-9]{4}-[0-9]{2}-[0-9]{2}
> [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]+', "$1", value("MESSAGE") type("posix"));
>
>
> Merci à moi (on n'est jamais aussi bien servi que par soi-même, surtout en
> guise d'auto-congratulations ;)
>
> Yannick
>
>
>
> Le 2017-02-06 22:12, Yannick Cadin a écrit :
>
>> Bonsoir,
>>
>> On reste dans le traitement des logs.
>>
>> J'appelle une commande subst dans un fichier syslog-ng.conf  (sur
>> Ubuntu 16.10 à jour)
>>
>> Si le motif recherché est un littéral, ça marche très bien.
>> Si le motif recherché est une expression rationnelle au format POSIX,
>> ça marche très bien.
>> Si le motif recherché contient ne serait-ce qu'un symbole PCRE
>> (exemple \d ou \w) alors il N'y a PLUS AUCUNE correspondance trouvée.
>>
>> Y compris si j'ajoute explicitement type("pcre"). Bien que ce soit
>> théoriquement superflu puisque c'est le "moteur" d'expressions
>> rationnelles que syslog-ng prétend employer par défaut.
>>
>> J'ai, par acquis de conscience, lancer une commande ldd sur le binaire
>> syslog-ng qui m'a bien confirmé que le programme était lié avec la
>> librairie partagée libpcre.
>>
>> Quasi impossible de trouver le moindre exemple d'emploi d'expressions
>> PCRE dans une config syslog-ng (soit je cherche mal, soit personne
>> n'emploie les expressions PCRE dans syslog-ng).
>>
>> Auriez-vous une piste à me suggérer ? (Vous pouvez vous épargner la
>> solution consistant à se contenter des expressions POSIX, c'est ce que
>> j'adopterai en dernier recours.)
>>
>> D'avance merci pour votre aide,
>>
>> Yannick
>>
>> ___
>> Liste de diffusion du FRsAG
>> http://www.frsag.org/
>>
> ___
> Liste de diffusion du FRsAG
> http://www.frsag.org/
>



-- 
Alexandre
___
Liste de diffusion du FRsAG
http://www.frsag.org/

Re: [FRsAG] syslog-ng et PCRE ?

2017-02-07 Par sujet Yannick Cadin
Bon comme je constate que mon problème n'émeut personne, j'apporte 
moi-même la réponse :


Il y avait 2 soucis combinés (sans rapport direct l'un avec l'autre).

En premier, c'est posix par défaut jusqu'à la version 3.5 incluse de 
syslog-ng, pcre par défaut à partir de la version 3.6.


Ensuite et surtout, le motif (en premier paramètre de subst) doit 
impérativement être délimité par des apostrophes sans quoi les \ ne 
serviront qu'à banaliser le caractère qui les suit immédiatement et ne 
seront pas interprétés comme faisant partie de symboles PCRE.


OU ALORS, si l'on veut délimiter le motif avec des guillemets il faut 
alors doubler chaque \.


Exemple concret de ce que je voulais réaliser (et qui désormais 
fonctionne) :


rewrite remove_timestamp_in_docker_events {
subst('(docker/\w+\[\d+]:) \d{4}-\d\d-\d\d \d\d:\d\d:\d\d,\d+', 
"$1", value("MESSAGE") type("pcre"));

};


S'il était avéré qu'une expression rationnelle POSIX soit plus rapide à 
traiter alors on peut opter pour l'une des variantes ci-dessous :


subst('(docker/[^[]+\[[0-9]+]:) [0-9]{4}-[0-9]{2}-[0-9]{2} 
[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]+', "$1", value("MESSAGE") 
type("posix"));


subst('(docker/[[:alnum:]]+\[[0-9]+]:) [0-9]{4}-[0-9]{2}-[0-9]{2} 
[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]+', "$1", value("MESSAGE") 
type("posix"));



Merci à moi (on n'est jamais aussi bien servi que par soi-même, surtout 
en guise d'auto-congratulations ;)


Yannick


Le 2017-02-06 22:12, Yannick Cadin a écrit :

Bonsoir,

On reste dans le traitement des logs.

J'appelle une commande subst dans un fichier syslog-ng.conf  (sur
Ubuntu 16.10 à jour)

Si le motif recherché est un littéral, ça marche très bien.
Si le motif recherché est une expression rationnelle au format POSIX,
ça marche très bien.
Si le motif recherché contient ne serait-ce qu'un symbole PCRE
(exemple \d ou \w) alors il N'y a PLUS AUCUNE correspondance trouvée.

Y compris si j'ajoute explicitement type("pcre"). Bien que ce soit
théoriquement superflu puisque c'est le "moteur" d'expressions
rationnelles que syslog-ng prétend employer par défaut.

J'ai, par acquis de conscience, lancer une commande ldd sur le binaire
syslog-ng qui m'a bien confirmé que le programme était lié avec la
librairie partagée libpcre.

Quasi impossible de trouver le moindre exemple d'emploi d'expressions
PCRE dans une config syslog-ng (soit je cherche mal, soit personne
n'emploie les expressions PCRE dans syslog-ng).

Auriez-vous une piste à me suggérer ? (Vous pouvez vous épargner la
solution consistant à se contenter des expressions POSIX, c'est ce que
j'adopterai en dernier recours.)

D'avance merci pour votre aide,

Yannick

___
Liste de diffusion du FRsAG
http://www.frsag.org/

___
Liste de diffusion du FRsAG
http://www.frsag.org/

[FRsAG] syslog-ng et PCRE ?

2017-02-06 Par sujet Yannick Cadin

Bonsoir,

On reste dans le traitement des logs.

J'appelle une commande subst dans un fichier syslog-ng.conf  (sur Ubuntu 
16.10 à jour)


Si le motif recherché est un littéral, ça marche très bien.
Si le motif recherché est une expression rationnelle au format POSIX, ça 
marche très bien.
Si le motif recherché contient ne serait-ce qu'un symbole PCRE (exemple 
\d ou \w) alors il N'y a PLUS AUCUNE correspondance trouvée.


Y compris si j'ajoute explicitement type("pcre"). Bien que ce soit 
théoriquement superflu puisque c'est le "moteur" d'expressions 
rationnelles que syslog-ng prétend employer par défaut.


J'ai, par acquis de conscience, lancer une commande ldd sur le binaire 
syslog-ng qui m'a bien confirmé que le programme était lié avec la 
librairie partagée libpcre.


Quasi impossible de trouver le moindre exemple d'emploi d'expressions 
PCRE dans une config syslog-ng (soit je cherche mal, soit personne 
n'emploie les expressions PCRE dans syslog-ng).


Auriez-vous une piste à me suggérer ? (Vous pouvez vous épargner la 
solution consistant à se contenter des expressions POSIX, c'est ce que 
j'adopterai en dernier recours.)


D'avance merci pour votre aide,

Yannick

___
Liste de diffusion du FRsAG
http://www.frsag.org/