Logstash RabbitMQ 输出插件

Logstash RabbitMQ 输出插件

我是 Logstash 的新手,我想将 nginx 消息存储在 RabbitMQ 队列中,如下所示:

Nginx 日志 -(输入)-> Logstash -(输出)-> RabbitMQ

logstash 配置:

filter {
   grok {
      match => { "message" => "%{IPORHOST:remote_ip} - %{DATA:user_name} \[%{HTTPDATE:access_time}\] \"%{WORD:http_method} %{DATA:url} HTTP/%{NUMBER:http_version}\" %{NUMBER:response_code} %{NUMBER:body_sent_bytes} \"%{DATA:referrer}\" \"%{DATA:agent}\"" }
   }
}
output {
  rabbitmq {
    exchange => "nginx_app"
    host => "localhost"
    exchange_type => "topic"
    persistent => true
    passive => true
    heartbeat => 10
    arguments => {"x-ha-policy" => "all" }
    codec => "plain"
    port => 5672
  }
}

在 RabbitMQ Web 控制台中进行调试时,我看到以下情况:消息对 RabbitMQ 可见,但当我使用简单的 Python 脚本将消息添加到队列时,它不会同时将它们保存在队列中(所有内容都已保存), 在此处输入图片描述

我的配置有什么问题?为什么 RabbitMQ 不保存消息?

先感谢您!

答案1

我找到了问题的根本原因,我需要向队列添加绑定,添加绑定后,每条消息都会被正确记录。 在此处输入图片描述

相关内容