2014-07-09 268 views
1

我發送系統日誌在UDP到遠程主機它的工作正常,但是當我發送日誌在TCP然後日誌不路由到遠程主機。 我在FreeBSD8.3上使用系統日誌服務器如何發送系統日誌通過TCP在系統日誌服務器

任何人都可以告訴我如何使用syslog服務器將日誌發送到TCP上的遠程主機。

在此先感謝。

回答

0

我試圖將日誌消息發送到偵聽tcp端口10514的rsyslog服務器時遇到的一個問題是,它需要最後一個字節爲0A或換行符。我發現這個tcpdump網貓,因爲這是工作,但套接字連接沒有。對於實例以下將無法正常工作(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 =(設施< < 3)+嚴重性 而local3設施== 19 和嚴重性ERR = 3

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