$PrivDropToUser 系统日志

$PrivDropToUser 系统日志

我在 ubuntu 服务器上安装了 rsyslogd,启动了它,一切看起来都很好,但是服务器应该监听的端口尚未打开。

ubuntu@node7:~$ sudo service rsyslog restart
rsyslog stop/waiting
rsyslog start/running, process 14114

Netstat 显示它没有处于监听状态:

ubuntu@node7:~$ netstat -tlan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0    320 172.22.0.17:22          10.8.8.38:61335         ESTABLISHED
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 :::2776                 :::*                    LISTEN     
tcp6       0      0 :::2777                 :::*                    LISTEN     
tcp6       0      0 172.22.0.17:2777        172.22.0.11:56554       ESTABLISHED
tcp6       0      0 172.22.0.17:2776        172.22.0.11:39780       ESTABLISHED

/etc/rsyslog.conf 的样子如下(省略了大部分注释):

ubuntu@node7:~$ cat /etc/rsyslog.conf     
#################
#### MODULES ####
#################

$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)

$ModLoad imtcp
$InputTCPServerRun 514

###########################
#### GLOBAL DIRECTIVES ####
###########################

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$RepeatedMsgReduction on
$WorkDirectory /var/spool/rsyslog

$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup adm

$IncludeConfig /etc/rsyslog.d/*.conf

我看到/etc/rsyslog.d/35-server-per-host.conf以下几行,我怀疑这可能是原因。这是什么意思?

# Stop processing of all non-local messages. You can process remote messages
# on levels less than 35.
:fromhost-ip,!isequal,"127.0.0.1" ~

如果是的话,我该如何改变它以使服务器监听、接收并记录消息?

更新:

我注释掉了可疑行,但它仍然没有监听端口 514

答案1

应用装甲可能阻止 rsyslogd 监听此端口。您可以通过查看系统日志来验证这一点:

grep apparmor /var/log/syslog

如果您看到提到 rsyslog 的行,则这可能是原因。编辑/etc/apparmor.d/local/usr.sbin.rsyslogd/etc/apparmor.d/usr.sbin.rsyslogd如果不存在)并在花括号之间添加以下内容:

network inet dgram,
network inet6 dgram,
network inet stream,
network inet6 stream,

然后运行service apparmor reloadservice rsyslog restart

答案2

默认情况下,rsyslod 监听 unix 套接字,而不是 TCP 套接字。取消注释或添加以下两行:

module(load="imtcp")
input(type="imtcp" port="514")

就这样吧,玩得开心!

阿诺

答案3

解决方案(或解决方法)是将端口设置为较大的值。它适用于端口10514

例如在 RHEL 7.9 中更改文件

/etc/rsyslog.conf

# listen to get log from nifi
module(load="imudp")
input(type="imudp" port="10514")

module(load="imtcp")
input(type="imtcp" port="10514")

答案4

rsyslog 以用户 syslog 身份运行:解决方案是停止它并让它以 root 身份运行。然后它会监听端口 514

在 /etc/ryslogd.conf 中注释掉此内容

$PrivDropToUser 系统日志

相关内容