сообщение выглядит как_grokparsefailure на лаке войти
1.2.3.4 "-" - - [19/Apr/2016:11:42:18 +0200] "GET http://monsite.vpù/api/opa/status HTTP/1.1" 200 92 "-" "curl - API-Player - PREPROD" hit OPA-PREPROD-API - 0.000144958
Мой рисунок Grok является
grok {
match => { "message" => "%{IP:clientip} \"%{DATA:x_forwarded_for}\" %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})\" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:agent} (%{NOTSPACE:hitmiss}|-) (%{NOTSPACE:varnish_conf}|-) (%{NOTSPACE:varnish_backend}|-) %{NUMBER:time_firstbyte}"}
}
У меня есть grokparsefailure тег, тогда как все мои поля выполнены правильно за исключением последнего, я получаю 0 вместо из 0.000144958
полное сообщение в ЭС
{
"_index": "logstash-2016.04.19",
"_type": "syslog",
"_id": "AVQt7WSCN-2LsQj9ZIIq",
"_score": null,
"_source": {
"message": "212.95.71.201 \"-\" - - [19/Apr/2016:11:50:12 +0200] \"GET http://monsite.com/api/opa/status HTTP/1.1\" 200 92 \"-\" \"curl - API-Player - PREPROD\" hit OPA-PREPROD-API - 0.000132084",
"@version": "1",
"@timestamp": "2016-04-19T09:50:12.000Z",
"type": "syslog",
"host": "212.95.70.80",
"tags": [
"_grokparsefailure"
],
"application": "varnish-preprod",
"clientip": "1.2.3.4",
"x_forwarded_for": "-",
"ident": "-",
"auth": "-",
"timestamp": "19/Apr/2016:11:50:12 +0200",
"verb": "GET",
"request": "http://monsite.com/api/opa/status",
"httpversion": "1.1",
"response": "200",
"bytes": "92",
"referrer": "\"-\"",
"agent": "\"curl - API-Player - PREPROD\"",
"hitmiss": "hit",
"varnish_conf": "OPA-PREPROD-API",
"varnish_backend": "-",
"time_firstbyte": "0.000132084",
"geoip": {
"ip": "1.2.3.4",
"country_code2": "FR",
"country_code3": "FRA",
"country_name": "France",
"continent_code": "EU",
"region_name": "C1",
"city_name": "Strasbourg",
"latitude": 48.60040000000001,
"longitude": 7.787399999999991,
"timezone": "Europe/Paris",
"real_region_name": "Alsace",
"location": [
7.787399999999991,
48.60040000000001
]
},
"agentname": "Other",
"agentos": "Other",
"agentdevice": "Other"
},
"fields": {
"@timestamp": [
1461059412000
]
},
"highlight": {
"agent": [
"\"curl - API-Player - @[email protected]@/[email protected]\""
],
"varnish_conf": [
"[email protected]@[email protected]/[email protected]"
],
"application": [
"@[email protected]@/[email protected]@[email protected]@/[email protected]"
],
"message": [
"1.2.3.4 \"-\" - - [19/Apr/2016:11:50:12 +0200] \"GET http://monsote.com/api/opa/status HTTP/1.1\" 200 92 \"-\" \"curl - API-Player - @[email protected]@/[email protected]\" hit [email protected]@[email protected]/[email protected] - 0.000132084"
]
},
"sort": [
1461059412000
]
}
Ответ: kibana не отображает очень мало цифр
Спасибо Ален, я удалил весь свой индекс, чтобы создать новый созданный индекс. Теперь правильное отображение (это строка) для time_firstbyte, но все равно '0' и grokparsefailure. Я также применил вашу идею (: int) – glmrenard
Веб-сайт http://grokconstructor.appspot.com/do/match#result подтверждает мой шаблон grok как OK (см. Изображение) – glmrenard
Я пробовал вашу идею 'grok { match => { "message" => "% {IP: clientip} \"% {DATA: x_forwarded_for} \ "% {USER: ident}% {USER: auth} \ [% {HTTPDATE: timestamp} \] \" (?:% {WORD: глагол}% {NOTSPACE: request} (?: HTTP /% {NUMBER: httpversion})? |% {DATA: rawrequest}) \ "% {NUMBER: response} (?:% {NUMBER: bytes} | -)% {QS: referrer}% {QS: agent} (% {NOTSPACE: hitmiss} | -)% {USERNAME: varnish_conf}% {USERNAME: varnish_backend}% {NUMBER: time_firstbyte: int} "} tag_on_failure => ["_grokparsefailure_varnish"] ', но мое сообщение grok по-прежнему _grokparsefailure ' – glmrenard