Использование логсташей и эластичных элементов

Я использую node -bunyan для управления информацией журнала через elasticsearch и logstash, и я сталкиваюсь с проблемой.

Фактически, мой файл журнала имеет некоторую информацию и отлично заполняется, когда мне это нужно.

Проблема заключается в том, что поиск упругих объектов не находит ничего на

http://localhost:9200/logstash- */

У меня есть пустой объект, и поэтому я не могу доставить свой журнал в kibana.

Здесь мой файл журнала logstash:

input {
    file {
        type => "nextgen-app"
        path => [ "F:\NextGen-dev\RestApi\app\logs\*.log" ]
        codec => "json"
    }   
}

output {

  elasticsearch {
 host => "localhost"
 protocol => "http"
 }

}

И мой код js:

log = bunyan.createLogger({
      name: 'myapp',
      streams: [
        {
          level: 'info',
          path: './app/logs/nextgen-info-log.log'
        },
        {
          level: 'error',
          path: './app/logs/nextgen-error-log.log'
        }
      ]
    })

router.all('*', (req, res, next)=>
      log.info(req.url)
      log.info(req.method)
      next()
    )

NB: журналы хорошо написаны в файлах журнала. Проблема заключается в поиске logstash и elasticsearch: -/

EDIT: запрос http://localhost:9200/logstash- */дает мне "{}" пустой объект JSON Спасибо за продвижение

Ответ 1

Вот как нам удалось устранить эту и другие проблемы, когда Logstash корректно обрабатывает файлы в Windows:

  • Установите патч ruby-filewatch, как описано здесь: logstash + elasticsearch: перезагружает те же данные

  • Правильно настройте входной плагин Logstash:

    input {
      file {
          path => ["C:/Path/To/Logs/Directory/*.log"]
          codec => json { }
          sincedb_path => ["C:/Path/To/Config/Dir/sincedb"]
          start_position => "beginning"
      }
    }
    
    ...
    

"sincedb" отслеживает длину ваших файлов журналов, поэтому для каждого файла журнала должна быть одна строка; если нет, то что-то еще не так.

Надеюсь, что это поможет.

Ответ 2

Объем вывода выглядит не полным. Здесь список выходных параметров http://logstash.net/docs/1.4.2/outputs/elasticsearch

Пожалуйста, попробуйте:

input {
    file {
        type => "nextgen-app"
        path => [ "F:\NextGen-dev\RestApi\app\logs\*.log" ]
        codec => "json"
    }   
}

output {
    elasticsearch {
        host => "localhost"
        port => 9200
        protocol => "http"
        index => "logstash-%{+YYYY.MM.dd}"
    }
}

В качестве альтернативы вы можете попробовать транспортный протокол:

output {
    elasticsearch {
        host => "localhost"
        port => 9300
        protocol => "transport"
        index => "logstash-%{+YYYY.MM.dd}"
    }
}

Я также рекомендую использовать Kibana в качестве средства просмотра данных. Вы можете скачать его на https://www.elastic.co/downloads/kibana