在 rhel7/centos7 上将 KERN_DEBUG 消息获取到系统日志中?

在 rhel7/centos7 上将 KERN_DEBUG 消息获取到系统日志中?

我一直在尝试将 KERN_DEBUG 消息记录到 centos7 中的文件中,但没有成功。我可以从“dmesg”中获取它们,但不能从 /var/log/messages 或 /var/log/dmesg 获取它们

这是我可以用来测试的 MWE 内核模块:

#include <linux/module.h>
#include <linux/kernel.h>

int init_module(void) {
    printk(KERN_DEBUG "Hello world!\n");
    return 0;
}

void cleanup_module(void) {
}

以及相应的Makefile:

obj-m += hello.o
all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

我尝试通过修改 rsyslog 配置来添加另一个日志文件:

[root@centos7 ]# cat /etc/rsyslog.d/kern.conf 
kern.*      /var/log/kern.log

但即使重新启动 rsyslogd 后,它也不会填充。我将 SELinux 设置为强制执行,所以为了好玩,我触摸了该文件并从 /var/log/messages 复制了上下文:

[root@centos7 mwe]# ls -lZ /var/log/kern.log 
-rw-r--r--. root root system_u:object_r:var_log_t:s0   /var/log/kern.log

当然,我从来没有遇到过任何 SELinux 错误,这只是在执行中运行时的下意识反应

有谁配置成功了吗?

答案1

Centos 7 使用journald 作为syslog,rsyslog 基本上被绕过了。

如果您想改用 rsyslog,请参阅:https://www.internetstaff.com/replace-journald-fedora-centos-redhat/

相关内容