Vous pouvez configurer des analyseurs Comma-Separated Value (CSV) pour les collecteurs FileLog et WinLog.

Les options disponibles pour l'analyseur csv sont fields et delimiter.

Options de l'analyseur CSV

Les informations relatives à la structure de l'analyseur csv sont les suivantes :

Option Description
fields

L'option fields spécifie les noms des champs présents dans le journal. Le nombre total de noms de champs listés doit correspondre au nombre total de champs séparés par une virgule dans le journal.

L'option fields est obligatoire pour l'analyseur CSV. Si vous ne la spécifiez pas, aucun objet n'est analysé. Les guillemets qui encadrent la valeur du champ sont facultatifs et dépendent du contenu du champ.

Les noms de champs doivent être séparés par une virgule, comme suit :
fields = field_name1, field_name2, field_name3, field_name4
Cette définition suppose que les noms field_name1, field_name2, field_name3 et field_name4 sont attribués de manière séquentielle aux champs extraits.

Si des champs sont omis par l'analyseur CSV, leurs noms peuvent également ne pas figurer sur la liste. Par exemple,

 fields = field_name1, , field_name3, field_name4

Dans ce cas, l'analyseur extrait uniquement le premier, le troisième et le quatrième champs de l'événement. Il leur attribue ensuite les noms field_name1, field_name3 et field_name4.

Si l'option Champs ne spécifie pas une liste complète de champs dans vos journaux, l'analyseur renvoie une liste vide. Par exemple, si le fichier journal contient field1, field2, field3, field4 et field5, mais que seul fields= field1,field2,field3 est spécifié, l'analyseur renvoie une liste de champs vide.

Vous ne pouvez pas utiliser fields=* pour un analyseur CSV, car l'analyseur renvoie une liste de champs vide. Une liste de champs complète doit être spécifiée, sauf si vous souhaitez omettre certains champs, comme décrit précédemment.

delimiter

L'option delimiter spécifie le délimiteur que l'analyseur doit utiliser. Par défaut, l'analyseur csv utilise une virgule comme délimiteur ; cependant, vous pouvez utiliser un point-virgule, un espace ou un autre caractère spécial comme délimiteur. Le délimiteur défini doit être placé entre guillemets.

Par exemple, delimiter="," et delimiter=";".

L'analyseur csv prend en charge n'importe quel ensemble de caractères comme délimiteurs placés entre guillemets, par exemple "||" ou "asd". Les séparateurs de valeurs des champs dans les journaux doivent correspondre exactement au modèle défini par le paramètre des délimiteur, sinon l'analyseur va échouer.

Des caractères spéciaux tels qu'un espace ou une tabulation peuvent être définis comme délimiteur pour l'analyseur csv à condition que le caractère d'échappement précède le caractère spécial (\", \s, \t). Par exemple, delimiter="\s" et delimiter=" ".

L'option delimiter est facultative.

Configuration de l'analyseur de journaux CSV

Pour analyser des journaux issus de sources winlog ou filelog, utilisez la configuration suivante :

[filelog|some_csv_logs]
directory=D:\Logs
include=*.txt;*.txt.*
parser=myparser

[parser|myparser]
base_parser = csv
fields = timestamp,field_name1, field_name2, field_name3
delimiter = ";"
field_decoder={"timestamp": "tsp_parser"}
[parser|tsp_parser]
; timestamp is a built-in parser
base_parser=timestamp            
; "format" is an option of timestamp parser 
format=%Y-%m-%d %H:%M:%S

Selon cette configuration, les journaux collectés à partir de la source some_csv_logs (par exemple à partir du répertoire directory=D:\Logs) sont analysés par myparser. Si ces journaux contiennent trois valeurs séparées par un point-virgule, les événements analysés de façon séquentielle reçoivent les noms field_name1, field_name2 et field_name3.

Pour analyser le journal CSV suivant :

"United States","USA","North America","High income: OECD","Fiscal year end: September 30; reporting period for national accounts data: CY."
Définissez la configuration de l'analyseur CSV :
[parser|csv_log_parser]
base_parser=csv
fields=country_name, country_code, region, income_group, special_notes
L'analyseur CSV renvoie les champs suivants :
country_name=United States
country_code=USA
region=North America
income_group=High income: OECD
special_notes=Fiscal year end: September 30; reporting period for national accounts data: CY.