#elastic-stack #logstash-grok #filebeat #elk #kibana-7
Вопрос:
У меня есть акции.войдите следующим образом , я хочу прочитать и нарисовать график(визуализация кибаны ) для каждого из акций
2021/06/13 17:58:42 : INFO | Stock = TCS.NS, Date = 2002-08-12
2021/06/13 17:58:42 : INFO | Volume=212976
2021/06/13 17:58:42 : INFO | Low=38.724998474121094
2021/06/13 17:58:42 : INFO | High=40.0
2021/06/13 17:58:42 : INFO | Open=38.724998474121094
2021/06/13 17:58:42 : INFO | Close=39.70000076293945
2021/06/13 17:58:42 : INFO | Stock = TCS.NS, Date = 2002-08-13
2021/06/13 17:58:42 : INFO | Volume=153576
2021/06/13 17:58:42 : INFO | Low=38.875
2021/06/13 17:58:42 : INFO | High=40.38750076293945
2021/06/13 17:58:42 : INFO | Open=39.75
2021/06/13 17:58:42 : INFO | Close=39.162498474121094
2021/06/13 17:58:42 : INFO | Stock = TCS.NS, Date = 2002-08-14
2021/06/13 17:58:42 : INFO | Volume=822776
2021/06/13 17:58:42 : INFO | Low=35.724998474121094
2021/06/13 17:58:42 : INFO | High=39.25
2021/06/13 17:58:42 : INFO | Open=39.25
2021/06/13 17:58:42 : INFO | Close=36.462501525878906
Можно ли использовать filebeat-> Эластичный->> Кибана для этого варианта использования.
Я могу прочитать сообщение на акцию на дату как сообщение в эластичном формате.
Но не в состоянии анализировать данные и визуализировать их в кибане.
Я использовал следующее в конвейере приема, теперь я могу видеть правильно извлеченные поля
[
{
"grok": {
"field": "message",
"patterns": [
"%{GREEDYDATA:irrelevant_data}Stock = %{GREEDYDATA:Stock}n%{GREEDYDATA:irrelevant_data}Date = %{GREEDYDATA:Bdate}n%{GREEDYDATA:irrelevant_data}Volume=%{NUMBER:Volume}n%{GREEDYDATA:irrelevant_data}Low=%{BASE10NUM:Low}n%{GREEDYDATA:irrelevant_data}High=%{BASE10NUM:High}n%{GREEDYDATA:irrelevant_data}Open=%{BASE10NUM:Open}n%{GREEDYDATA:irrelevant_data}Close=%{BASE10NUM:Close}"
]
}
}
Проблема в том, что теперь дата отображается в виде строкового поля, не знаю, как преобразовать его в правильный формат даты.
Комментарии:
1. Спасибо Бар Азулаю , прямо сейчас мне удалось прочитать многострочное сообщение в одно сообщение, Для чтения сообщения в надлежащем индексе я пытаюсь использовать grok, для которого до сих пор не легче найти учебные пособия.
Ответ №1:
Есть несколько процессоров обработки файлов, о которых вы можете прочитать здесь: https://www.elastic.co/guide/en/beats/filebeat/master/filtering-and-enhancing-data.html
Но в целом, разбор журналов не входит в область filebeat, я рекомендую использовать для этого logstash.
Ответ №2:
Я думал , что это можно сделать с помощью Aggregate
, но потом я понял, что в ваших журналах нет идентификаторов. Поэтому я думаю, что это очень хороший пример для многострочного модуля filebeat с использованием событий приложения, если я прав, начало ваших журналов должно быть INFO | Stock =
и конец должен быть INFO | Close=
. У них есть очень подходящий для этого случая. Это, кажется, соответствует вашим требованиям.
Ответ №3:
Да, это возможно. Я бы посоветовал вам отправить данные в Logstash из filebeat, так как в первом есть различные фильтры для обработки ваших данных, для которых вам будет проще создавать визуализации поверх них.
Итак, ваш раздел вывода будет выглядеть следующим образом:
hosts: ["LOGSTASH_IP:PORT"]
index: stocks-monitor