Bonjour,
Suite au passage de LogStash avec cette conf
input {
file {
path => "C:/logstash-1.5.4/logstash-1.5.4/middle-global.2015-08-15.log"
start_position => beginning
}
}
filter {
grok {
match => { "message" => "%{DATESTAMP:date}.\[%{USERNAME:server}\].*INFO.*accessLogs \- %{IP:ip}.\- \- \[%{HTTPDATE:timestamp}*\].\"%{WORD:verb}.%{URIPATH:service}?%{URIPARAM:params}.HTTP/%{NUMBER:httpversion}\".%{NUMBER:responseCode}.%{NUMBER:responseSize}.%{QS:threadName}.%{QS:agent}.%{NUMBER:treatmentTime}"}
}
geoip {
source => "ip"
}
if "_grokparsefailure" in [tags] {
drop {}
}
}
output {
elasticsearch {
protocol => "http"
}
stdout {}
}
Je m’aperçois que les champs créés dans Elastic correspondant aux différents nombres et aux dates sont tous de format "String".
Exemple :
"treatmentTime" : {
"type" : "string",
"norms" : {
"enabled" : false
},
"fields" : {
"raw" : {
"type" : "string",
"index" : "not_analyzed",
"ignore_above" : 256
}
}
},
Dans les logs de logstash j'ai :
{
"message" => "2015-08-06 19:11:39,441 [middle] [pool-7-thread-656 ] INFO c.e.c.n.H.accessLogs - 10.10.12.12 - - [06/Aug/2015:19:11:39 +0200] \
"GET /service/search/s/catalog2?vl=fr&psz=16&maxCount=16 HTTP/1.1\" 200 17404 \"pool-7-thread-656\" \"Jakarta Commons-HttpClient/3.1\" 2",
"@version" => "1",
"@timestamp" => "2015-08-25T15:53:56.457Z",
"host" => "Opti780-info-3",
"path" => "C:/logstash-1.5.4/logstash-1.5.4/middle-global.2015-08-16.log",
"date" => "15-08-06 19:11:39,441",
"server" => "middle",
"ip" => "10.10.12.12",
"timestamp" => "06/Aug/2015:19:11:39 +0200",
"verb" => "GET",
"service" => "/service/search/s/catalog2",
"params" => "?vl=fr&psz=16&maxCount=16",
"httpversion" => "1.1",
"responseCode" => "200",
"responseSize" => "17404",
"threadName" => "\"pool-7-thread-656\"",
"agent" => "\"Jakarta Commons-HttpClient/3.1\"",
"treatmentTime" => "2"
}
Tout semble passé sous forme de chaine. Est-ce au niveau de l'expression grok qu'il y aurait un problème ?
Faut il créer un mapping particulier avant le lancement de logstash afin que les champs soient bien dans le type escompté ?
Merci d'avance,
Denis.