Индексация журнала NodeJS Bunyan Logstash

Я использую Bunyan и bunyas-lumberjack, чтобы отправлять свои журналы в хранилище журналов и индексировать их в эластичном поиске. Проблема, с которой я сталкиваюсь, заключается в том, что я фильтрую журналы: я использую базовый фильтр для Logstash:

filter {
 if [type == "json"]{
        json {
                source => "message"
        }
   }
}

который помещает JSON из bunyan в поле source.message и индексирует его в эластичном поиске. Как я могу проиндексировать каждое поле из bunyan в определенное эластичное поле поиска, чтобы я мог выполнять поиск по нему или использовать его в Kibana?

Я прилагаю то, что я получил сейчас, и то, что я хочу получить в качестве примера. В настоящее время:

{
  "_index": "logstash-2015.10.26",
  "_type": "json",
  "_id": "AVCjvDHWHiX5VLMgQZIC",
  "_score": null,
  "_source": {
    "message": "{\"name\":\"myLog\",\"hostname\":\"atnm-4.local\",\"pid\":6210,\"level\":\"error\",\"message\":\"This should work!\",\"@timestamp\":\"2015-10-26T10:40:29.503Z\",\"tags\":[\"bunyan\"],\"source\":\"atnm-4.local/node\"}",
    "@version": "1",
    "@timestamp": "2015-10-26T10:40:31.184Z",
    "type": "json",
    "host": "atnm-4.local",
    "bunyanLevel": "50"
  },

Хотел:

{
  "_index": "logstash-2015.10.26",
  "_type": "json",
  "_id": "AVCjvDHWHiX5VLMgQZIC",
  "_score": null,
  "_source": {
    "message": {
      "name": example,
      "hostname": example,
      "etc": example

person alexsc    schedule 26.10.2015    source источник
comment
Кажется, что при добавлении кодека как json в lumberjack все будет работать хорошо : codec => json , но я не думаю, что смогу индексировать системные журналы, верно?   -  person alexsc    schedule 26.10.2015


Ответы (1)


Каждый вход в logstash может иметь разный кодек и тип. В вашем случае, если вы хотите индексировать bunyan и syslog, у вас будет два входа с двумя разными типами. Системный журнал будет иметь кодек «обычный», баньян будет иметь «json». Вам не нужен какой-либо фильтр для сообщений bunyan. JSON будет проанализирован, и поля появятся автоматически. Вам понадобится фильтр для анализа входных данных системного журнала.

person Michal Taborsky    schedule 06.11.2015