使用 rsyslogd 在 Ubuntu 16.04.5 LTS 上。
我们有以下情况:
(1) 设备将 syslog 转发到 Ubuntu 主机。 (2) Ubuntu 主机将这些转发的消息存储在单独的日志文件中 (3) Ubuntu 主机还将其转发到第三台机器
详细说明当前配置的样子
(1) 在/etc/rsyslog.conf中,已启用以下功能:
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")
(2) 通过在 /etc/rsyslog.d 中创建 30-remotehosts.conf 来实现,内容如下:
:fromhost-ip, isequal, "<sending_IP>" /var/log/remotesyslog/<name>.log
& ~
(3) 通过在 /etc/rsyslog.d 中创建 10-send_to_other_hosts.conf 来实现,内容如下:
:fromhost-ip, isequal, "<sending_IP>" @<destination_IP>:514
到目前为止一切顺利,按预期工作。
然而,我们现在需要的是在发送到目的地之前更改日志行。
当前的一个示例日志行是
Dec 7 11:10:07 srvde450.rce-group.local [S=582442040] [SID=9642c9:20:3850677] 1 RTP packets lost: CID=217 [Code:0x600b] [CID:217] [Time:07-12@10:10:13]
在发送到目的地之前,我们需要将其更改为以下内容:
[S=582442040] [SID=9642c9:20:3850677] 1 RTP packets lost: CID=217 [Code:0x600b] [CID:217] [Time:07-12@10:10:13]
因此删除时间戳和来源。
如何才能实现这一目标呢?