我正在运行ELK 堆栈的实现,它非常简单且易于配置。
我可以使用 netcat 将 TCP 输入推送到堆栈,如下所示:
nc localhost 5000 < /Users/me/path/to/logs/appOne.log
nc localhost 5000 < /Users/me/path/to/logs/appOneStackTrace.log
nc localhost 5000 < /Users/me/path/to/logs/appTwo.log
nc localhost 5000 < /Users/me/path/to/logs/appTwoStackTrace.log
Run Code Online (Sandbox Code Playgroud)
但我无法让 Logstash 读取我在配置中指定的文件路径:
input {
tcp {
port => 5000
}
file {
path => [
"/Users/me/path/to/logs/appOne.log",
"/Users/me/path/to/logs/appOneStackTrace.log",
"/Users/me/path/to/logs/appTwo.log",
"/Users/me/path/to/logs/appTwoStackTrace.log"
]
type => "log"
start_position => "beginning"
}
}
output {
elasticsearch {
hosts => "elasticsearch:9200"
}
}
Run Code Online (Sandbox Code Playgroud)
以下是有关 Logstash 输入的堆栈的启动输出:
logstash_1 | [2019-01-28T17:44:33,206][INFO ][logstash.inputs.tcp ] Starting tcp input listener {:address=>"0.0.0.0:5000", …Run Code Online (Sandbox Code Playgroud) logstash docker-compose logstash-configuration elastic-stack