用python socket发送rsyslog日志

本文记录了一个项目中使用Python socket发送syslog日志的历程,从UDP改为TCP后遇到rsyslog不写入日志的问题。通过分析和测试,发现日志开头出现多余的字符,并找到了解决问题的关键——在字符串末尾添加 并使用raw-unicode-escape编码。
摘要由CSDN通过智能技术生成

最近做了一个项目,其中要求把日志发送给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正常发送就行

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值