Распределение трассировки и визуализация эластичного стека - PullRequest
0 голосов
/ 31 мая 2019
2019-06-03 10:45:00.051  INFO [currency-exchange,411a0496b048bcf4,8d40fcfea92613ad,true] 45648 --- [x-Controller-10] logger                                   : inside exchange

Это формат журнала в моей консоли. Я использую Spring Cloud Stream для переноса моего журнала из приложения в logstash. Это формат анализа журнала в logstash

grok {
              match => { "message" => "%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:severity}\s+\[%{DATA:service},%{DATA:trace},%{DATA:span},%{DATA:exportable}\]\s+%{DATA:pid}\s+---\s+\[%{DATA:thread}\]\s+%{DATA:class}\s+:\s+%{GREEDYDATA:rest}" }
       }

Это мой logstash.conf

input { kafka { topics => ['zipkin'] } } filter { # pattern matching logback pattern grok { match => { "message" => "%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:severity}\s+\[%{DATA:service},%{DATA:trace},%{DATA:span},%{DATA:exportable}\]\s+%{DATA:pid}\s+---\s+\[%{DATA:thread}\]\s+%{DATA:class}\s+:\s+%{GREEDYDATA:rest}" } } } output { elasticsearch {hosts => ['localhost:9200'] index => 'logging'} stdout {} }

и это мой вывод в консоль log-stash. который разбирает исключение

{ "message" => "[{\" traceId \ ": \" 411a0496b048bcf4 \ ", \" parentId \ ": \" 8d40fcfea92613ad \ ", \" id \ ": \" f14c1c332d2ef077 \ ", \" kind \ ": \ "КЛИЕНТ \", \ "имя \": \ "получить \", \ "метка времени \": 1559538900053889, \ "продолжительность \": 16783, \ "localEndpoint \": {\ "SERVICENAME \": \ "валюта -обменное \», \ "ipv4 \": \ "10.8.0.7 \"}, \ "теги \": {\ "http.method \": \ "GET \", \ "http.path \": \ "/ преобразования / 1 / до / 4 \"}}, {\ "traceId \": \ "411a0496b048bcf4 \", \ "ParentId \": \ "411a0496b048bcf4 \", \ "идентификатор \": \ "8d40fcfea92613ad \" \ "имя \": \ "Hystrix \", \ "метка времени \": 1559538900050039, \ "продолжительность \": 34500, \ "localEndpoint \": {\ "SERVICENAME \": \ "валюты обмена \", \ "ipv4 \": \ "10.8.0.7 \"}}, {\ "traceId \": \ "411a0496b048bcf4 \", \ "идентификатор \": \ "411a0496b048bcf4 \", \ "вид \": \ "Серверные \ "\ "имя \": \" получить / Конвертировать \ "\ "метка времени \": 1559538900041446, \ "продолжительность \": 44670, \ "localEndpoint \": {\ "SERVICENAME \": \ "валюты обмена \", \ "ipv4 \": \" 10.8.0.7 \ "}, \" remoteEndpoint \ ": {\" ipv6 \ ": \" :: 1 \ "\ "порт \": 62200}, \ "теги \": {\" http.method \ ": \" GET \», \ "http.path \": \ "/ преобразовать \", \ "mvc.controller.class \": \ "регулятор \", \ "mvc.controller.method \": \ "перерабатывать\"}}]", "@timestamp" => 2019-06-03T05: 15: 00.296Z, "@version" => "1", "tags" => [ [0] "_grokparsefailure" ]}

1 Ответ

0 голосов
/ 01 июня 2019

Когда я использую отладчик Grok, встроенный в Kibana (в разделе Dev Tools), я получаю следующий результат из вашего примера журнала и шаблона grok:

{
  "severity": "DEBUG",
  "rest": "GET \"/convert/4/to/5\", parameters={}",
  "pid": "35973",
  "thread": "nio-9090-exec-1",
  "trace": "62132b44a444425e",
  "exportable": "true",
  "service": "currency-conversion",
  "class": "o.s.web.servlet.DispatcherServlet",
  "timestamp": "2019-05-31 05:31:42.667",
  "span": "62132b44a444425e"
}

Это выглядит правильно для меня. Так что же это за недостающая часть?

Также вывод журнала, который вы показываете, содержит "ipv4":"192.168.xx.xxx"},"remoteEndpoint": {"ipv6":"::1","port":55394},"tags": ..., которого нет в журнале примеров. Откуда это?

...