【发布时间】:2018-07-10 01:15:28
【问题描述】:
我使用来自 elastic.co 的图像创建了 logstash 和 elasticsearch docker 容器。当我附加到我设置为输入文件的文件时,我看不到来自 logstash 或 elasticsearch 的任何输出。这个page 并没有太大帮助,也无法在 google 或 stackoverflow 上找到我的确切问题。
这就是我启动容器的方式:
docker run \
--name elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
docker.elastic.co/elasticsearch/elasticsearch:6.3.1
docker run \
--name logstash \
--rm -it -v $(pwd)/elk/logstash.yml:/usr/share/logstash/config/logstash.yml \
-v $(pwd)/elk/pipeline.conf:/usr/share/logstash/pipeline/pipeline.conf \
docker.elastic.co/logstash/logstash:6.3.1
这是我的管道配置文件:
input {
file {
path => "/pepper/logstash-tutorial.log"
}
}
output {
elasticsearch {
hosts => "http://x.x.x.x:9200/"
}
stdout {
codec => "rubydebug"
}
}
Logstash 和 elasticsearch 似乎开始正常。 示例 logstash 启动输出:
[INFO ][logstash.inputs.beats ] Beats inputs: Starting input listener {:address=>"0.0.0.0:5044"}
[INFO ][logstash.pipeline ] Pipeline started successfully {:pipeline_id=>"main", :thread=>"#<Thread:0x6dc306e7 sleep>"}
[INFO ][logstash.agent ] Pipelines running {:count=>2, :running_pipelines=>[:main, :".monitoring-logstash"], :non_running_pipelines=>[]}
[INFO ][org.logstash.beats.Server] Starting server on port: 5044
[INFO ][logstash.inputs.metrics ] Monitoring License OK
[INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
弹性搜索启动输出示例:
[INFO ][o.e.c.r.a.AllocationService] [FJImg8Z] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.monitoring-logstash-6-2018.07.10][0]] ...]).
因此,当我对 logstash-tutorial.log 进行更改时,我看不到来自 logstash 或 elasticsearch 的任何终端输出。如何正确获取输出或配置logstash和elasticsearch?
【问题讨论】:
-
你最后是怎么解决的。我遇到了同样的问题
-
@user2256235 如果您不使用容器化,您可能会使其工作。我们最终迁移到 AWS 上的 Elasticsearch Service 并使用 Kinesis Firehose 获取日志。少一点努力。 ELK 需要大量设置,但当然 ELK 更便宜。
标签: docker elasticsearch input logstash elastic-stack