将日志缓冲区发送到远程 PC

将日志缓冲区发送到远程 PC

我如何才能简单地读取 Ubuntu 16.04 的所有不同缓冲区(系统日志、用户日志、应用程序日志等)并在运行时将它们转发到外部服务器(可以是任何操作系统)? 是否有任何 systemd 或日志 API 对此有帮助?

请给出意见!

答案1

rsyslogd满足您的需求。

如何在 ubuntu-14-04-lts 上使用 rsyslog 设置远程系统日志记录

默认情况下,rsyslog每个新的 Ubuntu 安装中都会运行一个实例。该rsyslog工具负责接收来自内核和操作系统应用程序的所有日志消息,并将它们分发到 中的文件中/var/log

但是,rsyslog它能做的远不止这些,包括登录远程服务器。这对于在大量服务器中聚合日志或无法将日志写入磁盘时非常有用。

在本教程中,我们将rsyslog在远程计算机上安装,以便我们可以将所有日志发送到远程服务器,并将所有日志重定向到该远程服务器。rsyslog在远程服务器上安装

您需要rsyslog在远程机器上运行一份副本,该副本将接收来自现有服务器的日志。最好将其放在远程位置。原因是,如果此服务器与您的服务器同时崩溃,您将无法获取任何日志来排除任何问题。

假设您在远程计算机上使用 Ubuntu,那么您已经在运行rsyslog.它了。如果没有,您可以按照rsyslog网站内提供的说明进行安装。

安装完成后,您需要确保它监听我们将发送日志的端口。默认端口是 514,我们将保留该端口。您需要编辑文件/etc/rsyslog.conf并取消注释以下行:

# provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514

取消注释这些行之后,它应如下所示:

# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

完成后,您现在可以rsyslog通过运行命令重新启动服务service rsyslog restart。您的实例现在可以从远程主机接收日志了。在本地服务器上rsyslog设置rsyslog

这个过程非常简单。您需要做的就是告诉rsyslog服务器上的现有实例将日志发送到远程服务器。这就像在/etc/rsyslog.d 名为的文件夹中创建文件一样简单10-rsyslog.conf。在该文件中,您需要输入的是

*.*   @remote.server:514

写入该文件后,rsyslog通过运行重新启动服务 service rsyslog restart,您的日志现在将开始发送到远程服务器。您可以通过登录远程服务器并检查日志文件夹来验证这一点,您会发现现在您的日志标有客户端服务器的主机名。

相关内容