我想使用LogStash读取RabbitMQ发布的消息,并将响应作为每个文件的一条JSON行写入本地文件夹。
我已经安装了Docker桌面并提取了LogStash Docker映像。
我创建了一个config
文件夹,其中包含以下logstash.conf
文件
#logstash.conf
input {
rabbitmq{
host => "xxxxx.com"
port => 5672
heartbeat => 30
durable => true
exchange => "xxxxx"
exchange_type => "topic"
user-id => "xxxx"
password => "xxxx"
key => "#xxxx#"
queue => "xxxxx"}}
output{
file {
path => "C:/logtest"}
}
}
然后我在Windows CMD中写docker run --rm -it -v C:/logstashconfig/ docker.elastic.co/logstash/logstash:6.0.1
但是我得到了错误。
Unable to retrieve license information from license server {:message=>"No Available connections", :class=>"LogStash::Outputs::ElasticSearch::HttpClient::Pool::NoConnectionAvailableError"}
警告。
Attempted to resurrect connection to dead ES instance, but got an error. {:url=>"http://logstash_system:xxxxxx@elasticsearch:9200/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :error=>"Elasticsearch Unreachable: [http://logstash_system:xxxxxx@elasticsearch:9200/][Manticore::ResolutionFailure] elasticsearch: Name or service not known"}
那我还需要安装其他东西吗,例如ElasticSearch?还是我必须更改配置文件中的内容才能使其正常工作?
答案 0 :(得分:0)
似乎您正在尝试将监视信息发送到在logstash.yml中标识为elasticsearch:9200
的elasticsearch服务器,或者您可能具有输出为elasticsearch
的管道。要么禁用它,要么更正主机以指向真正的Elasticsearch服务器。
答案 1 :(得分:0)
您可以在文档中看到:
https://www.elastic.co/guide/en/logstash/master/docker-config.html
默认情况下,logstash将在管道文件夹中查找配置。您必须使用logstash.conf和logstash.yml文件创建管道文件夹。 我遇到了同样的问题,只是把空的logstash.yml文件解决了