文章目录
前言
`
本教程的目的是了解各种 linux 内核日志级别、它们的组织方式,以及我们如何根据消息的严重性设置应在控制台上显示哪些消息。
一、Linux 内核日志级别简介
1.介绍
Linux 内核日志文件的管理是服务器管理的一个重要方面:日志可以简单地通知我们守护程序的状态,或者显示关键消息或警告。在本教程中,我们将看到 linux 内核使用的各种类型的日志级别,它们如何划分严重性,以及如何根据日志级别过滤控制台上显示的消息。
2. Linux 内核日志级别
基本上有八个日志级别,由linux内核发送消息,日志级别从高到低,level 0 ~ level 7 。
级别简述:
0 KERN_EMERG 这是按严重性排序的最高级别:它被有关系统不稳定或即将崩溃的消息采用。 1 KERN_ALERT 此级别用于立即需要用户注意的情况。 2 KERN_CRIT 此严重性级别用于通知与硬件或软件相关的严重错误。 3 KERN_ERR 通常用于通知用户非关键错误,例如设备识别失败或有问题,或者更一般的驱动程序相关问题。 4 KERN_WARNING 或 loglevel 它是大多数 Linux 发行版中通常用作默认值的日志级别。此级别用于显示有关非即将发生的错误的警告或消息。 5 KERN_NOTICE 此级别的消息是关于可能值得注意的事件。 6 KERN_INFO 此级别的消息用于有关内核执行的操作的信息性消息的日志级别。 7 KERN_DEBUG 此级别的消息主要用于调试。
3.如何检查当前默认日志级别
检查系统上使用的默认日志级别非常容易。我们要做的就是检查文件的内容。它实际上并不在磁盘上,而是由内核创建并在内存中维护的系统状态的可视化表示。在这种情况下,我们可以运行以下命令来查询有关系统中设置的默认控制台日志级别的信息。
运行
[root@localhost ~]# cat /proc/sys/kernel/printk4417
或
[root@localhost ~]# sysctl kernel.printkkernel.printk = 4417
这是命令的典型输出:
4 4 1 7
输出介绍
第一个值:第一个值是电流,这就是我们正在寻找的信息:在本例中,该值表示当前使用的日志级别。如前所述,这意味着只有采用高于其严重性级别的消息才会显示在控制台上。console_loglevel4第二个值:此值自动用于没有特定日志级别的消息:如果消息未与日志级别关联,则将使用此消息。default_message_loglevel第三个值:它指示可用于 的最低日志级别。这里使用的级别是,最高。minimum_console_loglevelconsole_loglevel 1最后的值:这是引导时使用的默认日志级别。default_console_loglevelconsole_logleve l
4.更改默认控制台日志级别
在某些情况下,我们可能想要更改该值,让我们看看如何更改。
我们可以使用最直接的方法是将新值写入文件。但是,这是一个临时解决方案,新设置计算机重新启动不会保留。假设我们要将默认控制台日志级别更改 ,以下是我们要运行的内容:
$ echo "3" | sudo tee /proc/sys/kernel/printk
或者,直接使用该帐户:root
echo "3" > /proc/sys/kernel/printk
通过查看文件的内容,我们可以验证loglevel现在是否是我们在命令中指定的级别:
$ cat /proc/sys/kernel/printk3 4 1 7
我们可以使用以下命令获得相同的结果:
sudo sysctl -w kernel.printk=3
要以持久的方式更改默认日志级别,我们必须修改文件,在启动时将参数传递给内核命令行:
vim /etc/default/grub
GRUB_TIMEOUT=5GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"GRUB_DEFAULT=savedGRUB_DISABLE_SUBMENU=trueGRUB_TERMINAL_OUTPUT="console"GRUB_CMDLINE_LINUX="loglevel=3 resume=UUID=df5a0685-43f8-433a-8611-57335a10ca8d"GRUB_DISABLE_RECOVERY="true"
上面是 /etc/default/grub 文件的内容,主要修改的内容是:loglevel=3
GRUB_CMDLINE_LINUX="loglevel=3"
修改文件并保存更改后,重新加载 grub,以便在下次重新启动时应用新配置:执行此操作的命令取决于我们正在运行的发行版。
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
在基于 Debian 的发行版上,使用以下命令:
$ sudo update-grub
grub 配置将被更新,在下次重新启动时,指定的日志级别将被采用为默认值。
结论
在本教程中,我们学习了如何根据其严重性级别组织 linux 内核日志。我们还看到了如何更改默认设置,以便使用相同的条件在控制台上仅显示内核发送的某些消息。最后,我们看到了如何持久化这些更改。
来源地址:https://blog.csdn.net/qq_54947566/article/details/129846791