【发布时间】:2021-02-11 12:02:46
【问题描述】:
你能帮我在 logstash 中输入 RabbitMQ 吗? 我的应用程序将代码版本发送到 rabbitmq,然后将其存储在弹性堆栈中。 为rabbitmq中的应用程序创建了队列 名称:app_version_queue; 类型:经典; 耐用:真实
然后用该配置配置logstash:
input {
rabbitmq {
id => "rabbitmyq_id"
# connect to rabbit
host => "localhost"
port => 5672
vhost => "/"
# INPUT - PRODUCERS
key => "app_version_queue"
# OUTPUT - CONSUMER
# queue for logstash
queue => "logstash"
auto_delete => false
# Exchange for logstash
exchange => logstash
exchange_type => direct
durable => "true"
# No ack will boost your perf
ack => false
}
}
output {
elasticsearch {
hosts => [ "elasticsearch:9200" ]
index => "app_version-%{+YYYY.MM.dd}"
}
}
它有效,但现在,在 RabbitMQ 控制台中,我在表 Queued messages 中看到 准备就绪:914,444 未确认:0 总计:914,444
我在 rabbitmq 集群上的磁盘空间在 3 天内就用完了。 重启rabbitmq服务器后,所有空间都空闲了。
更新: 所有的原因,我为什么这样做,我想从那个链中删除 NIFI app=>rabbit=>nifi=>elastic 我想做:app=>rabbit=>logstash=>elastic
- 队列:app_version 我的应用程序向 nifi=>ELASTIC 发送消息 Queue1 - app_version_queue
- 队列:logstash,我用 logstash 创建的 Queue2 - logstash
我尝试停止 NIFI 发送,但消息没有离开。
【问题讨论】:
-
鉴于没有从队列中消耗消息,是什么让您认为“它有效”?您是否看到消息出现在 ElasticSearch 中?如果是这样,则必须在某处使用第二个队列。
-
是的,我在 elasticsearch 中看到了消息。嗯,所以我的消息处理了另一个队列,这是一个原因,为什么他们不删除?
标签: rabbitmq logstash logstash-configuration