如何在 CentOS 上配置 rsyslog 客户端进行远程日志记录如何在 CentOS 上配置 rsyslog 客户端进行远程日志记录如何在 CentOS 上配置 rsyslog 客户端进行远程日志记录如何在 CentOS 上配置 rsyslog 客户端进行远程日志记录
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 CentOS 上配置 rsyslog 客户端进行远程日志记录

rsyslog 是一个开源实用程序,广泛用于 Linux 系统,通过 TCP/UDP 协议转发或接收日志消息。 rsyslog 守护进程可以在两种情况下进行配置。 rsyslog 守护进程配置为日志收集服务器,可以从网络中的所有其他主机收集日志数据,这些主机配置为将其内部日志发送到服务器。在另一个角色中,rsyslog 守护进程可以配置为客户端,过滤内部日志消息并将其发送到本地文件夹(例如 /var/log)或基于路由设施的远程 rsyslog 服务器。

假设您已经在网络上启动并运行了 rsyslog 服务器,本指南将向您展示如何设置 CentOS 系统以将其内部日志消息路由到远程 rsyslog 服务器。这将极大地提高系统的磁盘使用率,特别是如果您没有专用于 /var 目录的单独大分区。

第一步:在 CentOS 上安装 rsyslog

在 CentOS 6 和 7 上,预安装了 rsyslog 守护进程。要验证 CentOS 系统上是否安装了 rsyslog,请发出以下命令:


# rpm -qa | grep rsyslog
# rsyslogd -v

如果由于某种原因您的系统上缺少 rsyslog 守护进程,请发出以下命令来安装它:


# yum install rsyslog

第二步:将 rsyslog 配置为 Syslog 客户端

为此,请使用您喜欢的文本编辑器打开位于 /etc 路径中的主 rsyslog 配置文件:


# nano /etc/rsyslog.conf

打开文件进行编辑后,您需要在文件底部添加以下语句。将 IP 地址替换为远程 rsyslog 服务器的 IP 地址。


*.*  @192.168.1.25:514 

上述语句告诉 rsyslog 守护进程将系统上每个设施的每条日志消息路由到 UDP 端口 514 上的远程 rsyslog 服务器 (192.168.1.25)。

如果由于某些原因您需要更可靠的协议(例如 TCP),并且将 rsyslog 服务器配置为侦听 TCP 连接,则必须在远程主机的 IP 地址前面添加一个额外的 @ 字符,如下摘录所示:


*.*  @@192.168.1.25:514 

请注意,您还可以将 rsyslog 服务器的 IP 地址替换为其 DNS 名称 (FQDN)。

如果您只想转发来自特定设施(例如内核设施)的日志消息,那么您可以在rsyslog配置文件中使用以下语句。


kern.* @192.168.1.25:514 

修改配置后,您需要重新启动守护进程以激活更改:

在 CentOS 7 或更高版本上:


# systemctl restart rsyslog.service

在 CentOS 6 或更早版本上:


# service rsyslog restart

在另一种情况下,假设您在计算机上安装了名为 foobar 的应用程序,该应用程序会将日志生成到 /var/log/foobar.log 文件中。现在您只想将其日志定向到远程 rsyslog 服务器。这可以通过在 rsyslog 配置中加载 imfile 模块来实现,如下所示。

首先加载 imfile 模块。此操作必须只执行一次。


module(load="imfile" PollingInterval="5") 

然后指定 imfile 模块应监控的日志文件的路径:


input(type="imfile"
      File="/var/log/foobar.log"
      Tag="foobar"
      Severity="error"
      Facility="local7")

最后,将 local7 工具定向到远程 rsyslog 服务器:


local7.* @192.168.1.25:514

不要忘记重新启动 rsyslog 守护进程。

第三步:启用rsyslog自动启动

要在每次系统重新引导后自动启动 rsyslog 客户端,请运行以下命令以在系统范围内启用它:

在 CentOS 7 或更高版本上:


# systemctl enable rsyslog.service

在 CentOS 6 或更早版本上:


# chkconfig rsyslog on

概括

在本教程中,我演示了如何将 CentOS 系统转变为 rsyslog 客户端,以强制其将日志消息发送到远程 rsyslog 服务器。这里我假设 rsyslog 客户端和 rsyslog 服务器之间的连接是安全的(例如,在受防火墙保护的公司网络内)。在任何情况下,都不要将 rsyslog 客户端配置为通过不安全的网络转发日志消息,尤其是通过 Internet,因为 syslog 协议是明文协议。为了安全传输,请考虑使用 TLS/SSL 加密系统日志消息。

©2015-2025 艾丽卡 support@alaica.com