【发布时间】:2014-07-09 12:10:43
【问题描述】:
我正在将 UDP 上的 syslog 发送到 remotehost,它工作正常,但是当我在 tcp 上发送日志时,日志没有路由到远程主机。 我在 FreeBSD8.3 上使用 syslog 服务器
谁能告诉我如何使用 syslog 服务器通过 TCP 将日志发送到远程主机。
提前致谢。
【问题讨论】:
标签: syslog
我正在将 UDP 上的 syslog 发送到 remotehost,它工作正常,但是当我在 tcp 上发送日志时,日志没有路由到远程主机。 我在 FreeBSD8.3 上使用 syslog 服务器
谁能告诉我如何使用 syslog 服务器通过 TCP 将日志发送到远程主机。
提前致谢。
【问题讨论】:
标签: syslog
我在尝试将日志消息发送到侦听 tcp 端口 10514 的 rsyslog 服务器时遇到的一个问题是它需要最后一个字节 0A 或换行符。我发现了这个 tcpdumping 网络猫,因为它正在工作,但套接字连接却没有。例如,以下将不起作用(155 用于 local3 + err 级别):
import socket
syslogSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
syslogSocket.connect(('127.0.0.1', 10514))
syslogSocket.send('<155>TEST FROM PYTOHON\000')
syslogSocket.close()
但这会起作用:
import socket
syslogSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
syslogSocket.connect(('127.0.0.1', 10514))
syslogSocket.send('<155>TEST FROM PYTOHON\n')
syslogSocket.close()
要获得 155,请查看如下页面: http://linux.byexamples.com/archives/412/syslog-sending-log-from-remote-servers-to-syslog-daemon/
因为 PRI = (facility
PRI = (19<<3) + 3
152 + 3
155
【讨论】: