直到上周我还在使用 Ubuntu 10.04 使用 rsyslog 存储外部设备的日志信息。
升级到 Ubuntu 12.4 后,TCP 日志记录不再起作用。根本看不到数据包 - 甚至使用 tcpdump 也看不到 - 旧的 Ubuntu 机器仍然可以看到数据包。
UDP 在 Ubuntu 机器上使用相同的配置,并在外部设备上“使用 UDP”。
rsyslog 中有什么变化可以解释这一点吗?
我的rsyslog.conf
文件如下所示(带有更多注释):
$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
#$ModLoad immark # provides --MARK-- message capability
$KLogPath /proc/kmsg
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
###########################
#### GLOBAL DIRECTIVES ####
###########################
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# Set the default permissions for all log files.
#
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog
if $fromhost-ip startswith '192.168.0.10' then /var/log/caliDevice.log
& ~
# local/regular rules, like
'.' /var/log/syslog.log
$IncludeConfig /etc/rsyslog.d/*.conf
答案1
发现了一些解决方法的问题在 Launchpad 上:
选项包括:
rsyslog
通过删除$PrivDropToUser
和选项以 root 身份运行$PrivDropToGroup
,或者可能在文件中覆盖它们/etc/resolv.conf.d/
(我不确定这是否可能)。- 使用线程(git commit)上建议的“睡眠”解决方法。
- 监听端口 > 1024
- 支付两周的工作费用以确保正确完成修复。