如何在 Ubuntu 上设置 Rsyslog 服务器

日志文件是保存有关系统活动信息的文件,例如授权和访问尝试、启动和关闭尝试、服务的启动和关闭等。不同类型的活动有不同的日志文件。 日志文件有助于对系统活动进行故障排除和监控。 Rsyslog 是 Linux 操作系统的开源程序,可以配置为日志服务器和客户端。

在今天的指南中,我们将在 Ubuntu 操作系统上设置 Rsyslog 服务器。 我们将使用两台 Ubuntu 机器。 在一台 Ubuntu 机器上,我们将 Rsyslog 配置为日志服务器,在另一台机器上; 我们将 Rsyslog 配置为将日志发送到 Rsyslog 服务器的客户端。

在 Ubuntu 上配置 Rsyslog 服务器

我们将在我们想要用作日志服务器的一台 Ubuntu 机器上配置 Rsyslog。 Rsyslog 预装在 Ubuntu 服务器上。 但是,如果它由于任何原因丢失,您可以通过运行以下命令来安装它:

$ sudo apt install rsyslog

在安装过程中,它会提示您 是/否 用于继续安装 Rsyslog 的选项。 按 是的 进而 Enter 继续。

要验证 Rsyslog 的安装并查看其服务的状态,请运行以下命令:

$ sudo systemctl status rsyslog

如果服务已启动并正在运行,您将看到如下屏幕截图所示的输出。

现在 Rsyslog 已安装并运行,我们现在将其配置为日志服务器。

编辑 rsyslog配置文件etc/rsyslog.conf:

$ sudo nano /etc/rsyslog.conf

在 Rsyslog 配置文件中添加以下行:

# Receive syslog over UDP

module(load="imudp")

input(type="imudp" port="514")

# Receive syslog over TCP

module(load="imtcp")

input(type="imtcp" port="514")

下面是 Rsyslog 日志服务器配置的屏幕截图:

然后我们将创建一个模板,Rsyslog 将使用该模板来存储传入的 syslog 消息。 为此,请在 rsyslog 配置文件 在全球指令部分之前:

$template remote-incoming-logs, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?remote-incoming-logs

然后保存并 close 这 配置文件。

现在运行以下命令重启 Rsyslog 的服务:

$ sudo systemctl restart rsyslog

您还可以使用以下命令验证 Rsyslog 是否正在侦听 TCP/UDP 端口 514:

$ sudo ss -tunlp | grep 514

您应该收到以下输出:

配置防火墙

如果您的系统启用了防火墙,则需要打开 TCP/UDP 端口 514。Rsyslog 服务器使用此端口接收来自远程客户端的日志。 运行这些命令在 Ubuntu 防火墙中打开 TCP/UDP 端口 514。

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

然后重新加载防火墙:

$ sudo ufw reload

在 Ubuntu 上配置 Rsyslog 客户端

现在在另一个 Ubuntu 系统上,我们将执行 Rsyslog 客户端的配置。 然后,此客户端会将其日志发送到 Rsyslog 日志记录服务器。

在要配置为 Rsyslog 客户端的 ubuntu 机器上,首先安装 Rsyslog(如果尚未安装):

$ sudo apt install rsyslog

然后使用以下命令编辑 Rsyslog 配置文件:

$ sudo nano /etc/rsyslog.conf

在 Rsyslog 配置文件的末尾添加以下行。 确保更换 192.168.72.204 与您的 Rsyslog 日志记录服务器的 IP 地址。

#Send system logs to rsyslog server over RDP

*.* @192.168.72.204:514

#Send system logs to rsyslog server over TCP

*.* @@192.168.72.204:514

##Set disk queue to preserve your logs in case rsyslog server is experiencing any downtime
$ActionQueueFileName queue

$ActionQueueMaxDiskSpace 1g

$ActionQueueSaveOnShutdown on

$ActionQueueType LinkedList

$ActionResumeRetryCount -1

下面是 Rsyslog 客户端配置的屏幕截图:

Save 和 close 这 rsyslog 配置文件。

现在运行以下命令重启 Rsyslog 的服务:

$ sudo systemctl restart rsyslog

在 Rsyslog Server 中查看客户端的日志文件

完成上述所有配置后,您可以查看客户端发送到 Rsyslog 服务器的日志文件。 在您的 Rsyslog 服务器机器上,在终端中运行以下命令:

$ ls /var/log/

在上述命令的输出中,您将看到一个与您的客户端系统主机名相同的目录(我们的 ubuntu2 example)。

要查看客户端机器的日志文件,请列出此目录的内容:

$ sudo ls /var/log/ubuntu2

这就是它的全部! 在本指南中,我们介绍了如何在 Ubuntu OS 上将 Rsyslog 配置为日志服务器和客户端以将日志发送到 Rsyslog 服务器。 我们还介绍了如何查看客户端发送到日志服务器的日志。