Я стараюсь, чтобы мои руки на стеке ELK. У меня проблема с моей Кибаной. Одно из полей в моих данных имеет тип integer, но на Kibana он показывает тип как неопределенный. Ниже приведены примеры данных, с которыми я работаю.Kibana не принимает данные
{
"took": 6,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "products",
"_type": "logs",
"_id": "AVivMgCnKd2m9Wr-3jBk",
"_score": 1,
"_source": {
"message": "product10,990\r",
"@version": "1",
"@timestamp": "2016-11-29T08:27:18.792Z",
"path": "/Users/B0079855/Documents/SERVERS/logstash-2.2.2/samples/products.csv",
"host": "LTB0079855-MAC.local",
"product_name": "product10",
"product_price": 990
}
}
]
}
}
Kibana не идентифицирует product_price как целое.
logstash конф:
input {
file {
path => "{filepath}"
# to read from the beginning of file
start_position => beginning
sincedb_path => "/dev/null"
}
}
filter {
csv {
columns => ["product_name", "product_price"]
}
mutate {
convert => { "product_price" => "integer" }
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "products"
}
stdout { codec => rubydebug }
}
Как сделать эту работу?
Я читаю данные через logstash из файла, и я преобразовываю его в целое число в фильтр. Моя конфигурация logstash для фильтра, как: 'фильтр { CSV { столбцы => [ "product_name", "PRODUCT_PRICE"] } мутировать { \t преобразования => { "PRODUCT_PRICE"=> "целое число"} \t} } ' –
Не могли бы вы показать нам logstash conf. С какого типа вы пытаетесь преобразовать? Вы используете плагин 'mutate'? Что делать, если вы не конвертируете его из своего логсташа и обновляете его через свое сопоставление, как я уже упоминал в ответе ниже? – Kulasangar
В случае, если я это сделаю с помощью инструкции обновления, мне придется делать это для каждого индекса. Похоже, мой журнал.'Вход { файл { путь => "{путь_к_файлу}" # читать с начала файла начальная_позиция => начиная sincedb_path => "/ Dev/нуль" } } фильтр { CSV { столбцы => [ "product_name", "PRODUCT_PRICE"] } мутировать { \t преобразования => { "PRODUCT_PRICE" => "целое число"} \t}} выход { elasticsearch { \t хостов => [ "локальный: 9200"] \t \t индекс => "продукты" \t} STDOUT {кодек => rubydebug} } ' –