Bonjour @colinsurprenant
Oui c'est ce que m'a expliqué Magnus sur #logstash , je n'avais pas bien saisie l'utilité de ce plugin. car je souhaitais filtrer les logs en fonction de leurs réseaux et non en fonction de leurs IP. Du coup, j'ai utilisé des regex. Pour ceux à qui ça peut servir, voila comment j'ai effectué mes filtres :
filter {
if [host] =~ /10\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/ {
mutate { add_tag => "site1" }
}
else if [host] =~ /10\.11\.([0-9]{1,3})\.([0-9]{1,3})/ {
mutate { add_tag => ["site2"] }
}
}
Cela indique que SI un évènement comprend dans le champ "host" une adresse en 10.X.X.X (ou X est compris entre 0 et 9 et peut comporter 1 à 3 chiffres ), alors on applique le filtre mutate et on ajoute un tag "site1"
SINON SI un évènement comprend dans le champ "host" une adresse en 10.11.X.X (ou X est compris entre 0 et 9 et peut comporter 1 à 3 chiffres ), alors on applique le filtre mutate et on ajoute un tag "site2"
etc .... (on peut également ajouter directement un champ, cela revient au même.)
Ensuite, en sortie, j'ai appliqué :
output {
if "site1" in [tags] {
elasticsearch {
hosts => "localhost:9200"
index => "site1"
}
}
else if "site2" in [tags] {
elasticsearch {
hosts => "localhost:9200"
index => "site2"
}
}
}
etc ...
Cela me permet d'indexer dans des index différents chaque évènement en fonction de leurs réseau de provenance.
Le plugin CIDR paraissait intéressant mais j'ai environ 1500 hôtes qui vont me générer des logs, je ne pouvais donc pas prévoir leurs IP/32 individuellement.
Cette partie a été résolu pour moi.
Merci quand même de ton aide, on a jamais assez d'explications.