Splunk – Filtrer ses logs avec un Lookup… efficacement !

Splunk Logo

Bonjour à tous, aujourd’hui je voudrais qu’on se penche sur un truc assez simple d’apparence qu’on a tous voulus faire avec Splunk : Filtrer ses logs avec un Lookup. Le use case que j’ai eu aujourd’hui au taf est assez simple. On avait une liste de domaine malveillant dans un petit CSV et on voulait croiser ça avec nos logs proxy (plusieurs dizaines de Go par jours) sur une semaine.

Filtrer ses logs avec un Lookup… sur des petits volumes de log !

Du coup le collègue qui a essayé en premier est parti avec la première méthode qu’on trouve sur Google (normal jusque-là). Faire une sous-recherche (subsearch) qui prend le lookup, « table » la colonne avec le nom qui match celui du champ dans les logs et cherches.

index=proxy [| inputlookup malwaredomainslist.csv | table site ]

Bilan : 1h après on avait pas fait 25% des logs et la recherche a même finis par planter en « Dag Execution Exception: Search has been cancelled. Search auto-canceled« . A ce stade il m’appelle, et je gratte un peu dans mes souvenirs. Il me semblait qu’on pouvait forger le texte de la recherche depuis une subsearch. Et je retombe … Lire la suite

Docker et Portainer part 9 – Monitoring des performances docker avec Splunk

Docker et Portainer

Salut à tous, ça fait longtemps qu’on a pas parlé de docker, non. ? Et je vous avais promis de parler du Monitoring des performances docker avec Splunk. Ça fait quelques mois que j’ai mis en place un truc sur le serveur mais que je n’ai pas eu le temps de vous mettre sur le blog.

On va attaquer le problème crescendo, du plus basique au plus compliqué.
Rappel des articles de la série « Docker et Portainer » :

V1, dans le doute : script…

Ma première tentative a été d’écrire le petit … Lire la suite

Changer le sourcetype après un Universal Forwarder

Splunk Logo

Bonjour à tous, aujourd’hui, je veux vous parler d’une configuration possible dans une infra Splunk pour changer le sourcetype après un Universal Forwarder. En effet dans une infra Splunk, lorsque vous utilisez un UFW (Universal Forwarder), dans votre fichier Inputs.conf vous devez définir le sourcetype des logs.

Par exemple :

[monitor:///splunk-inputs-dir/PROXY/*/*.log]
disabled = 0
index = proxy
host_segment = 3
sourcetype = editor:proxy

Comme on le voit le sourcetype est affecté pour le dossier surveillé. Et il n’est pas possible de placer des règles pour définir des sourcetypes custom en fonction du host ou du format de la ligne de log par exemple. En lisant sur les forums Splunk, la plupart des postes que j’ai vu disent qu’il faut remplacer l’UFW par un heavy forwarder, sauf… qu’en regardant bien la doc, on a une option pour faire faire le travail à nos indexeur.

En effet, il est possible de jouer avec les fichiers props.conf (et transforms.conf) pour lui faire appliquer un TRANSFORMS sur les logs. Par exemple, le props.conf qui défini vos extractions du champs pour votre sourcetype devrait ressembler à quelques chose comme :

[editor:proxy]
EVAL-bytes = bytes_out+bytes_in
EXTRACT-proxy = ^une méchante regex
TIME_FORMAT = %s%3N
TIME_PREFIX
Lire la suite