L'analyseur regex permet l'utilisation de certaines expressions régulières pour les données collectées.

Les agents VMware Aria Operations for Logs utilisent l'expression régulière de bibliothèque C++ Boost, dont la syntaxe est Perl. L'analyseur regex peut être défini en spécifiant un modèle d'expression régulière contenant des groupes de capture nommés. Par exemple : (?<field_1>\d{4})[-](?<field_2>\d{4})[-](?<field_3>\d{4})[-](?<field_4>\d{4})

Les noms spécifiés dans les groupes (par exemple : field_1, field_2, field_3 et field_4) deviennent les noms des champs extraits correspondants. Conditions requises des noms :
  • Les noms spécifiés dans le modèle d'expression régulière doivent être des noms de champs valides pour VMware Aria Operations for Logs.
  • Les noms ne peuvent contenir que des caractères alphanumériques et le caractère de soulignement « _ ».
  • Le nom ne peut pas commencer par un caractère numérique.

Si des noms non valides sont fournis, la configuration échoue.

Options de l'analyseur Regex

La seule option requise pour l'analyseur regex est l'option format.

L'option debug peut être utilisée lorsque des informations de débogage supplémentaires sont requises.

Configuration

Pour créer un analyseur regex, utilisez regex comme base_parser et indiquez l'option format.

Exemples de configuration Regex

L'exemple suivant peut être utilisé pour analyser 1234-5678-9123-4567 :

[parser|regex_parser]
base_parser=regex
format=(?<tag1>\d{4})[-](?<tag2>\d{4})[-](?<tag3>\d{4})[-](?<tag4>\d{4})
[filelog|some_info]
directory=D:\Logs
include=*.txt
parser=regex_parser

Les résultats indiquent :

tag1=1234
tag2=5678
tag3=9123
tag4=4567

Pour analyser des journaux Apache avec l'analyseur regex, fournissez le format regex spécifique aux journaux Apache :

[parser|regex_parser]
base_parser=regex
format=(?<remote_host>.*) (?<remote_log_name>.*) (?<remote_auth_user>.*) \[(?<log_timestamp>.*)\] "(?<request>.*)" (?<status_code>.*) (?<response_size>.*)

Les résultats indiquent :

127.0.0.1 - admin [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
remote_host=127.0.0.1
remote_log_name=-
remote_auth_user=admin
log_timestamp=10/Oct/2000:13:55:36 -0700
request=GET /apache_pb.gif HTTP/1.0
status_code=200
response_size=2326
Le code suivant montre un autre exemple d'analyse des journaux Apache.
[parser|regex_parser]
base_parser=regex
format=(?<remote_host>.* (?<remote_log_name>.*)) (?<remote_auth_user>.*) \[(?<log_timestamp>.*)\] "(?<request>.* (?<resource>.*) (?<protocol>.*))" (?<status_code>.*) (?<response_size>.*)
127.0.0.1 unknown - [17/Nov/2015:15:17:54 +0400] \"GET /index.php HTTP/1.1\" 200 4868
remote_host=127.0.0.1 unknown
remote_log_name=unknown
remote_auth_user=-
log_timestamp=17/Nov/2015:15:17:54 +0400
request=GET /index.php HTTP/1.1
resource=/index.php
protocol=HTTP/1.1
status_code=200
response_size=4868

Considérations de performances

L'analyseur regex consomme plus de ressources que d'autres analyseurs, par exemple l'analyseur CLF. Si vous pouvez analyser les journaux avec d'autres analyseurs, envisagez l'utilisation de ces derniers à la place de l'analyseur regex pour obtenir de meilleures performances.

Si aucun analyseur n'est fourni et que vous utilisez l'analyseur regex, définissez des formats les plus clairs possible. L'exemple suivant montre une configuration qui fournit des résultats plus performants. Cet exemple spécifie des champs ayant des valeurs numériques.
(?<remote_host>\d+.\d+.\d+.\d+) (?<remote_log_name>.*) (?<remote_auth_user>.*) \[(?<log_timestamp>.*)\] "(?<request>.*)" (?<status_code>\d+) (?<response_size>\d+)