云计算百科
云计算领域专业知识百科平台

服务器一直报systemd信息的屏蔽方法

服务器一直报某种systemd信息,对系统监控和问题分析造成影响,本文探讨对此类信息的的屏蔽方法。

一、问题现象

服务器/var/log/messages文件中一直报某类systemd信息,如:

 影响到对其它应用的日志分析判断了,对于这种我们不太关注,对业务也没什么影响的日志,我们考虑对其进行屏蔽处理。

二、问题分析 

/var/log/messages文件中记录的某类systemd信息,是通过syslog系统或systemd-journald服务的配置和转发机制记录到其中的,具体过程如下:

1、通过 syslog 系统

日志产生:systemd在运行过程中会产生各种日志信息,这些信息会被发送到系统的日志缓冲区。 rsyslogd 接收:rsyslogd(或其他syslog守护进程)会监控系统日志缓冲区,当有新的日志消息出现时,它会根据配置文件中的规则来决定如何处理这些消息。 规则匹配:在rsyslog的配置文件(通常位于/etc/rsyslog.conf或/etc/rsyslog.d/目录下的其他配置文件)中,会有针对systemd日志的配置规则。例如,可能会有规则指定将systemd的某些级别的日志消息记录到/var/log/messages文件中。 日志写入:当rsyslogd根据规则判断某条systemd日志符合写入/var/log/messages的条件时,它就会将该日志消息写入到这个文件中。

2、通过 systemd – journald 服务

日志收集:systemd-journald是systemd自带的日志收集和管理服务,它会收集系统中各种服务和进程产生的日志,包括systemd自身的日志。 转发配置:虽然systemd-journald有自己的日志存储格式和位置(通常位于/var/log/journal/目录下),但它也可以配置将日志转发到其他位置,包括/var/log/messages。这需要在systemd的相关配置文件中进行设置,例如通过修改/etc/systemd/journald.conf文件中的配置项,启用日志转发功能,并指定将特定类型或级别的systemd日志转发到/var/log/messages。 日志写入:当配置好转发后,systemd – journald会按照配置将相应的systemd日志消息发送到/var/log/messages文件中进行记录。

三、处理方法

1、修改systemd的日志配置

   找到systemd的日志配置文件,通常位于/etc/systemd/journald.conf。在该文件中添加或修改以下内容:

[Journal] … SuppressMessage=systemd[1]: Time has been changed

上述配置中,SuppressMessage选项用于指定要屏蔽的日志消息。这里设置为屏蔽systemd[1]: Time has been changed这条日志。

修改完成后,需要重启systemd-journald服务使配置生效:

systemctl restart systemd-journald

2、配置rsyslog

如果系统使用rsyslog进行日志记录,可以在rsyslog的配置文件中添加过滤规则来实现。步骤如下: 打开rsyslog的配置文件,通常位于/etc/rsyslog.d/目录下,创建一个新的配置文件,例如time_msgs.conf。 在time_msgs.conf文件中添加以下内容:

if $programname == 'systemd' and $msg contains 'Time has been changed' then stop

这表示当rsyslog接收到来自systemd且包含Time has been changed的日志消息时,停止记录该消息。 保存文件并退出编辑器。 重启rsyslog服务,使配置生效: systemctl restart rsyslog

3、实作

本次配置采用方法2,在rsyslog服务中屏蔽记录该消息,如下:

# cat /etc/rsyslog.d/time_msgs.conf
if $programname == 'systemd' and $msg contains 'Time has been changed' then stop
# systemctl restart rsyslog

配置完成后该日志不再生成了。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 服务器一直报systemd信息的屏蔽方法
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!