Linux云服务器如何配置串口日志?
操作场景
当ECS发生夯机、异常重启或者无法正常启动时,运维人员需要定位导致问题发生的根本原因,及时解决问题并且避免该问题反复发生。
Linux系统ECS运行的稳定性会受多方面影响,既与承载运行的基础设施硬件和软件环境有关,也受操作系统内部的运行环境影响。
- 如果ECS的异常状态是由承载运行的基础设施硬件或软件故障导致,系统会通过事件通知用户,以便于用户了解该类故障对ECS运行的影响。
事件的更多信息,请参见事件概述。
- 如果ECS的异常状态是由操作系统内核bug、系统配置不当或程序过载等原因导致,则需要查看操作系统日志进行分析和诊断。
在Linux云服务器中,您可以配置将启动日志和异常故障等信息通过服务器的串口(串行端口,Serial Port)打印输出。
本节介绍为Linux云服务器配置串口日志的操作指导。
背景知识
串口打印输出的日志会包含两种类型的信息:
- 系统启动开机时的日志内容。
Linux操作系统ECS启动开机时,默认会将开机过程产生的日志信息输出到串口。开机信息会被系统内核存储在ring buffer中,显示系统架构、CPU、RAM、挂载的硬件以及软件启动相关的系统信息。这类信息可以用于了解系统是否正常启动,检查预先设定的应用程序是否随系统启动等情况。
- 系统内核故障或异常时的日志内容。
内核故障或异常错误发生时,系统会按照配置的日志级别(由内核参数kernel.printk决定,默认级别为4 - KERN_WARNING)将对应信息输出到串口。内核错误(Kernel panic)是指操作系统在监测到内部的致命错误,并无法安全处理此错误时采取的动作。操作系统内核中处理Kernel panic的子程序通常会向串口控制台输出错误信息,以便于故障的调试,并等待系统被手动或自动重新引导。该程序提供的技术性信息通常用于诊断问题。
日志级别 |
对应名称 |
说明 |
---|---|---|
0 |
KERN_EMERG |
The system is unusable. |
1 |
KERN_ALERT |
Actions that must be taken care of immediately. |
2 |
KERN_CRIT |
Critical conditions. |
3 |
KERN_ERR |
Noncritical error conditions. |
4 |
KERN_WARNING |
Warning conditions that should be taken care of. |
5 |
KERN_NOTICE |
Normal, but significant events. |
6 |
KERN_INFO |
Informational messages that require no action. |
7 |
KERN_DEBUG |
Kernel debugging messages, output by the kernel if the developer enabled |
操作步骤
介绍为x86以及鲲鹏架构ECS配置串口日志的操作步骤,公共镜像默认已配置。
本操作以CentOS操作系统为例进行介绍。
- 远程登录弹性云服务器。
详细操作,请参见通过VNC登录Linux ECS。
- 执行以下命令,编辑/etc/default/grub,在GRUB_CMDLINE_LINUX双引号里最后添加:console=tty0 console=ttyS0,115200n8。
图1 执行结果
- 执行以下命令,刷新grub配置文件/boot/grub2/grub.cfg,不同操作系统命令和配置文件路径可能不同,请以实际情况为准。
- CentOS:grub2-mkconfig -o /boot/grub2/grub.cfg
- Ubuntu:grub-mkconfig -o /boot/grub2/grub.cfg
图2 执行结果(CentOS)
本操作以Ubuntu操作系统为例进行介绍。
- 远程登录弹性云服务器。
详细操作,请参见通过VNC登录Linux ECS。
- 执行以下命令,编辑/etc/default/grub,在GRUB_CMDLINE_LINUX双引号里最后添加:console=tty0 console=ttyAMA0,115200n8。
图4 执行结果
- 执行以下命令,刷新grub配置文件/boot/efi/EFI/<操作系统>/grub.cfg,不同操作系统命令和配置文件路径可能不同,请以实际情况为准。
- centos:grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
- Ubuntu:grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg
图5 执行结果(Ubuntu)