- 20, Oct 2024
- #1
У меня есть конфигурация «стек ELK», и сначала я выполнял стандартную подачу системного журнала «filebeat» из logstash с помощью плагина вывода elasticsearch. Это сработало просто отлично.
Теперь я добавил входной порт TCP (с назначенным «типом» для этих данных, чтобы делать это, если [type] == «thistype» для различения в фильтрах), свой собственный фильтр grok и вывод для обоих elasticsearch со своим собственным уникальным имя индекса, имя и файл document_type. Когда данные поступают через порт TCP, они записывают правильно отформатированные данные в выходной файл, как и ожидалось в плагине вывода файла, но данные не отображаются в Kibana, когда я выбираю данный индекс. Kibana распознает индекс из моей выходной конфигурации, а также перечисляет все поля/ключи, которые я назначаю в фильтре grok; однако, опять же, данные не доступны для поиска. Но он видит имена свойств (и даже добавляет к ним само свойство propertyName "keyword"!) Данные определенно обрабатываются правильно, как я уже упоминал, они появляются в выходных файлах плагина.
Что я здесь делаю не так? Моя конфигурация следующая:
input {
tcp {
host => "10.1.1.10"
port => 12345
type => "odata"
id => "odata"
codec => line
}
}
filter {
if [type] == "odata" {
grok {
match => { "message" => "%{QUOTEDSTRING:oid},\"%{WORD:oword1}\",\"%{IPV4:oclientip}\",\"%{DATA:otimestamp}\",%{QUOTEDSTRING:opl},%{QUOTEDSTRING:oos},%{QUOTEDSTRING:oua}" }
remove_field => "message"
}
date {
match => ["otimestamp", "YYYY-MM-dd HH:mm:ss Z"]
}
mutate {
remove_field => "otimestamp"
remove_field => "host"
remove_field => "@version"
}
}
}
output {
# the if .. is here because there are other types that are handled in this output since I centralize the input, filter, and output files to three distinct files.
if [type] == "odata" {
elasticsearch {
hosts => ["10.1.1.1:9200", "10.1.1.2:9200"]
sniffing => false
index => "odataindex"
document_type => "odatatype"
}
file {
path => "/tmp/odata_output"
}
}
}
Опять же, фильтр Грока в порядке; данные принимаются через TCP без проблем; и плагин вывода файлов отлично выводит интерпретированные/grokd поля. Кибана видит индекс «odataindex» и поля (такие как oid, oclientip, oua и т. д.) из фильтра grok. Он просто не возвращает никаких данных, когда я выполняю поиск.
Есть идеи? Я новичок в elastic/kibana/logstash и буду также признателен за любые советы по отладке этих вещей.
Заранее спасибо!
#elastic #logstash