验证配置
我们可以使用“logger”命令手动生成日志消息,并查看远程系统日志服务器是否正确接收它。
在客户端服务器上:
# logger "Test message from the system `hostname`"
在集中 rsyslog 服务器上:
# tail /var/log/messages June 15 12:32:01 onitroad root: Test message from the system onitroad
配置集中的 Rsyslog 服务器
- 编辑 /etc/rsyslog.conf 并取消注释以下几行:
对于 TCP;
# vi /etc/rsyslog.conf $ModLoad imtcp $InputTCPServerRun 514
对于 UDP;
# vi /etc/rsyslog.conf $ModLoad imudp $UDPServerRun 514
- 保存文件并重启rsyslog服务。
# service rsyslog restart ### CentOS/RHEL 6 # systemctl restart rsyslog ### CentOS/RHEL 7
需要一个集中的 Rsyslog 服务器
每个UNIX/Linux 系统都有某种日志工具,可以生成可以写入存储设备上任意位置的文本日志(通常,默认为本地磁盘分区)。
现在,这是必不可少的,但也会产生以下问题:
- 我们需要在本地服务器上有足够的存储空间来保存日志。
- 我们需要进行轮换以防止它们变得太大。
- 如果日志包含信用卡号等敏感信息,我们希望它们存储在安全位置,最好不要存储在本地服务器上。
- 如果服务器发生灾难并且数据无法恢复,我们可能会丢失日志。
为了避免所有此类问题,我们可以使用集中式系统日志服务器。
集中式系统日志服务器提供安全性、充足的存储、集中式备份设施等。
这篇文章概述了配置 Rsyslog 以使用 TCP 和 UDP 将日志文件发送到远程服务器的步骤。
on it road.com
配置 Rsyslog 客户端
- 在客户端服务器上编辑 /etc/rsyslog.conf 并添加以下行。
当我们在远程主机前面加上一个 @ 符号时,我们使用的是 UDP。
要使用 TCP,请改用 @@。
对于 UDP
# vi /etc/rsyslog.conf # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional #*.* @remote-host:514 *.* @x.x.x.x:514
对于 TCP
# vi /etc/rsyslog.conf # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional #*.* @@remote-host:514 *.* @@x.x.x.x:514
其中:将 x.x.x.x 替换为集中式 rsyslog 服务器。
如果我们不想发送包含所有严重性 (.) 的日志,我们可以使用以下内容编辑最后一行:
*.info @x.x.x.x:514
- 保存文件并重启rsyslog服务。
# service rsyslog restart ### CentOS/RHEL 6 # systemctl restart rsyslog ### CentOS/RHEL 7
在非标准端口上运行 Rsyslog
如果要在默认端口 514 以外的端口上运行 rsyslog,则必须执行另外的 selinux 更改。
要查看 rsyslog 的当前 SELinux 端口设置:
# semanage port -l| grep syslog syslog_tls_port_t tcp 6514, 10514 syslog_tls_port_t udp 6514, 10514 syslogd_port_t tcp 601, 20514 syslogd_port_t udp 514, 601, 20514
要将 UDP 端口 541 添加到 SELinux,请使用以下命令:
# semanage port -a -t syslogd_port_t -p udp 541
验证端口是否已添加到 SELinux 设置中:
# semanage port -l| grep syslog syslog_tls_port_t tcp 6514, 10514 syslog_tls_port_t udp 6514, 10514 syslogd_port_t tcp 601, 20514 syslogd_port_t udp 541, 514, 601, 20514
日期:2020-09-17 00:14:10 来源:oir作者:oir