我实际上使用node-bunyan通过elasticsearch和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()
)
注意:日志写得很好。问题出在logstash和elasticsearch之间: - /
编辑:查询http://localhost:9200/logstash- * /给我" {}"一个空的JSON对象 谢谢你提前
答案 0 :(得分:2)
以下是我们如何设法解决Logstash在Windows上无法正确处理文件的问题和其他问题:
按照此处的说明安装ruby-filewatch补丁: logstash + elasticsearch : reloads the same data
正确配置Logstash输入插件:
input { file { path => ["C:/Path/To/Logs/Directory/*.log"] codec => json { } sincedb_path => ["C:/Path/To/Config/Dir/sincedb"] start_position => "beginning" } } ...
" sincedb"跟踪您的日志文件长度,因此每个日志文件应该有一行;如果没有,那么还有其他错误。
希望这有帮助。
答案 1 :(得分: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
下载