如何在syslog服务器上通过TCP发送syslog

时间:2014-07-09 12:10:43

标签: syslog

我发送UDP上的syslog到remotehost工作正常但是当我发送登录tcp时,日志没有路由到远程主机。 我在FreeBSD8.3上使用syslog服务器

任何人都可以告诉我如何使用syslog服务器在TCP上向远程主机发送日志。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我尝试将日志消息发送到侦听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 =(设施&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&gt 而local3设施== 19 严重性错误= 3

PRI = (19<<3) + 3
        152 + 3
        155