Logging Rsyslog-服务器上未显示日志
正在尝试配置客户端以将日志发送到Rsyslog服务器 这两台机器都在Centos7上运行 请参阅下面每台机器的配置 当我在客户端计算机中登录时,它不会反映在服务器的日志中 例如:Logging Rsyslog-服务器上未显示日志,logging,centos,firewall,syslog,rsyslog,Logging,Centos,Firewall,Syslog,Rsyslog,正在尝试配置客户端以将日志发送到Rsyslog服务器 这两台机器都在Centos7上运行 请参阅下面每台机器的配置 当我在客户端计算机中登录时,它不会反映在服务器的日志中 例如: logger "Some message..." 但当我将服务器的IP添加到命令时: logger -n 192.168.11.11 "Some message..." 我可以看到服务器计算机上正在创建一个带有客户端IP的目录: [root@server log]# ls -la total 200 drwxr-x
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
.......
.......
问题:知道我为什么看不到客户端本地日志吗?
关于本次讨论:
Rsyslog配置 服务器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 ###
防火墙配置 在服务器计算机上-打开防火墙上的端口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
发送远程主机上任何级别日志的默认格式如下:*.@远程主机:514
然后使用systemctl restart rsyslog
在客户端和服务器上重新启动rsyslog服务,然后再次检查
编辑: 从注释粘贴-在解决问题的syslog服务器上执行的另外两个步骤:
###########
部分##规则
部分删除&
感谢@Alexey在两个关键点上帮助了我 我还将添加一些可能对其他人有帮助的更有用的要点: 1:首先检查两台机器的连通性。 例如,如果使用vagrant网络,请将两台机器置于相互可见(ping)的网络模式。例如,仅主机模式正常,但每台机器位于其隔离网络上的内部模式将不工作 2:仅在syslog服务器中需要取消注释以下代码:
$ModLoad imudp
$UDPServerRun 514
3:在客户端计算机上-您可以对所有#####规则####
部分进行注释,并将转发规则放在文件或的末尾
您可以指定内联转发(如果在/etc/hosts
中配置,则使用客户端IP或主机名):
5:注意rsyslog语法-例如,如果您将其用作配置脚本的一部分以替换和编辑配置文件中的行-请检查输出:
在一行中指定$template部分:
$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?RemoteLogs
将导致错误:
Aug 03 13:50:04服务器rsyslogd[5539]:错误:中有额外字符
已忽略配置行:'?RemoteLogs'[v8.24.0-34.el7]
这是正确的语法-将规则拆分为新行(如果使用sed
-只需添加/n
):
6:在/etc/rsyslog.conf
中每次更改后,不要忘记systemctl重新启动rsyslog
。由于类似于#5的情况,请始终检查rsyslog状态:systemctl status rsyslog
7:新版本的rsyslog(我认为5+)支持更简洁的语法——例如,它现在作为Ubuntu新版本的默认语法出现,但由于某些原因,Centos7上没有
8:在syslog服务器上-确保防火墙已启用并配置为在相关端口上接受UDP(请参阅相关的配置脚本):
@Rotmya请检查,服务器的本地日志上是否有来自客户端的事件?以下一些提示可能会有所帮助:1.确保配置文件的最后一个字符串为空。2.在服务器的配置中:注释掉字符串
&
,然后检查。3.在服务器的配置中:尝试在处理远程日志的规则之后粘贴本地规则。谢谢@Alexey:About“服务器的本地日志上是否有来自客户端的事件?”我看不到,您可以指定要“跟踪”的文件夹吗?$~被移除。关于远程规则的放置-在我的配置中(在问题中指定)###处理远程日志的规则部分位于服务器的rsyslog.conf文件的全局指令和规则部分之前。您可以尝试以下步骤:1)要正确解析名称,请在主机上的/etc/hosts
中添加记录,并使用ping
2)放置部分处理远程日志的规则在客户端配置上的GLOBAL DIRECTIVES
部分和注释掉规则部分之后,使用systemctl restart rsyslog
3)重新启动服务器服务在客户端配置上指定:*.info@192.168.11.11:514
4)使用systemctl restart rsyslog
5)检查文件夹/var/log
on服务器,如果存在具有客户端dns名称(非ip)的文件夹,则可能存在客户端已发送的systemd.log
,rsyslog.log
。谢谢@Alexey。根据您的所有说明,应将以下内容作为答案:1。服务器上的注释规则部分。2.删除&~。你能把它加到你的答案里吗?@Rotmya,很高兴它能帮上忙。只是想问一下,您现在是否正在查看由服务器生成的日志更新?
#### RULES ####
kern.* /dev/console
*.info;mail.none;authpriv.none;cron.none @192.168.11.11:514 # <--- Like this
auth,authpriv.* /var/log/secure
local7.* /var/log/boot.log
sshd.log su.log sudo.log systemd-logind.log
$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?RemoteLogs
$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
Chain IN_public_allow (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ctstate NEW
ACCEPT udp -- anywhere anywhere udp dpt:syslog ctstate NEW