logging - Rsyslog - 日志未显示在服务器上

标签 logging centos firewall syslog rsyslog

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

两台机器都在 Centos7 上运行 Vagrant .

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

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

例如:

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...

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

对于本次讨论:
  • SELINUX 被禁用。
  • This没有帮助。


  • 系统日志配置

    服务器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 
     & ~
    

    客户 机器 I 设置 UDP 转发到服务器的 IP:
    # ### begin forwarding rule ###
    #UDP Forwarding
    *. * @192.168.11.11:514 
    # ### end of the forwarding rule ###
    

    防火墙配置

    服务器 machine - 在防火墙上打开端口 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))
    

    最佳答案

    尝试删除 *. 之后的一个空白在客户端的主机上:*. * @192.168.11.11:514
    在远程主机上发送具有任何级别的日志的默认格式如下所示:*.* @remote-host:514
    然后使用 systemctl restart rsyslog 在客户端和服务器上重新启动 rsyslog 服务并再次检查。

    编辑:

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

  • 评论 #### Rules ####服务器部分。
  • 删除& ~来自 ## Rules for processing remote logs部分。
  • 关于logging - Rsyslog - 日志未显示在服务器上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57309908/

    相关文章:

    windows-7 - Docker:当试图运行 docker run hello-world getting - Forbidden

    logging - Klogd 如何与 syslogd 通信?

    python - 无法在基于 CentOS 的 VPS 上构建 uwsgi

    mysql - 如何从 iptables 调用 shell 或 Perl 脚本?

    apache - 如何从 httpd 2.2 迁移到 httpd 2.4 中的 conf.modules.d 目录?

    linux - 使用 NAT 和 iptables 阻止目的地

    linux - Fail2Ban 多次尝试后仍无法阻止 ip

    javascript - 在Toastr中显示错误和异常,或使用MVC4和Entity Framework的类似方法

    使用 CacheEventListener 在 EhCache 中记录驱逐

    java - 如何在静态方法中拥有log.info