首页 > 解决方案 > Rsyslog - 日志未显示在服务器上

问题描述

尝试配置Rsyslog客户端以将日志发送到 Rsyslog 服务器。

两台机器都在带有Vagrant的 Centos7 上运行。

请参阅下面的每台机器的配置。

当我在客户端机器内登录时 - 它不会反映在服务器的日志中。

例如:

logger "Some message..."

但是当我将服务器的 IP 添加到命令中时:

logger -n 192.168.11.11 "Some message..."

我可以看到在服务器机器上创建了一个带有客户端 IP 的目录:

[root@server log]# ls -la
total 200
drwxr-xr-x. 11 root   root     4096 Aug  1 12:02 .
drwxr-xr-x. 18 root   root      254 Jul 31 21:39 ..
drwx------.  2 root   root       25 Jul 31 22:18 192.168.11.22 <--- HERE
drwxr-xr-x.  2 root   root      191 Feb 28 20:54 anaconda
drwx------.  2 root   root       23 Jul 31 21:39 audit
-rw-------.  1 root   utmp        0 Aug  1 03:14 btmp
drwxr-xr-x.  2 chrony chrony      6 Apr 12  2018 chrony
-rw-------.  1 root   root      188 Jul 31 21:39 cron
-rw-r--r--.  1 root   root    26911 Aug  1 12:02 dmesg
-rw-r--r--.  1 root   root    26742 Jul 31 21:39 dmesg.old
-rw-r--r--.  1 root   root      374 Jul 31 21:47 firewalld
-rw-r--r--.  1 root   root   292292 Aug  1 12:12 lastlog
-rw-------.  1 root   root      198 Jul 31 21:39 maillog
.......
.......

在其中有一个vagrant.log文件,我可以在其中看到客户端的日志消息:

2019-08-01T13:00:06+00:00 192.168.11.22 vagrant: Some message...

问题:知道为什么我看不到客户端本地日志吗?

对于本次讨论:

  1. SELINUX 被禁用。
  2. 没有帮助。

系统日志配置

服务器 IP:192.168.11.11
客户端 IP 192.168.11.22:.

两台机器都安装并启用了 rsyslog,并且在文件中具有以下通用设置/etc/rsyslog.conf

#### MODULES ####    
$ModLoad imuxsock 
$ModLoad imjournal

#Open port 514 For UDP    
$ModLoad imudp
$UDPServerRun 514

#### GLOBAL DIRECTIVES ####
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state

#### RULES ####
kern.*                                       /dev/console    
*.info;mail.none;authpriv.none;cron.none     /var/log/messages
authpriv.*                                   /var/log/secure    
local7.*                                     /var/log/boot.log

文件上每台机器的添加 /etc/rsyslog.conf

服务器机器上:

## Rules for processing remote logs 
 $template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
 *.* ?RemoteLogs 
 & ~

客户端机器上,我设置 UDP 转发到服务器的 IP:

# ### begin forwarding rule ###
#UDP Forwarding
*. * @192.168.11.11:514 
# ### end of the forwarding rule ###

防火墙配置

服务器机器上 - 在防火墙上打开端口 514:

sudo firewall-cmd --permanent --add-port=514/udp
sudo firewall-cmd --reload

并验证:

[root@server /]#  sudo ss -tulnp | grep "rsyslog"

udp    UNCONN     0   0     *:514  *:*   users:(("rsyslogd",pid=2711,fd=3))
udp    UNCONN     0   0    :::514  :::*  users:(("rsyslogd",pid=2711,fd=4))

标签: loggingcentosfirewallsyslogrsyslog

解决方案


尝试*.在客户端主机上删除一个空白:
*. * @192.168.11.11:514

在远程主机上发送具有任何级别的日志的默认格式如下所示:
*.* @remote-host:514

然后重新启动客户端和服务器上的 rsyslog 服务systemctl restart rsyslog并再次检查。


编辑:

从评论中粘贴 - 在解决问题的系统日志服务器上完成的另外 2 个步骤:

  1. 评论#### Rules ####服务器上的部分。

  2. & ~## Rules for processing remote logs部分中删除。


推荐阅读