当前位置: 首页 > 科技观察

如何使用syslog-ng从远程Linux机器收集日志

时间:2023-03-20 22:02:23 科技观察

如果您的数据中心充满了Linux服务器并且您是系统管理员。那么你的工作之一就是查看服务器的日志文件。但是,如果你在大量的机器上查看日志文件,就意味着你需要一台一台地登录机器来读取日志文件。如果您管理很多机器,仅此一项工作就可以花费您一天的时间。或者,您可以配置单独的Linux机器来收集这些日志。这将使您的日常工作更有效率。为此,您可以选择许多不同的系统,syslog-ng就是其中之一。syslog-ng的缺点是文档不容易梳理。但是,我已经解决了这个问题,我可以通过这种方式立即安装和配置syslog-ng。下面我将在UbuntuServer16.04上演示这两种方法:UBUNTUSERVERVM的IP地址为192.168.1.118,将配置为日志收集器UBUNTUSERVERVM2将配置为客户端,将日志文件发送到收集器下面开始安装和配置。安装安装很简单。为了尽可能简单,我将从标准存储库安装。打开终端窗口并运行以下命令:sudoaptinstallsyslog-ng您必须在收集器和客户端计算机上运行上述命令。安装完成后,您将开始配置。配置收集器现在,我们开始日志收集器的配置。它的配置文件是/etc/syslog-ng/syslog-ng.conf。安装syslog-ng时会包含一个配置文件。我们不使用这个默认的配置文件,我们可以使用mv/etc/syslog-ng/syslog-ng.conf/etc/syslog-ng/syslog-ng.conf.BAK重命名这个内置的默认配置文件。现在使用sudonano/etc/syslog/syslog-ng.conf命令创建一个新的配置文件。将以下行添加到该文件:@version:3.5@include"scl.conf"@include"`scl-root`/system/tty10.conf"options{time-reap(30);标记频率(10);保留主机名(是);};来源s_local{系统();内部的();};源s_network{系统日志(传输(tcp)端口(514));};目的地d_local{文件(“/var/log/syslog-ng/messages_${HOST}”);};目的地d_logs{file("/var/log/syslog-ng/logs.txt"owner("root")group("root")perm(0777));};日志{来源(s_local);来源(s_network);目的地(d_logs);};请注意,syslog-ng使用端口514,您需要确保它可以在您的网络上访问。保存并关闭此文件。上面的配置会将所需的日志文件(由system()和internal()指向)转储到/var/log/syslog-ng/logs.txt。因此,您需要使用以下命令来创建所需的目录和文件:sudomkdir/var/log/syslog-ngsudotouch/var/log/syslog-ng/logs.txt使用以下命令启动并启用syslog-ng:sudosystemctlstartsyslog-ngsudosystemctlenablesyslog-ngconfigureclient我们将在客户端做同样的事情(移动默认配置文件并创建一个新的)。将以下文本复制到新的客户端配置文件中:@version:3.5@include"scl.conf"@include"`scl-root`/system/tty10.conf"sources_local{system();内部的();};destinationd_syslog_tcp{syslog("192.168.1.118"transport("tcp")port(514));};log{来源(s_local);目的地(d_syslog_tcp);};请注意:请将IP地址更改为采集器IP地址。保存并关闭此文件。以与配置为收集器的机器相同的方式启动和启用syslog-ng。要查看配置为收集器的服务器上的日志文件,请运行命令sudotail-f/var/log/syslog-ng/logs.txt。您将看到包含收集器和客户端日志条目的输出(图A)。图A恭喜!syslog-ng已经运行良好。您现在可以登录到您的收集器以查看来自本地计算机和远程客户端的日志。如果你的数据中心有很多Linux服务器,在每台服务器上安装syslog-ng并将它们配置为将日志作为客户端发送到收集器,这样你就不需要登录到每台机器上查看它们的日志。