我正在编写一个程序,将消息发布到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库可以将我的有效载荷打包成格式良好的系统日志消息? –
我不知道,图书馆的建议是无关紧要的。自己动手吧,这可能很有趣。 –