如何在 RHEL 8/CentOS 8 上安装 syslog
系统日志功能是系统管理员的主要工具之一。虽然编写包含感兴趣事件的日志文件是任何应用程序的一项常见功能,但拥有系统范围的日志记录功能意味着所有日志都可以在系统上作为一个日志进行处理。但系统日志并不止于此。使用这些工具,系统管理员可以通过将传入事件从应用程序转发到中央日志服务器来集中数据中心的日志处理,并在中央日志服务器上进行大规模处理。
集中式日志记录对于拥有几台计算机的家庭系统来说是一种杀伤力,但在十几台计算机上已经具有了它的优势。例如,十几个桌面将所有日志文件发送到中央日志服务器意味着它们不需要长期存储它们,日志将占用日志服务器中的磁盘空间。管理员只能在一个地方检查问题(可能通过自动报告的方式),日志可以通过备份的方式安全保存,通过重度压缩存储更有效,并且不会丢失客户端故障或用户错误。
在本教程中您将学习:
如何在 RHEL 8/CentOS 8 上安装 rsyslog 软件包。
如何验证安装成功。
如何启动、停止和自动启动 rsyslog 服务。
如何使用记录器测试系统日志功能。
使用 systemctl 的 rsyslog 服务的状态输出。
如何在 RHEL 8/CentOS 8 上安装 syslog 分步说明
在 RHEL 8/CentOS 8 上,应默认安装并运行 rsyslog 软件包。在某些情况下,您可能需要安装它,例如软件包损坏/删除、从另一个系统日志服务恢复等。
rsyslog
可以从基础存储库访问。您需要设置并可访问订阅管理存储库才能安装任何软件包。完成此操作后,只需一个 dnf 命令即可完成安装:# dnf install rsyslog -y
要验证安装是否成功,您可以查询软件包的
rpm
数据库:# rpm -q rsyslog rsyslog-8.37.0-6.el8.x86_64
dnf
还应该使用--verbose
选项在info
输出中显示“安装时间”状态:# dnf info rsyslog --verbose [...] Installed Packages Name : rsyslog Version : 8.37.0 Release : 6.el8 Arch : x86_64 Size : 2.2 M Source : rsyslog-8.37.0-6.el8.src.rpm Repo : @System [...] Install time : Thu Dec 27 12:24:35 2018 Installed by : [...]
最后,
systemd
应该了解该服务(未运行),这意味着服务文件已就位:# systemctl status rsyslog.service ● rsyslog.service - System Logging Service Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: inactive (dead) Docs: man:rsyslogd(8) http://www.rsyslog.com/doc/
要启动、停止和获取服务的状态,我们使用
systemctl
。在最后一步中,我们看到了刚刚安装的服务的状态,处于非活动状态。我们可以这样开始:# systemctl start rsyslog.service
并停止:
# systemctl stop rsyslog.service
状态显示该服务在安装时已启用,这意味着它将在操作系统启动时自动启动。我们可以通过以下方式禁用此自动启动功能:
# systemctl disable rsyslog.service
并以相同的方式再次启用它:
# systemctl enable rsyslog.service
要测试服务是否正常运行(即从系统接受系统日志事件),我们可以使用
logger
:# echo "test message from user root" | logger
并通过检查 /var/log/messages 的最后几行来查看消息是否已正确发送到主系统日志文件中:
# tail /var/log/messages [...] Dec 27 12:39:46 rhel8 rsyslogd[2636]: [origin software="rsyslogd" swVersion="8.37.0-6.el8" x-pid="2636" x-info="http://www.rsyslog.com"] start Dec 27 12:39:46 rhel8 systemd[1]: Started System Logging Service. Dec 27 12:41:56 rhel8 testuser[2668]: test message from user root