15.6. 配置服务器以通过 UDP 接收远程日志信息
Rsyslog 应用程序可让您将系统配置为从远程系统接收日志信息。要通过 UDP 使用远程日志记录,请同时配置服务器和客户端。接收服务器收集并分析一个或多个客户端系统发送的日志。默认情况下,rsyslog
使用端口 514
上的 UDP 从远程系统接收日志信息。
按照以下步骤配置服务器,以通过 UDP 协议收集和分析一个或多个客户端系统发送的日志。
先决条件
- rsyslog 已安装在服务器系统上。
-
您以
root
身份登录到服务器中。 -
使用
semanage
命令,为可选步骤安装policycoreutils-python-utils
软件包。 -
firewalld
服务在运行。
流程
可选:对于与默认端口
514
不同的rsyslog
流量,请使用其他端口:将
syslogd_port_t
SELinux 类型添加到 SELinux 策略配置中,使用您要rsyslog
的端口号替换portno
:# semanage port -a -t syslogd_port_t -p udp portno
配置
firewalld
以允许传入的rsyslog
流量,使用您要rsyslog
使用的端口替换portno
,区替换zone
:# firewall-cmd --zone=zone --permanent --add-port=portno/udp success # firewall-cmd --reload
重新载入防火墙规则:
# firewall-cmd --reload
在
/etc/rsyslog.d/
目录中创建一个新的.conf
文件,如remotelogserv.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 UDP syslog reception module(load="imudp") # This ruleset processes 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="imudp" port="514" ruleset="remote1")
其中
514
是rsyslog
默认使用的端口号。您可以指定不同的端口。验证
/etc/rsyslog.conf
文件以及/etc/rsyslog.d/
目录中的所有.conf
文件的语法:# rsyslogd -N 1 rsyslogd: version 8.1911.0-2.el8, config validation run...
重新启动
rsyslog
服务。# systemctl restart rsyslog
可选:如果没有启用
rsyslog
,请确保rsyslog
服务在重启后自动启动:# systemctl enable rsyslog
其他资源
-
rsyslogd(8)
,rsyslog.conf(5)
,semanage(8)
, 和firewall-cmd(1)
man page。 -
在
/usr/share/doc/rsyslog/html/index.html
文件中通过rsyslog-doc
软件包安装的文档。