使用 logstash 和弹性搜索
Using logstash and elasticseach
我实际上是在使用node-bunyan通过elasticsearch和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"
}
}
还有我的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 对象
感谢提前
以下是我们如何解决此问题以及 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" 跟踪您的日志文件长度,因此每个日志文件应该有一行;如果不是,那就是其他问题。
希望对您有所帮助。
您的输出范围看起来不完整。这是输出参数列表 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
下载
我实际上是在使用node-bunyan通过elasticsearch和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"
}
}
还有我的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 对象 感谢提前
以下是我们如何解决此问题以及 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" 跟踪您的日志文件长度,因此每个日志文件应该有一行;如果不是,那就是其他问题。
希望对您有所帮助。
您的输出范围看起来不完整。这是输出参数列表 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
下载