代码改变世界

CentOS 8找不到/var/log/dmesg日志总结

2020-11-19 08:38  潇湘隐者  阅读(3884)  评论(0编辑  收藏  举报

在一台CentOS 8的Linux服务器上使用下面脚本判断BIOS层是否开启了numa时。尴尬的事情的发生了,这台CentOS 8上没有dmesg这个日志,但是可以通过命令dmesg查看相关日志。那么到底是什么情况呢?

[root@Zabbix log]# more /etc/redhat-release 
CentOS Linux release 8.2.2004 (Core)
[root@Zabbix log]#grep -i numa /var/log/dmesg

 

搜索资料时,在官方文档终于找到答案,因为这个资料需要账号才能访问,特将这个资料摘抄在此,方便查看!

  

The /var/log/dmesg file is not created during boot for Red Hat Enterprise Linux 8

 

环境

·         Red Hat Enterprise Linux 8

 

问题

·         On boot, there is no /var/log/dmesg file after install RHEL8.

·         I can get dmesg file via command dmesg, is this new design for RHEL 8, or do I need to modify some configuration to generate it automatically?

 

决议

Re-enabling the /var/log/dmesg log file

 

1) Create a /etc/systemd/system/dmesg.service configuration file with the following contents

 

[Unit]
Description=Create /var/log/dmesg on boot
ConditionPathExists=/var/log/dmesg
 
[Service]
ExecStart=/usr/bin/dmesg
StandardOutput=file:/var/log/dmesg
 
[Install]
WantedBy=multi-user.target

 

 

2) Create the /var/log/dmesg file and verify SELinux contexts

 

# touch /var/log/dmesg
# restorecon -v /var/log/dmesg

 

 

3) Enable the service to start on boot

 

# systemctl enable dmesg

 

 

根源

 

By design, the /var/log/dmesg file is not generated during boot. The kernel ring buffer is captured within the systemd-journal as well as /var/log/messages, via the imjournal rsyslog plugin.

 

 

简单来说,CentOS 8在设计之初,在启动过程中不会生成/var/log/dmesg日志文件。 内核环形缓冲区在systemd-journal和日志/var/log/messages中捕获内核启动信息,通过imjournal rsyslog 插件捕获。当然你也可以通过上面设置生成/var/log/dmesg日志文件。

 

 

参考资料:

 

https://access.redhat.com/solutions/3748981