如何在Linux上设置Rsyslog远程日志记录
每个Linux发行版都带有一些日志记录系统,用于记录系统活动。这在系统故障排除期间可能会有所帮助。Rsyslog是一个开放源代码,并且在系统日志处理速度方面可谓飞速发展。它可用于几种主要的Linux发行版,包括基于Debian和RedHat的系统。与SYSLOG协议相比,它具有其他一些功能,例如基于内容的TCP传输过滤,并提供了大量的配置选项。本文介绍如何通过简单的步骤设置Rsyslog远程日志记录。
安装
如果您的Linux系统上未安装Rsyslog,请使用以下命令进行安装-
$ sudo apt-get install rsyslog rsyslog-doc
输出应该是这样的-
Reading package lists... Done Building dependency tree Reading state information... Done rsyslog is already the newest version. The following NEW packages will be installed: rsyslog-doc 0 upgraded, 1 newly installed, 0 to remove and 265 not upgraded. Need to get 931 kB of archives. After this operation, 1,828 kB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://in.archive.ubuntu.com/ubuntu/ trusty-updates/main rsyslog-doc all 7.4.4-1ubuntu2.6 [931 kB] Fetched 931 kB in 1s (508 kB/s) Selecting previously unselected package rsyslog-doc. (Reading database ... 165966 files and directories currently installed.) Preparing to unpack .../rsyslog-doc_7.4.4-1ubuntu2.6_all.deb ... Unpacking rsyslog-doc (7.4.4-1ubuntu2.6) ... Processing triggers for doc-base (0.10.5) ... Processing 32 changed doc-base files, 1 added doc-base file... Setting up rsyslog-doc (7.4.4-1ubuntu2.6) ...
Rsyslog配置存储在/etc/ryslog.conf文件中,并且这些文件位于/etc/rsyslog.d/目录下。
配置结构
Rsyslog配置文件的结构如下:
模组
配置指令
规则线
模组
Rsyslog具有模块化体系结构。它将以动态方式启用功能。这些模块按以下方式分类-
输入模块–用于收集来自各种来源的消息。
输出模块–用于将消息写到各个位置(文件,套接字等)。
解析器模块–用于解析消息内容。
配置指令
配置指令是Rsyslog的配置指令。每行以美元($)符号开头只能指定一个。
规则线
每条规则行都包含两个字段,它们分为选择器字段和操作字段。再次将选择器字段分为两个字段,应该像这样-
设备
优先事项
样本配置
MODULES $ModLoad imuxsock $ModLoad imklog Directives # Set the default permissions for all log files. $FileOwner root $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 RULES mail.info/var/log/mail.info mail.warn/var/log/mail.warn mail.err/var/log/mail.err daemon.*/var/log/daemon.log
范本
这是Rsyslog的最重要功能,它允许用户以理想的格式记录消息。它也可以用来创建动态文件名来记录消息。
检查Rsyslog配置
在检查Rsyslog配置之前,请确保已重新启动Rsyslog,以便您的更改可以立即生效。要重新启动Rsyslog,请使用以下命令-
$ sudo service rsyslog restart
确保Rsyslog正在运行。如果该命令什么都不返回,那么我们可以假定它根本没有运行。使用以下命令检查进程是否正在运行–
$ ps -A | grep rsyslog
样本输出应该像这样-
6738 ? 00:00:00 rsyslogd
检查Rsyslog配置,使用以下命令-
$ rsyslogd -N1
样本输出应该像这样-
rsyslogd: version 7.4.4, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye.
检查Linux系统日志中是否有Rsyslog错误。如果有错误,可以在/var/log/messages中找到它们。一些日志也可能存储在/var/log/syslog中。
$ sudo cat /var/log/messages | grep rsyslog
发送样本数据
通过创建测试事件来验证Rsyslog是否正在将数据发送到记录器。要发送数据,请使用以下命令–
$ logger Nhooo
检查linux系统日志以查看Rsyslog是否已记录测试事件,要验证该事件,请使用以下命令-
$ sudo cat /var/log/syslog | grep Nhooo
样本输出应该像这样-
Feb 4 11:25:54 linux tp: Nhooo Feb 4 11:32:25 linux tp: Nhooo
恭喜你!现在,您知道Linux上的“如何设置Rsyslog远程日志记录”。在下一篇Linux文章中,我们将详细了解这些类型的命令。继续阅读!