乐趣区

关于debian:如何在-Debian-11上设置-Rsyslog-服务器

日志文件对于探测和排除谬误十分重要。系统管理员首先要仔细检查这些文件,以便放大谬误的可能起因,并提出解决方案。在具备数十或数百台服务器和其余设施的基础设施中,治理日志文件可能是一个挑战。这就是 Rsyslog 的用武之地。

Rsyslog 是一种开源日志记录程序,它能够不便地将日志文件转发到 IP 网络中的集中日志服务器。通过集中式日志记录,管理员能够轻松地从一个中心点监督多个零碎的日志文件。在这篇文章中,咱们将疏导您在 Debian11 上装置和配置 Rsyslog 服务器。

试验设施

为了演示如何应用 Rsyslog 将日志文件从客户机零碎发送到 Rsyslog 服务器,咱们将进行一个简略的试验筹备,如下所示:

  • Rsyslog server: Debian 11 IP: 192.168.1.151
  • Rsyslog client: Ubuntu 20.04 IP: 10.20.0.170

(1) 服务端配置

如前所述,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 syslog 日志的行

# 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

日志文件将应用以下命名约定:

  • /%HOSTNAME%/ – 客户机零碎的主机名
  • /%PROGRAMNAME%/ – 创立日志文件的客户端程序

重新启动 rsyslog 守护过程

$ sudo systemctl restart rsyslog

缺省状况下,rsyslog 监听 514 端口。您能够通过执行 ss 命令确认

$ sudo ss -tunlp | grep 514

(2) 配置防火墙规定

如果您正在运行 UFW 防火墙,请确保容许端口 514,以便容许传入的传入日志音讯。

$ sudo ufw allow 514/tcp
$ sudo ufw allow 514/udp

而后从新加载防火墙

$ sudo ufw reload

(3) 配置客户端

最初一步是配置客户端零碎将日志文件发送到 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 协定。

Should the remote server experience any downtime and you want to
preserve your logs, you can set the disk queue buffer by appending the
lines shown.

如果近程服务器呈现任何停机,并且心愿保留日志,则须要设置磁盘队列缓冲区,如下所示

Set disk queue when rsyslog server will be down:

$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

上面是对客户端配置的所有批改的摘要

保留并退出文件。当初重新启动 rsyslog 服务,使更改失效。

$ sudo systemctl restart rsyslog

(4) 查看客户端日志文件

All the log files (including the servers) are stored in the /var/log/ directory. To view the client’s logs, run the following command:

所有日志文件 (包含服务器) 都存储在 /var/log/ 目录中,运行命令查看客户端的日志

$ ls /var/log/

客户端日志文件将保留在与客户端零碎主机名对应的目录中,如下所示:

您能够进一步查看主日志目录中蕴含的日志文件

$ sudo ls -l /var/log/ubuntu-20-04/

当须要实时查看日志信息时,应用如下命令 tail。例如:咱们正在查看 sudo 用户的日志。

$ sudo tail -f /var/log/ubuntu-20-04/sudo.log

开端总结

咱们曾经胜利地装置了 rsyslog 并将其配置为容许从客户端零碎向 rsyslog 服务器发送日志文件。当初,您能够依据须要配置尽可能多的客户端零碎,将日志发送到 rsyslog 服务器,以实现集中的日志治理构造。

我的开源我的项目

  • course-tencent-cloud(酷瓜云课堂 – gitee 仓库)
  • course-tencent-cloud(酷瓜云课堂 – github 仓库)
退出移动版