Я создал фильтр, чтобы разбить наши файлы журналов, и у меня возникла следующая проблема. Я не могу понять, как сохранить части «сообщения» в их собственном поле или теге или как вы это называете. Я 3 дня новичок в logstash, и мне не повезло найти здесь кого-то, кто это знает.
Итак, для примера скажем, что это ваша строка журнала в файле журнала.
2017-12-05 [user:edjm1971] msg:Это сообщение от системы.
И что вы хотите сделать, так это получить значение пользователя и установить его в какое-то сопоставление индекса, чтобы вы могли искать все журналы, которые были этим пользователем. Также вы должны увидеть информацию из сообщения в своих полях в Kibana.
Мой файл pipe.conf для logstash похож на
grok {
match => {
"message" => "%{TIMESTAMP_ISO8601:timestamp} [sid:%{USERNAME:sid} msg:%{DATA:message}"
}
add_tag => [ "foo_tag", "some_user_value_from_sid_above" ]
}
Теперь, когда я запускаю регистратор для создания журналов, данные передаются в ES, и я вижу данные в KIBANA, но я вообще не вижу foo_tag со значением sid. Как именно я могу использовать это для создания нового тега, который сохраняется в ES, чтобы я мог видеть нужные мне данные из сообщения?
Примечание: с помощью инструментов регулярных выражений все это отлично анализирует форматы журналов, а журнал для logstash не выдает ошибок при обработке.
Также для сопоставления logstash используется некоторое автоматическое сопоставление, поскольку значение пути равно нулю.
Я тоже не понимаю, как создать сопоставление для этого.
Руководство очень ценится.
%{YEAR:year}-%{MONTHNUM:month}-%{MONTHDAY:day} \[user:%{USERNAME:sid}\] msg:%{GREEDYDATA:yourmessage}
и посмотреть, сможете ли вы отфильтровать sid в Kibana? - person Phonolog   schedule 09.12.2017\[
, должно работать везде. См. один из моих ответов здесь например. - person Phonolog   schedule 12.12.2017