Как извлечь функцию из Elasticsearch _source для индексации

Я использовал logstash, elasticsearch и kibana для сбора журналов. Файл журнала - это json, который выглядит следующим образом:

{"_id":{"$oid":"5540afc2cec7c68fc1248d78"},"agentId":"0000000BAB39A520","handler":"SUSIControl","sensorId":"/GPIO/GPIO00/Level","ts":{"$date":"2015-04-29T09:00:00.846Z"},"vHour":1}
{"_id":{"$oid":"5540afc2cec7c68fc1248d79"},"agentId":"0000000BAB39A520","handler":"SUSIControl","sensorId":"/GPIO/GPIO00/Dir","ts":{"$date":"2015-04-29T09:00:00.846Z"},"vHour":0}

и код, который я использовал в logstash:

input {
  file {
    type => "log"
    path => ["/home/data/1/1.json"]        
    start_position => "beginning"
  }
}

filter {
    json{
        source => "message"   
     }
}
output {
  elasticsearch { embedded => true }
  stdout { codec => rubydebug }
}

тогда вывод в elasticsearch:

{
"_index": "logstash-2015.06.29",
"_type": "log",
"_id": "AU5AG7KahwyA2bfnpJO0",
"_version": 1,
"_score": 1,
"_source": {
"message": "{"_id":{"$oid":"5540afc2cec7c68fc1248d7c"},"agentId":"0000000BAB39A520","handler":"SUSIControl","sensorId":"/GPIO/GPIO05/Dir","ts":{"$date":"2015-04-29T09:00:00.846Z"},"vHour":1}",
"@version": "1",
"@timestamp": "2015-06-29T16:17:03.040Z",
"type": "log",
"host": "song-Lenovo-IdeaPad",
"path": "/home/song/soft/data/1/Average.json",
"_id": {
"$oid": "5540afc2cec7c68fc1248d7c"
},
"agentId": "0000000BAB39A520",
"handler": "SUSIControl",
"sensorId": "/GPIO/GPIO05/Dir",
"ts": {
"$date": "2015-04-29T09:00:00.846Z"
},
"vHour": 1
}
}

Но вся информация в файле json в _source не индексируется, поэтому я не могу использовать kibana для их анализа.

кибана показывает, что анализ недоступен для полей объекта. _source - поля объекта

Как решить эту проблему?


person Wenson    schedule 29.06.2015    source источник
comment
Какую проблему (сообщение и т. д.) вы на самом деле получаете от кибаны?   -  person Alain Collins    schedule 29.06.2015
comment
Кибана не может получить атрибуты из _source, такие как agentId, handler, sensorId. Поскольку эти атрибуты не индексируются. Кибана может принимать только индексированные атрибуты. Kibana получает такие элементы, как _index, _type, _source, но не может принимать атрибуты в _source. Я не знаю, как позволить kibana читать эти атрибуты в _source.   -  person Wenson    schedule 29.06.2015
comment
Таким образом, поля не отображаются в списке полей с левой стороны кибаны, и их поиск (обработчик: SUSIControl) ничего не дает?   -  person Alain Collins    schedule 30.06.2015
comment
Документы в _source индексируются для запросов и будут повторно анализироваться из _source для использования kibana, судя по тому, что я испытал.   -  person Alain Collins    schedule 30.06.2015
comment
Тот факт, что вы их не видите, может означать, что вам нужно обновить индекс в Kibana. Если вы не знаете, как это сделать, проверьте этот вопрос: stackoverflow.com/questions/29690271/. Вы также можете проверить доступные поля, запросив сопоставления индекса GET /‹yourindex›/_mappings.   -  person Jettro Coenradie    schedule 30.06.2015
comment
Так что мне нужно сделать некоторые запросы в elasticsearch? Кибана, кажется, может анализировать только вещи из _source. Потому что я обновил индекс в Кибане, но ничего не изменилось.   -  person Wenson    schedule 01.07.2015