日志文件是保存有关系统活动信息的文件,例如授权和访问尝试、启动和关闭尝试、服务的启动和关闭等。不同类型的活动有不同的日志文件。 日志文件有助于对系统活动进行故障排除和监控。 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 服务器。 我们还介绍了如何查看客户端发送到日志服务器的日志。