文章目录
一、Linux系统日志是什么?
Linux 系统日志是Linux系统的一个重要组成。系统日志既可以简单地通知我们守护程序的状态又可以显示关键消息或警告、报错,协助我们查询、定位系统的各类事件问题。
二、Linux系统日志使用
1.系统日志的级别
Linux系统日志共有8个级别,从低到高依次为( Level 7 - Level 0 ):DEBUG、INFO、NOTICE、WARNING、ERROR、CRITICAL、ALERT、EMERG。级别越高,日志的严重性越强,记录的信息越少。
0 KERN_EMERG
此级别是按严重性排序的最高级别:它被有关系统不稳定或即将崩溃的消息采用。1 KERN_ALERT
此级别用于立即需要用户注意的情况。2 KERN_CRIT
此严重性级别用于通知与硬件或软件相关的严重错误。3 KERN_ERR
此级别通常用于通知用户非关键错误,例如设备识别失败或有问题,或者更一般的驱动程序相关问题。4 KERN_WARNING
此级别用于显示有关非即将发生的错误的警告或消息,它是大多数 Linux 发行版中通常用作默认值的日志级别。5 KERN_NOTICE
此级别的消息是关于可能值得注意的事件。6 KERN_INFO
此级别的消息用于有关内核执行的操作的信息性消息的日志级别。7 KERN_DEBUG
此级别的消息主要用于调试。
2.查询与设置日志级别
查询日志级别
[root@localhost ~]# cat /proc/sys/kernel/printk
4 4 1 7
[root@localhost ~]# sysctl kernel.printk
kernel.printk = 4 4 1 7
输出包含四个数字,分别对应如下控制台级别:
第一列:控制台日志级别(console_loglevel),当前值为4(KERN_WARNING);
第二列:默认消息日志级别(default_message_loglevel),当前值为4(KERN_WARNING);
第三列:最低控制台日志级别(minimum_console_loglevel),当前值为1 (KERN_ALERT );
第四列:默认控制台日志级别(default_console_loglevel),当前值为7 (KERN_DEBUG)。
设置日志级别
临时日志级别
echo 7 > /proc/sys/kernel/printk(显示所有日志)
永久设置日志级别
在开机grub默认启动配置选项中加入log_level=7,并更新grub ( grub2-mkconfig -o /boot/grub2/grub.cfg 或 update-grub )。
[root@localhost ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="log_level=7 rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
三、扩展
在默认情况下,DEBUG级别的消息不会从控制台输出,我们可以通过在bootargs中设置ignore_loglevel来忽略打印级别,以保证所有消息都被打印到控制台。
在系统启动后,用户可以通过写/sys/module/printk/parameters/ignore_loglevel文件实时设置是否忽略打印级别。要注意的是,/proc/sys/kernel/printk 并不控制内核消息进入日志文件的门槛,因此无论消息级别是多少,都会进入日志文件中,但是最终只有高于当前打印级别的内核消息才会从控制台打印。
用户可以通过dmesg命令查看内核打印缓冲区,而如果使用dmesg -c命令,则会显示系统日志,但会清除该缓冲区的内容。也可以使用cat /proc/kmsg命令来显示内核信息,/proc/kmsg是一个“永无休止的文件”,因此cat /proc/kmsg的进程只能通过“Ctrl+C”或kill终止。

7007

被折叠的 条评论
为什么被折叠?



