使用logstash和elasticseach

mfr*_*het 10 javascript node.js elasticsearch logstash

我实际上使用node-bunyan通过elasticsearch和logstash管理日志信息,我遇到了问题.

事实上,我的日志文件有一些信息,并在我需要它时填充.

问题是弹性搜索没有找到任何东西

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

我有一个空对象,因此,我无法将我的日志传递给kibana.

这是我的logstash conf文件:

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

output {

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

}
Run Code Online (Sandbox Code Playgroud)

我的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()
    )
Run Code Online (Sandbox Code Playgroud)

注意:日志写在日志文件中.问题出在logstash和elasticsearch之间: - /

编辑:查询http:// localhost:9200/logstash-*/给我"{}"一个空的JSON对象感谢提前

dav*_*cia 2

以下是我们如何解决 Logstash 无法在 Windows 上正确处理文件的此问题和其他问题:

  1. 安装 ruby​​-filewatch 补丁,如下所述: logstash + elasticsearch :重新加载相同的数据

  2. 正确配置 Logstash 输入插件:

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

“sincedb”跟踪日志文件的长度,因此每个日志文件应该有一行;如果不是,那么还有其他问题。

希望这可以帮助。