在 CentOS 7 上设置集中式 Rsyslog 服务器

本教程描述了如何在 CentOS 7 上设置集中式 Rsyslog 服务器,以便从一个公共位置管理客户端系统的日志。 当您想要检查客户端系统的日志文件时,您不必访问客户端系统。 如果您的网络上有大量系统并希望从集中式专用日志服务器进行日志管理,这将很有用。

出于本指南的目的,我将使用两个系统,一个充当 rsyslog 服务器,另一个充当客户端。 以下是我的测试盒的详细信息。

系统日志服务器:

  • 操作系统: CentOS 7 极简版
  • IP地址: 192.168.43.150/24
  • 主机名: logserver.ostechnix.local

客户端系统:

  • 操作系统: CentOS 7 极简版
  • IP地址: 192.168.43.151

首先,让我们设置 Ryslog 服务器。

在 CentOS 7 上设置集中式 Rsyslog 服务器

本指南已使用 CentOS 7 最小服务器版进行了测试。 但是,它应该适用于所有基于 RPM 的发行版,例如 RHEL, Fedora,科学Linux。

下面给出的所有命令都应该运行为 用户。

如果尚未安装 rsyslog 包,请安装它。

# yum install rsyslog

然后,编辑 rsyslog 配置文件:

# vi /etc/rsyslog.conf

查找并取消注释以下内容以使您的服务器侦听 udp 和 tcp 端口。

[...]
$ModLoad imudp
$UDPServerRun 514

[...]
$ModLoad imtcp
$InputTCPServerRun 514
[...]

ESC键 键和类型 :wq 保存和 close 文件。

允许防火墙/路由器上的 Rsyslog 默认端口 514。 以下命令将通过 firewalld 打开此端口。

# firewall-cmd --permanent --add-port=514/udp
# firewall-cmd --permanent --add-port=514/tcp

重新启动 firewalld 服务以使更改生效。

# firewall-cmd --reload

最后,启用并启动 rsyslog 服务:

# systemctl enable rsyslog
# systemctl start rsyslog

使用以下命令检查 resyslog 服务是否正在运行:

# systemctl status rsyslog

如果你看到类似下面的输出,恭喜! Rsyslog 服务器已启动并正在工作!

● rsyslog.service - System Logging Service
 Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
 Active: active (running) since Thu 2017-03-23 16:30:11 IST; 17min ago
 Main PID: 2490 (rsyslogd)
 CGroup: /system.slice/rsyslog.service
 └─2490 /usr/sbin/rsyslogd -n

Mar 23 16:30:11 logserver.ostechnix.local systemd[1]: Starting System Logging...
Mar 23 16:30:11 logserver.ostechnix.local systemd[1]: Started System Logging ...
Hint: Some lines were ellipsized, use -l to show in full

您可以使用以下命令检查服务器本身的日志详细信息:

# tail -10 /var/log/messages

此命令将显示日志消息的最后十行。

客户端配置

安装 rsyslog 为 用户使用命令:

# yum install rsyslog

然后,编辑 rsyslog 配置文件:

# vi /etc/rsyslog.conf

在下面 ##规则## 指令部分,添加以下行:

*.* @192.168.43.150:514

或者,只需将此行放在末尾。 这将记录所有内容并将日志文件发送到您的 Rsyslog 服务器。

您还可以记录特定项目。 说为 example仅记录 cron 东西,添加以下行:

cron.* @192.168.43.150:514

要记录所有邮件消息,请添加:

mail.* @192.168.43.150:514

我想记录所有内容,所以我添加了以下行。

*.* @192.168.43.150:514

您还可以提及您的 Rsyslog 服务器的 FQDN,而不是 IP 地址。

Save 和 close rsyslog 配置文件。

最后,启用并启动 rsyslog 服务:

# systemctl enable rsyslog
# systemctl start rsyslog

同样,您可以配置任意数量的客户端。 监控日志。

下载免费电子书:“GNU/Linux 高级管理”

测试日志消息

在您的客户端系统上运行任何东西。

我将使用手动向系统日志文件添加一个条目 记录器 命令。

# logger -i -t ostechnix "This is our first log test."

现在,转到 Rsyslog 服务器机器并检查是否找到此日志。

# tail -l /var/log/messages

现在,您将从服务器获取客户端系统的日志。

Mar 23 17:30:29 client rsyslogd: [origin software="rsyslogd" swVersion="7.4.7" x-pid="2953" x-info="https://www.rsyslog.com"] start
Mar 23 17:30:29 client systemd: Stopping System Logging Service...
Mar 23 17:30:29 client systemd: Starting System Logging Service...
Mar 23 17:30:29 client systemd: Started System Logging Service.
Mar 23 17:30:34 logserver rsyslogd: [origin software="rsyslogd" swVersion="7.4.7" x-pid="2520" x-info="https://www.rsyslog.com"] exiting on signal 15.
Mar 23 17:30:34 logserver rsyslogd: [origin software="rsyslogd" swVersion="7.4.7" x-pid="2542" x-info="https://www.rsyslog.com"] start
Mar 23 17:30:34 logserver systemd: Stopping System Logging Service...
Mar 23 17:30:34 logserver systemd: Starting System Logging Service...
Mar 23 17:30:34 logserver systemd: Started System Logging Service.
Mar 23 17:31:35 client ostechnix[2959]: This is our first log test.

和。 就这样。 Rsyslog 服务器和客户端配置完成。 正如您在本指南中所见, 设置一个基本的 Rsyslog 服务器非常容易. 虽然这是非常基本的日志服务器设置,但它对我来说是开箱即用的。

建议阅读:

  • 如何在 Linux 中使用 Logrotate 管理日志文件

感谢您的光临!

帮助我们帮助您:

祝你有美好的一天!!