最近做了一个项目,其中要求把日志发送给syslog服务器,客户端是用python写的,开始要求发送用UDP协议就行,简单;可后来要求改用TCP,问题就出来了,rsyslog收到日志,就是不写入指定的日志文件中,所以有必要把这其中的历程写下来。
UDP rsyslog
(1) 首先编辑/etc/rsyslog.conf,把udp注释去掉
# provides udp syslog reception
$modload imudp
$InputUDPServerRun 514
##### template ####
$template LongFileFormat,
"<%PRI%>%TIMESTAMP:::date-rfc3339% %syslogpriority% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
$template ScTemplate,"/var/log/tem.log"
if $msg contains "*|" then{
*.* ?ScTemplate;LongFileFormat
& stop
}
(2)客户端用python socket正常发送就行