5.3. 通过 TCP 配置服务器进行远程记录
Rsyslog 应用程序可让您运行日志服务器并配置各个系统将其日志文件发送到日志记录服务器。要通过 TCP 使用远程日志,请同时配置服务器和客户端。服务器收集和分析由一个或多个客户端系统发送的日志。
使用 Rsyslog 应用程序,您可以维护一个集中的日志系统,该系统可通过网络将日志消息转发到服务器。为了避免服务器不可用时消息丢失,您可以为转发操作配置操作队列。这样,无法发送的消息将存储在本地,直到服务器再次可访问为止。请注意,此类队列无法针对使用 UDP 协议的连接进行配置。
omfwd 插件通过 UDP 或 TCP 提供转发。默认协议是 UDP。由于插件内置在内,因此不必加载它。
默认情况下,rsyslog 使用端口 514 上的 TCP。
先决条件
- rsyslog 已安装在服务器系统上。
-
您以
root身份登录到服务器中。 -
使用
semanage命令,为可选步骤安装policycoreutils-python-utils软件包。 -
firewalld服务在运行。
流程
可选: 要为
rsyslog流量使用不同的端口,请将syslogd_port_tSELinux 类型添加到端口。例如,启用端口30514:# semanage port -a -t syslogd_port_t -p tcp 30514可选: 要为
rsyslog流量使用不同的端口,请将firewalld配置为允许该端口上传入的rsyslog流量。例如,允许端口30514上的 TCP 流量:# firewall-cmd --zone=<zone_name> --permanent --add-port=30514/tcp success # firewall-cmd --reload在
/etc/rsyslog.d/目录中创建一个新文件(例如,remotelog.conf),并插入以下内容:# Define templates before the rules that use them # Per-Host templates for remote systems template(name="TmplAuthpriv" type="list") { constant(value="/var/log/remote/auth/") property(name="hostname") constant(value="/") property(name="programname" SecurePath="replace") constant(value=".log") } template(name="TmplMsg" type="list") { constant(value="/var/log/remote/msg/") property(name="hostname") constant(value="/") property(name="programname" SecurePath="replace") constant(value=".log") } # Provides TCP syslog reception module(load="imtcp") # Adding this ruleset to process remote messages ruleset(name="remote1"){ authpriv.* action(type="omfile" DynaFile="TmplAuthpriv") *.info;mail.none;authpriv.none;cron.none action(type="omfile" DynaFile="TmplMsg") } input(type="imtcp" port="30514" ruleset="remote1")-
将更改保存到
/etc/rsyslog.d/remotelog.conf文件。 测试
/etc/rsyslog.conf文件的语法:# rsyslogd -N 1 rsyslogd: version 8.1911.0-2.el8, config validation run... rsyslogd: End of config validation run. Bye.确保
rsyslog服务在日志记录服务器中运行并启用:# systemctl status rsyslog重新启动
rsyslog服务。# systemctl restart rsyslog可选: 如果没有启用
rsyslog,请确保rsyslog服务在重启后自动启动:# systemctl enable rsyslog
您的日志服务器现在已配置为从您环境中的其他系统接收和存储日志文件。