ActiveMQ作为Logstash的消息代理
擴展Logstash時,通常會添加一個消息代理,該消息代理用于在一個或多個Logstash節點處理傳入消息之前臨時緩沖傳入的消息。 數據通過像Beaver這樣的發運人推送到代理, Beaver讀取日志文件并將每個事件發送到代理。 或者,應用程序可以使用Log4j附加程序之類的東西直接發送日志事件。
一個常見的選擇是將Redis用作將數據存儲在內存中的代理 ,但也可以使用其他選項(例如Apache Kafka)。 有時,組織不那么熱衷于引入很多新技術,并想重用現有商店。 ActiveMQ是一個廣泛使用的消息傳遞和集成平臺,它支持不同的協議,看起來非常適合用作消息代理。 讓我們看看將其集成的選項。
設置ActiveMQ
ActiveMQ可以使用隨附的腳本輕松設置。 在Linux上,只需執行./activemq console 。 使用http://127.0.0.1:8161/admin/上的管理控制臺,您可以創建新的隊列,甚至可以將消息排隊以進行測試。
使用AMQP消費消息
嘗試將ActiveMQ連接到Logstash的一種明顯方法是使用AMQP(高級消息隊列協議) 。 這是不同消息平臺所支持的標準協議。
AMQP曾經有一個Logstash輸入,但不幸的是,由于RabbitMQ是受支持的主要系統,因此它已重命名為Rabbitmq-input 。
讓我們看看如果嘗試將輸入與ActiveMQ一起使用會發生什么。
input {rabbitmq {host => "localhost"queue => "TestQueue"port => 5672} }output {stdout {codec => "rubydebug"} }我們告訴Logstash在名為TestQueue的隊列的標準端口上的localhost上偵聽。 結果應轉儲到標準輸出中。 不幸的是,Logstash僅發出錯誤,因為它無法連接。
Logstash startup completed RabbitMQ connection error: . Will reconnect in 10 seconds... {:level=>:error}在ActiveMQ日志中,我們可以看到我們的參數正確,但是不幸的是,兩個系統似乎都說出了不同的AMQP方言。
WARN | Connection attempt from non AMQP v1.0 client. AMQP,0,0,9,1 org.apache.activemq.transport.amqp.AmqpProtocolException: Connection from client using unsupported AMQP attempted ...不幸的是,這個選項。
使用STOMP消費消息
適當命名的“ 面向簡單文本的消息傳遞協議”是ActiveMQ支持的另一個選項。 幸運的是有一個專用的輸入 。 默認情況下,它不包含在Logstash中,但可以輕松安裝。
bin/plugin install logstash-input-stomp之后,我們可以在Logstash配置中使用它。
input {stomp {host => "localhost"destination => "TestQueue"} }output {stdout {codec => "rubydebug"} }這次我們更好了:Logstash確實可以連接并將消息轉儲到標準輸出。
bin/logstash --config stomp.conf Logstash startup completed {"message" => "Can I kick it...","@version" => "1","@timestamp" => "2015-07-22T05:42:35.016Z" }使用JMS消費消息
盡管stomp-input可以工作,但還有一個尚未發布但可以測試的選項: jms-input支持Java Messaging System,這是在JVM上進行消息傳遞的標準方法。
當前,您需要自己構建插件(該插件在我的計算機上不起作用,但應由我過時的本地jruby安裝引起)。
在ActiveMQ中獲取數據
現在我們知道了從ActiveMQ消費數據的方法,現在該考慮如何獲取數據了。使用Java時,您可以使用Log4j-或Logback -Appender之類的東西,這些東西使用JMS將日志事件直接推送到隊列中。
不幸的是,在傳輸數據時,似乎沒有哪個流行的解決方案能夠將數據推送到ActiveMQ。 如果您知道可以使用的任何解決方案,那么請留下您的評論。
總而言之,我認為可以將ActiveMQ用作Logstash的代理,但是在傳輸數據時可能還需要做更多的工作。
翻譯自: https://www.javacodegeeks.com/2015/08/activemq-as-a-message-broker-for-logstash.html
總結
以上是生活随笔為你收集整理的ActiveMQ作为Logstash的消息代理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 保本保息理财产品是否受到法律保护?
- 下一篇: 浦发汇理财是否保本?