每个Linux发行版都带有一些日志记录系统,用于记录系统活动。这在系统故障排除期间可能会有所帮助。Rsyslog是一个开放源代码,并且在系统日志处理速度方面可谓飞速发展。它可用于几种主要的Linux发行版,包括基于Debian和Red Hat的系统。与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,请使用以下命令-
$ 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文章中,我们将详细了解这些类型的命令。继续阅读!
我正在使用python日志记录我的程序。所有日志当前都打印在stdout上,但我希望使用POST REST调用将它们发送到远程日志服务器。当前,我的程序发出了多个日志记录的POST请求。有没有更优化的方式发送日志,我可以捆绑多个日志在一个POST请求?
我想更改我的Quarkus应用程序的日志记录级别。 如何从配置文件或运行时执行此操作?
问题内容: 我想通过请求中的项目填充日志记录上下文,例如:。我以为我可以在中间件的处理程序中覆盖Log类型。虽然它似乎不起作用,但我不确定为什么! 您能看到为什么在同一请求中对IIUC应该没有影响吗? 问题答案: 您需要对记录程序进行请求范围的检查。每当有新的连接进入时,就为整个处理程序全局设置它,这意味着您要进行数据争用以及通常不受欢迎的行为。 对于请求范围的上下文,请求中的嵌入是完美的。您可以
在尝试为本地和kubernetes dev环境设置airflow日志记录到LocalStackS3存储桶时,我遵循airflow文档记录到s3。为了给出一点上下文,localstack是一个本地AWS云堆栈,其中包含在本地运行的s3在内的AWS服务。 我将以下环境变量添加到我的airflow容器中,类似于此其他堆栈溢出日志,以尝试记录到我的本地s3桶中。这是我为所有气流容器添加到中的内容: 我还向
我有一个多线程Java应用程序,每个线程都是一个扩展基类的类。其中一个线程偶尔会给基类中的一个方法大量机器生成的数据,而其他线程只给出少量的人类类型数据。我想在比机器数据更高的日志级别上记录这些人类类型的消息,但是由于基类是所有线程的一部分,我无法在代码中区分出来。 一种解决方案是通知扩展类中的基类在不同的级别上登录,但是我必须将这些知识硬编码到应用程序中,这很难看。 我想做的是通过我的logba
我们知道,使用“@IP:端口”或“@@IP:端口”的格式可以把日志发送到远程主机上,那么这么做有什么意义吗? 假设我需要管理几十台服务器,那么我每天的重要工作就是查看这些服务器的日志,可是每台服务器单独登录,并且查看日志非常烦琐,我可以把几十台服务器的日志集中到一台日志服务器上吗?这样我每天只要登录这台日志服务器,就可以查看所有服务器的日志,要方便得多。 如何实现日志服务器的功能呢?其实并不难,不