[ad_1]
日志文件对于探测和排除错误至关重要。 它们是系统管理员检查的第一个文件,以缩小错误的可能原因,并通过这样做提出解决问题的解决方案。 在拥有数十或数百台服务器和其他设备的基础架构中,管理日志文件可能是一项挑战。 这就是 rsyslog 的用武之地。
Rsyslog 是一个开源日志程序,它有助于将日志文件转发到 IP 网络中的中央日志服务器。 通过集中日志记录,管理员可以轻松地从一个中心点密切关注多个系统的日志文件。 在这篇文章中,我们将引导您完成在 Debian 11 上安装和配置 Rsyslog 服务器的过程。
实验室设置
为了演示如何使用 Rsyslog 将日志文件从客户端系统发送到 Rsyslog 服务器,我们将进行一个简单的实验室设置,如图所示
- Rsyslog 服务器:Debian 11 IP:192.168.1.151
- Rsyslog 客户端:Ubuntu 20.04 IP:10.20.0.170
步骤1)在服务器上配置Rsyslog
如前所述,Rsyslog 在客户端-服务器模型中工作,我们将从在 Debian 11 服务器上配置 Rsyslog 开始。 在 Debian 11 上,默认安装了 Rsyslog。 如果由于某种原因 Rsyslog 不存在,您可以使用以下命令安装它:
$ sudo apt install -y rsyslog
安装后,您可以按如下方式检查其运行状态:
$ sudo systemctl status rsyslog
接下来,我们将配置 rsyslog 以在服务器模式下运行。 配置文件是 /etc/rsyslog.conf 文件。 因此,请使用您首选的文本编辑器对其进行编辑。
$ sudo vi /etc/rsyslog.conf
继续并取消注释允许从远程客户端接收 UDP 和 TCP 系统日志的以下行。
# provides UDP syslog reception module(load="imudp") input(type="imudp" port="514") # provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514")
此后,粘贴以下行以定义 Rsyslog 守护程序将用于存储来自客户端系统的传入日志的模板。
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs
日志文件将使用以下命名约定:
- /%主机名%/ – 这是客户端系统的主机名。
- /%程序名称%/ – 这标识了创建日志文件的客户端程序。
要应用更改,请重新启动 rsyslog 守护程序。
$ sudo systemctl restart rsyslog
默认情况下,rsyslog 侦听端口 514。您可以通过执行以下命令来确认这是 rsyslog 守护程序正在侦听的端口 ss 命令.
$ sudo ss -tunlp | grep 514
步骤 2) 为 rsyslog 配置防火墙规则
Rsyslog 守护进程按预期在服务器上运行。 如果您正在运行 UFW 防火墙,请确保允许端口 514 以允许传入的传入日志消息。
$ sudo ufw allow 514/tcp $ sudo ufw allow 514/udp
然后重新加载防火墙以应用防火墙规则,如下所示。
$ sudo ufw reload
下一步将是配置客户端 Ubuntu 系统以将日志文件发送到 rsyslog 服务器。
步骤3)配置rsyslog客户端系统
最后一步是配置客户端系统以将日志文件发送到 rsyslog 服务器。 登录到客户端并再次确保 rsyslog 守护程序已安装并正在运行。
接下来,编辑 rsyslog 配置文件。
$ sudo vi /etc/rsyslog.conf
导航到文件的最后并添加这些行。
#Enable sending system logs over UDP to rsyslog server *.* @rsyslog-ip-address:514 #Enable sending system logs over TCP to rsyslog server *.* @@rsyslog-ip-address:514
这些行指示客户端通过 UDP 和 TCP 协议将日志文件发送到 rsyslog 服务器。 请注意,第一行有一个 @ 符号表示 UDP,第二行有两个 @@ 符号表示 TCP 协议。
如果远程服务器遇到任何停机时间并且您想要保留您的日志,您可以通过附加显示的行来设置磁盘队列缓冲区。
##设置 rsyslog 服务器关闭时的磁盘队列:
$ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
以下是对客户端配置的所有修改的摘要。
Save 并退出文件。 现在重新启动 rsyslog 服务以使更改生效。
$ sudo systemctl restart rsyslog
此时,客户端系统应该将日志文件发送到 rsyslog 服务器。 让我们回到服务器并找出答案。
步骤 4) 查看客户端的日志文件
所有日志文件(包括服务器)都存储在 /var/日志/ 目录。 要查看客户端的日志,请运行以下命令:
$ ls /var/log/
客户端的日志文件将保存在与客户端系统的主机名对应的目录中,如下所示。
您可以进一步查看主日志目录中包含的日志文件。
$ sudo ls -l /var/log/ubuntu-20-04/
要实时查看日志,请使用 尾命令 如图所示。 在这里,我们正在查看 sudo 用户的日志。
$ sudo tail -f /var/log/ubuntu-20-04/sudo.log
我们已经成功安装了 rsyslog 并将其配置为允许从客户端系统向 rsyslog 服务器发送日志文件。 您现在可以配置任意数量的客户端系统,将日志发送到 rsyslog 服务器,以实现集中的日志管理结构。
这就是这篇文章的全部内容,我希望你已经发现它提供了信息。 请在下面的评论部分分享您的疑问和反馈。
另请阅读 : 如何使用 Logrotate 在 Linux 中旋转和压缩日志文件
[ad_2]