Bonjour à tous,
Je suis nouveau sur logstash et je travaille actuellement sur une extraction de données depuis un fichier log (Apache) en vu d'être utilisées dans ES.
Voici le type de données log que je traite : ("access_log")
94.219.44.54 - - [09/Dec/2015:00:00:13 +0100] "GET /r17.gif?rnd=0-1-13088-1-13088-27275-4262501361-xrqkaMOXebiyfcifcaeqOgyO8BFc8a8W_SgDSWu4_mgDSWvaW@wW5ajkdWGdeduyIrKGacJZG4cGbfaawGOiabaagaaGacGayafQe2j1DhrVBJiUyw1ZlMH2lNbYB2qa HTTP/1.1" 200 43 "https://www.website.com/search/?text=hager+antennen++sockelleiste&filter=&aliasname=" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0" PID=2708 T=546 XF=[94.219.44.54] H=10.240.1.252
Mon fichier .conf est le suivant : (apache.conf)
input {
file {
path => "C:/Users/me/Desktop/P5 - Apache/Log/access_log"
start_position => "beginning"
}
}
filter {
grok {
patterns_dir => "./patterns
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]}
}
output {
elasticsearch { hosts => ["10.155.51.12:9201"]}
stdout { codec => rubydebug }
}
Mon patterns est le suivant : (patterns)
PID PID=(\d*)
SERVERIP H=(\d.*)
DURATION T=(\d*)
COMMONAPACHELOG %{IPORHOST:clientip} %{HTTPDUSER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{PID:pid}
COMBINEDAPACHELOG %{COMMONAPACHELOG} %{QS:referrer} %{QS:agent}
Mon résultat est le suivant :
{
"message" => "94.219.44.54 - - [09/Dec/2015:00:00:13 +0100] \"GET /r17.gi
f?rnd=1-1-13088-1-13088-27275-4262501361-xrqkaMOXebiyfcifcaeqOgyO8BFc8a8W_SgDSWu
4_mgDSWvaW@wW5ajkdWGdeduyIrKGacJZG4cGbfaawGOiabaagaaGacGayafQe2j1DhrVBJiUyw1ZlMH
2lNbYB2qa HTTP/1.1\" 200 43 \"https://www.website.com/search/?text=hager+a
ntennen++sockelleiste&filter=&aliasname=\" \"Mozilla/5.0 (Windows NT 6.1; WOW64;
rv:35.0) Gecko/20100101 Firefox/35.0\" PID=2708 T=490 XF=[94.219.44.54] H=10.24
0.1.252",
"@version" => "1",
"@timestamp" => "2015-12-17T10:41:55.018Z",
"host" => "HQLP7575SN1396",
"path" => "C:/Users/me/Desktop/P5 - Apache/Log/access_log"
,
"tags" => [
[0] "_grokparsefailure"
]
}
Mon problème est le suivant :
Je tente d'extraire des données supplémentaires (PID, H(serverip) et T(duration)) mais je n'arrive pas à intégrer des requètes Regex ou lier mon .conf à mon patterns. Je n'ai pour l'instant pas réussi à trouver une réponse viable dans la doc.
Auriez-vous éventuellement une piste?
Merci par avance,
Florian.