2014-06-30 30 views
2

我rsyslog現在日誌局部正確,但是我想也遠程接收日誌,所以我增加規則:rsyslog現在發送不良編碼(損壞?)通過TCP數據(接收使用logstash)

*.* @@myIP:5141 

到我rsyslog.conf結束

要接收輸出,我跑logstash與配置

input { tcp { port => 5141 } } 
output { stdout {} } 

Logstash預計UTF-8編碼,但我得到的錯誤

接收具有比你配置

不同的字符編碼本身似乎的消息會出現亂碼,或者編碼的混合的情況下,例如:

\ u0016 \ U0003 \ U0002 \ u0000V \ U0001 \ u0000的\ u0000R \ U0003 \ u0002S \ xB1R \ xAB5K \ XF6 \\\ xB9 \ XB2 \ XB4 \ XB1 \ xAE0 \噸\ u007F \ xDF`5 \ XF6 \ u0015 \ xC8)H \ xD7H \ xCF + & \ xD5T5 \ u0000 \ u0000 $ u00003 \ u0000E \ u00009 \ u0000 \ x88 \ u0000 \ u0016 \ u00002 \ u0000D \ u00008 \ u0000 \ x87 \ u0000 \ u0013 \ u0000f \ u0000/\ u0000A \ u00005 \ u0000 \ x84 \ u0000

注意一些條目是\ u00,而其他條目是\ x。甚至有多個反斜槓。

我想知道我是否搞亂了設置,或者如果我和服務器之間有什麼東西弄亂了消息?

我已經使用syslog logstash輸入,可以得到相同的結果

又如也嘗試:

\ u0016 \ U0003 \ U0002 \ u0000V \ U0001 \ u0000的\ u0000R \ U0003 \ u0002S \ xB1RiZ^\ XC3 \ xD9 \ u001Cj \一個\ XD4 \ xE0 \ xECr \ x8E \ XAC \ XF5 \ u001A \ xB9 + \ u07B9 \ xE5 \ xF9 \ xA3''z \ u0018} 9個\ u0000的\ u0000的$ \ u00003 \ u0000E \ u00009 \ u0000的\ X88 \ u0000的\ u0016 \ u00002 \ u0000D \ u00008 \ u0000的\的x87 \ u0000的\ u0013 \ u0000f \ u0000的/ \ u0000A \ u00005 \ u0000的\ X84 \ u0000的

編輯: 我發現我的問題的來源,它是加密相關的。不幸的是,我不能透露我做了什麼來解決它,只要說下面的John Petrone的答案是類似問題的良好開端,以便未來的讀者可以體驗

+0

您使用的是什麼版本的Logstash? –

+0

我目前使用的是1.4.2 – OverlordAlex

+0

Darn,錯過了5分鐘的編輯窗口。忘了提及我正在使用rsyslog 7.2.4 – OverlordAlex

回答

1

問題是,您正在攝入的系統日誌源正在發送數據非Logger的UTF-8格式,這是它所期待的。你已經基本上得到了行動的3道菜:

  1. 有無rsyslog現在更正此對您:使用rsyslog現在mmutf8fix模塊 修復無效UTF-8序列。 http://www.rsyslog.com/doc/mmutf8fix.html

  2. 變化Logstash使用更合適的字符集:您可以更改 默認字符集爲平原編解碼器: http://logstash.net/docs/1.4.2/codecs/plain。你將需要 實驗一下,我會在這裏檢查一個起點。 https://logstash.jira.com/browse/LOGSTASH-1047

  3. 源更改爲輸出UTF-8:不知道來源是 收集rsyslog現在我不能怎樣才能使 這種變化發表評論。

我開始選項1,如果不工作進入選項2

+0

感謝您的輸入, 1.(可從以下版本開始:7.5.4)看起來很有前途,但是我被卡在遠程版本7.2.4上。升級它已經有很多年了,所以我現在可以這麼做。 2.如果我知道會發生什麼,更改charset將是完美的,但我會玩耍,看看會發生什麼。 3.查看rsyslog輸出的文件的編碼(使用文件-bi),它們都聲稱是utf-8。所以我不確定這是一個轉換rsyslog在寫入文件之前做的轉換,還是它的源代碼 – OverlordAlex

+0

我只是有一個想法,rsyslog是否有可能以某種方式加密流量,在我身邊解釋? – OverlordAlex

+0

似乎更有可能是一個編碼問題 –

3

這樣神奇的字符串你找回那看起來像打破編碼實際上是SSL握手請求。

我懷疑你所做的是(就像我剛纔那樣)在logstash中錯誤地配置了tcp輸入。具體而言,我忘了添加ssl_enable => true。因此,它正在偵聽正常的TCP並獲得SSL握手並盡職盡責地將其記錄爲垃圾。