Logstash

Logstash RabbitMQ 輸出外掛

  • June 15, 2020

我是 Logstash 的新手,我想將 nginx 消息儲存在 RabbitMQ 隊列中,如下所示:

Nginx 日誌 -(輸入)-> Logstash -(輸出)-> RabbitMQ

日誌儲存配置:

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 不保存消息?

先感謝您!

我找到了問題的根本原因,我需要在我的隊列中添加一個綁定,添加綁定後,每條消息都正確記錄。 在此處輸入圖像描述

引用自:https://serverfault.com/questions/1021026