私はrsyslog
TCPソケットにメッセージを発行するプログラムを書いています。私のプログラムはどんなメッセージも公開できるはずです。残念ながら、特定のタイプのメッセージを公開しようとするとエラーが発生します。rsyslogソケットに書き込むときのエラー
これまでのところ、1桁以上の数字で始まるメッセージでは一貫して失敗しているようです。ここでは確実に私のローカルワークステーション上で、これらのエラーを生成しますPythonプログラムです:ここでは
import socket
s = socket.socket()
s.connect(('localhost', 514))
s.sendall(b'1\n')
は、このプログラムではなく、メッセージ「1」、/var/log/messages
に表示されるように引き起こすものである:
Sep 1 16:08:52 dunpeal rsyslogd: Framing Error in received TCP message: delimiter is not SP but has ASCII value 10.
Sep 1 16:08:52 dunpeal rsyslogd: Incomplete frame at end of stream in session 0x7fe6e801cc80 - ignoring extra data (a message may be lost).
起こっていますここに?
有効な[syslog](https://tools.ietf.org/html/rfc3164)メッセージを送信しようとしていないようです。 –
@JamesKPolk、ありがとう、私は、私が従うべきプロトコル全体があることを知らなかった。ペイロードを適切な形式のsyslogメッセージにパッケージ化できるPythonライブラリがありますか? –
私は知らないし、ライブラリの推奨事項は話題外である。自分でやってみると楽しいかもしれません。 –