前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >系统运维|如何使用 syslog-ng 从远程 Linux 机器上收集日志

系统运维|如何使用 syslog-ng 从远程 Linux 机器上收集日志

原创
作者头像
知忆
修改2021-07-05 10:02:27
9460
修改2021-07-05 10:02:27
举报
文章被收录于专栏:linux百科小宇宙linux百科小宇宙

如果你的数据中心全是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);mark-freq(10);keep-hostname(yes);};sources_local{system();internal();};sources_network{syslog(transport(tcp)port(514));};destinationd_local{file("/var/log/syslog-ng/messages_${HOST}");};destinationd_logs{file("/var/log/syslog-ng/logs.txt"owner("root")group("root")perm(0777));};log{source(s_local);source(s_network);destination(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-ng配置客户端我们将在客户端上做同样的事情(移动默认配置文件并创建新配置文件)。拷贝下列文本到新的客户端配置文件中:

@version:3.5@include"scl.conf"@include"`scl-root`/system/tty10.conf"sources_local{system();internal();};destinationd_syslog_tcp{syslog("192.168.1.118"transport("tcp")port(514));};log{source(s_local);destination(d_syslog_tcp);};请注意:请将IP地址修改为收集器的IP地址。

保存和关闭这个文件。与在配置为收集器的机器上一样的方法启动和启用syslog-ng。

查看日志文件回到你的配置为收集器的服务器上,运行这个命令sudotail-f/var/log/syslog-ng/logs.txt。你将看到包含了收集器和客户端的日志条目的输出(图A)。

恭喜你!syslog-ng已经正常工作了。你现在可以登入到你的收集器上查看本地机器和远程客户端的日志了。如果你的数据中心有很多Linux服务器,在每台服务器上都安装上syslog-ng并配置它们作为客户端发送日志到收集器,这样你就不需要登入到每个机器去查看它们的日志了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档