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 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
[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.
(?<remote_host>\d+.\d+.\d+.\d+) (?<remote_log_name>.*) (?<remote_auth_user>.*) \[(?<log_timestamp>.*)\] "(?<request>.*)" (?<status_code>\d+) (?<response_size>\d+)