我正在編寫一個程序,將消息發佈到rsyslog
TCP套接字。我的程序應該能夠發佈任何消息。不幸的是,當我嘗試發佈某些類型的消息時 - 我收到錯誤。寫入rsyslog套接字時出錯
到目前爲止,對於以一個或多個數字開頭的消息來說,它似乎一直失敗。下面是一個可靠的生產我的本地工作站上這些錯誤Python程序:
import socket
s = socket.socket()
s.connect(('localhost', 514))
s.sendall(b'1\n')
下面是這個程序會導致出現在/var/log/messages
,而不是消息「1」:
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,謝謝,我不知道我應該遵循一個完整的協議。有沒有一個很好的Python庫可以將我的有效載荷打包成格式良好的系統日誌消息? –
我不知道,圖書館的建議是無關緊要的。自己動手吧,這可能很有趣。 –