2016-11-23 64 views
1

我們無法通過imudp將消息發送到rsyslog。我們的消息包含冒號(「:」),但imudp似乎將其用作分隔符。Rsyslog imudp拆分包含冒號的郵件

我們是否可以禁用分隔符,以便將整個消息讀入單個字段?

如果這不是因爲imudp,有人能指出實際問題在哪裏嗎?模板構建有問題嗎?

INPUT
echo "deploys.test.myservice:4|c" | nc -w0 -u localhost 12345

rsyslog現在模板
template(name="json_lines" type="list" option.json="on") { constant(value="{ \"timestamp\":\"") property(name="timestamp" dateFormat="rfc3339") constant(value="\",\"message\":\"") property(name="msg") constant(value="\",\"host\":\"") property(name="hostname") constant(value="\",\"type\":\"") property(name="syslogtag") constant(value="\"}") }

輸出
{ "timestamp":"2016-11-22T16:15:15.773754+05:30", "message":"4|c", "host":"localhost", "type":"deploys.test.myservice:" }

提前感謝!

回答

0

免責聲明:如果您想接受原始消息,而無需任何處理我仍然在積極的學習rsyslog現在

的輸入/輸出的看一看的pmnull module。從documentation

例子:

module(load="imtcp") 
module(load="pmnull") 

input(type="imtcp" port="13514" ruleset="ruleset") 
parser(name="custom.pmnull" type="pmnull") 

ruleset(name="ruleset" parser="custom.pmnull") { 
     action(type="omfile" file="rsyslog.out.log") 
} 

想必你可以設置一個UDP輸入相同的方式,這裏顯示的TCP輸入。

+0

感謝您的回答,@deoren,看起來像它會做我想做的,但在這一點上我不能檢查它,因爲它太長了,我沒有安裝方便。只要我找到一個免費的週末,我會盡快給你一個機會。 – galactocalypse

+0

不客氣。如果遇到實施更改的問題,請參閱[郵件列表](http://lists.adiscon.net/mailman/listinfo/rsyslog)和[論壇](http://kb.monitorware.com/rsyslog-f40。 html)是很好的資源,以及這裏的StackExchange站點。 – deoren