当前位置: 首页 > 编程笔记 >

如何在Linux上设置Rsyslog远程日志记录

邢杰
2023-03-14
本文向大家介绍如何在Linux上设置Rsyslog远程日志记录,包括了如何在Linux上设置Rsyslog远程日志记录的使用技巧和注意事项,需要的朋友参考一下

每个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,以便您的更改可以立即生效。要重新启动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:端口”的格式可以把日志发送到远程主机上,那么这么做有什么意义吗? 假设我需要管理几十台服务器,那么我每天的重要工作就是查看这些服务器的日志,可是每台服务器单独登录,并且查看日志非常烦琐,我可以把几十台服务器的日志集中到一台日志服务器上吗?这样我每天只要登录这台日志服务器,就可以查看所有服务器的日志,要方便得多。 如何实现日志服务器的功能呢?其实并不难,不