J'ai des données provenant de requêtes de base de données utilisant le plugin d'entrée jdbc et le résultat des requêtes contient le champ url
dont je veux extraire quelques propriétés.
Exemples d'URL :
- /incident.do?sys_id=0dc18b246faa17007a64cbe64f3ee4e1&sysparm_view
- /navpage_form_default.do
- /u_pm_prov_project_list.do?sysparm_userpref_module=fa547ce26f661
- JOB: email read events process
- JOB: System - reduce resources
J'ai ajouté des modèles de regex dans le fichier de modèles grok :
webpage_category .*
job_type .*
J'ai deux types d'URL donc j'ai utilisé un bloc if dans le bloc de filtre pour les distinguer
Config que j'ai essayée jusqu'à présent :
filter {
if [url] =~ /JOB: .*/ {
grok {
patterns_dir => ["/etc/logstash/patterns"]
match => {
"url" => "JOB: %{job_type:job_type}"
}
}
} else
if [url] =~ /\/.*\.do\?.*/ {
grok {
patterns_dir => ["/etc/logstash/patterns"]
match => {
"url" => "/{webpage_category:webpage_category}\.do\?.*"
}
}
}
}
La création d'un nouveau champ pour les URL commençant par JOB:
fonctionne correctement mais webpage_category
ne fonctionne pas du tout. Est-ce parce que le regex ne peut pas être utilisé à l'intérieur de match ?