2015-04-17 5 views
10

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

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

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

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 Спасибо за заранее

+0

Что такое вывод 'http: // localhost: 9200/_cat/indices? V'? –

+0

Он возвращает только: «индекс состояния здоровья pri rep docs.count docs.deleted store.size pri.store.size» – mfrachet

+0

в порядке .. какую версию ES вы используете? Кроме того, перезапустите агент старта и проверьте его журналы на наличие ошибок или предупреждений. –

ответ

2

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

  1. Установите рубинового FileWatch патч, как описано здесь: logstash + elasticsearch : reloads the same data

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

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

«sincedb» отслеживает длину файлов журнала, поэтому он должен иметь одну строку на лог-файл; если нет, то что-то еще не так.

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

+0

Я прочитал и попробовал документ, но кажется, что я не могу найти файл .jar в 4-х точках: «Открыть файл logstash-1.3.3-flatjar.jar в 7-Zip». У меня нет ничего подобного в logstash – mfrachet

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

Смежные вопросы