0

以下の構成で、logstash を使用して、tcp 経由で Gelf ログを解析したいと考えています。私のメッセージ ストリームはヌル バイトで区切られており、\n が含まれていません。残念ながら、設定で config.support_escapes: true を設定した後でも、logstash は区切り文字として \0 を受け入れません。このオプションは、より一般的な \n、\r、\t など専用です。

これらのgelfメッセージからlogstashイベントを生成するために機能するアプローチを知っている人はいますか?

logstash -e 'input { tcp { port => 7777 codec => json_lines { delimiter => "\0" } } } output { stdout{ } }'

メッセージは docker gelf ログ ドライバーによって生成され、次のようになります。 {"version":"1.1","host":"herm-VirtualBox","short_message":"{ counter: 1 } ","timestamp":1515490442.825,"level":6,"_command":"bin/sh -c COUNTER=1;while true; do printf \"{ counter: $COUNTER } \\n\"; COUNTER=$((COUNTER+1)); sleep 1; done","_container_id":"4aa5b8bd52381b005ad9c5d07db8bd71358a16510f16ef9e0f1887b25ac3040b","_container_name":"inspiring_booth","_created":"2018-01-09T09:34:02.506691976Z","_image_id":"sha256:00fd29ccc6f167fa991580690a00e844664cb2381c74cd14d539e36ca014f043","_image_name":"ubuntu","_tag":"4aa5b8bd5238"}

それらは常に {"version": で始まります。

4

0 に答える 0