2014-03-27 56 views
0

我剛剛將logstash-elasticearch設置改爲包含rabbitmq,因爲我無法使用tcp連接將消息快速轉換到logstash。現在,logstash從隊列中讀取數據的速度非常快,但我沒有看到消息傳入kibana。一個錯誤顯示缺少時間戳字段。我用了插件/頭查看數據,這是奇怪的:來自rabbitmq的數據沒有被讀入kibana儀表板

_index _type _id     ▼_score @version @timestamp 
pt-index logs Bv4Kp7tbSuy8YyNi7NEEdg  1   1   2014-03-27T12:37:29.641Z 

這是我的conf文件看起來像現在下面什麼都看起來像:

input { 
rabbitmq { 
queue => "logstash_queueII" 
host => "xxx.xxx.x.xxx" 
exchange => "logstash.dataII" 
vhost => "/myhost" 
} 
} 
output { 
    elasticsearch{ 
    host => "xxx.xxx.xx.xxx" 
    index => "pt-index" 
    codec => "json_lines" 
} 
} 

這是它是的RabbitMQ前:

input { 
tcp { 
    codec => "json_lines" 
    port => "1516" 
} 
} 
output { 
    elasticsearch { 
     embedded => "true" 
} 
} 

現在我所做的唯一的變化是建立在elasticsearch特定索引和索引有沒有數據,但是現在看來,消息的格式已經改變。它仍然是2/3字段的json消息,但不確定logstash正在讀取或從rabbitmq更改。我可以看到數據流入直方圖,但字段已消失。

"2014-03-18T14:32:02" "2014-03-18T14:36:24" "166" "google" 

這些是我期望的領域。就像我說過,所有這些在我做出改變之前都有效。

回答

-1

我已經看過類似配置的例子,但是他們沒有使用輸入到Elasticsearch的「json_lines」輸出編解碼器。輸出編解碼器會調整數據的格式,因爲它會離開logstash,我不認爲這是nessisary。嘗試刪除編解碼器,並通過將文件輸出添加到日誌來查看logstash正在輸出什麼,請確保這只是短小的樣本...