El analizador de regex permite el uso de algunas expresiones regulares en datos recopilados.
Los agentes de vRealize Log Insight usan la expresión regular de biblioteca Boost de C++, que utiliza la sintaxis Perl. El analizador de regex se puede definir especificando un patrón de una expresión regular que contenga grupos de captura con nombre. Por ejemplo: (?<campo_1>\d{4})[-](?<campo_2>\d{4})[-](?<campo_3>\d{4})[-](?<campo_4>\d{4})
- Los nombres especificados en el patrón de expresión regular deben ser nombres de campos válidos para vRealize Log Insight.
- Los nombres deben contener solamente caracteres alfanuméricos y el carácter de guion bajo "_".
- El nombre no puede comenzar con un carácter digital.
Si se proporcionan nombres no válidos, se produce un error en la configuración.
Opciones del analizador de regex
La única opción requerida para el analizador de regex es la opción format.
Se puede usar la opción debug si se requiere información de depuración adicional.
Configuración
Para crear un analizador de regex, utilice regex como base_parser y proporcione la opción format.
Ejemplos de configuración de regex
El siguiente ejemplo se puede usar para analizar 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
Los resultados son los siguientes:
tag1=1234 tag2=5678 tag3=9123 tag4=4567
Para analizar registros de Apache con el analizador de regex, proporcione el formato de regex específico para los registros de Apache:
[parser|regex_parser] base_parser=regex format=(?<remote_host>.*) (?<remote_log_name>.*) (?<remote_auth_user>.*) \[(?<log_timestamp>.*)\] "(?<request>.*)" (?<status_code>.*) (?<response_size>.*)
Los resultados son los siguientes:
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
Consideraciones sobre rendimiento
El analizador de regex consume más recursos que otros analizadores como el analizador de CLF. Si puede analizar registros con otros analizadores, para obtener un mejor rendimiento, considere la posibilidad de utilizar esos analizadores en lugar del analizador de regex.
(?<remote_host>\d+.\d+.\d+.\d+) (?<remote_log_name>.*) (?<remote_auth_user>.*) \[(?<log_timestamp>.*)\] "(?<request>.*)" (?<status_code>\d+) (?<response_size>\d+)