怎样快速查看通用日志?

Linux系统宕机原因排查指南

当Linux服务器意外宕机时,快速定位原因对恢复服务至关重要,以下是详细的排查方法,按优先级排序:


查看系统日志(关键入口)

系统日志是首要排查点,存储路径因发行版而异:

tail -n 100 /var/log/syslog       # Ubuntu/Debian
# 内核专属日志
grep -i "error\|panic\|oom\|segfault" /var/log/kern.log

重点关注

  • kernel panic:内核级致命错误
  • Out of memory (OOM):内存耗尽
  • segfault:应用程序内存越界
  • 硬件错误(如I/O errorCPU soft lockup

使用 dmesg 分析内核缓冲

内核环形缓冲区记录崩溃前的最后信息:

dmesg -T | tail -n 200  # -T 显示可读时间戳

典型场景

  • 硬件故障SMART failure(硬盘)、EDAC MC Error(内存)
  • 驱动问题NMI watchdogBUG: soft lockup
  • 资源枯竭oom-killer进程名

检查系统服务日志(systemd 环境)

使用 journalctl 查询服务崩溃记录:

journalctl -b -1 -p 3  # 查看上次启动(-b -1)的错误(priority 3以上)
journalctl -k --since "2 hours ago"  # 仅内核日志

分析内存转储文件(高级诊断)

若配置了 kdump,内存转储文件在 /var/crash/ 目录:

crash /var/crash/vmcore /usr/lib/debug/lib/modules/$(uname -r)/vmlinux

操作示例

crash> bt    # 查看崩溃时的调用栈
crash> ps    # 显示崩溃瞬间的进程状态

⚠️ 前提条件:需提前配置kdump(官方配置指南)


硬件健康检查

  • 硬盘状态
    smartctl -a /dev/sda | grep -e "Reallocated_Sector" -e "Pending_Sector"
  • 内存测试
    memtester 1G 1    # 测试1GB内存(需安装memtester)
  • 服务器硬件日志
    ipmitool sel list  # 需硬件支持IPMI

资源使用回溯

通过 sar(sysstat包)查看历史资源数据:

sar -r -u -q -f /var/log/sa/sa$(date +%d -d yesterday)  # 查看昨日数据

关键指标

  • %memused >95% → 内存耗尽
  • runq-sz > CPU核心数 → CPU过载
  • await > 100ms → 磁盘I/O瓶颈

常见宕机原因速查表

现象 可能原因 验证命令
系统无响应 内存耗尽/OOM dmesg | grep -i oom
强制重启 硬件故障(CPU/内存) dmidecode -t memory
内核崩溃 驱动或内核bug modinfo 驱动名
文件系统只读 磁盘损坏 smartctl -a /dev/sda
SSH断开后无法连接 网络或高负载 sar -n DEV 1 3

预防建议

  1. 监控配置:部署Prometheus+Alertmanager监控内存/磁盘/CPU阈值
  2. 内核调优
    echo "vm.panic_on_oom=0" >> /etc/sysctl.conf  # 禁用OOM时panic
    echo "kernel.sysrq=1" >> /etc/sysctl.conf     # 启用SysRq紧急调试
  3. 定期维护
    • 更新内核:yum update kernel / apt upgrade linux-image-generic
    • 检查硬件:每月执行smartctlmemtester

引用说明

  • 内核文档:Kernel Crash Dump Guide
  • 系统调试工具:sysstat、crash、ipmitool 官方手册
  • 最佳实践参考:Red Hat Troubleshooting Guide

通过系统日志、硬件检查、资源分析三管齐下,90%的宕机原因可被快速定位,复杂场景建议结合crash工具深度分析转储文件。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8740.html

(0)
酷番叔酷番叔
上一篇 2025年7月26日 15:04
下一篇 2025年7月26日 15:30

相关推荐

  • 如何快速查看Linux系统镜像详情?

    在 Linux 环境中,”系统镜像”通常指两类内容:已安装系统的版本信息(如发行版名称、内核版本)下载的 ISO 安装镜像文件(如 Ubuntu、CentOS 的安装文件)以下是详细的操作指南,涵盖命令行和图形界面方法,查看已安装系统的镜像信息通过终端命令快速获取系统版本和内核详情:lsb_release 命令……

    2025年6月28日
    11800
  • C程序编译失败怎么办,如何快速编译C程序,C语言编译卡住怎么解决,为什么C程序编译总报错,编译C程序有哪些技巧

    在Linux系统中,Makefile是自动化编译的核心工具,它通过定义规则(目标、依赖和命令)来管理项目构建流程,以下是详细使用指南:Makefile基础结构 gcc main.o utils.o -o app # 命令(必须用Tab缩进)main.o: main.c gcc -c main.cutils.o……

    2025年7月5日
    10500
  • Linux下如何设置代理端口?

    在Linux系统中设置代理端口是常见的网络配置需求,通常用于访问内网资源、绕过网络限制或提高访问速度,代理端口设置涉及多种场景,包括临时环境变量配置、永久配置文件修改、特定工具代理设置等,本文将详细介绍不同场景下的具体操作方法,通过环境变量临时设置代理环境变量配置是最简单的代理设置方式,适用于当前终端会话,关闭……

    2025年10月2日
    11900
  • Linux如何复制文本内容?

    在Linux操作系统中,复制文本内容是日常操作中的高频需求,无论是终端命令输出、文件内容,还是编辑器中的文本,都需要通过不同方式实现复制,根据使用场景(如终端操作、编辑器编辑、图形界面交互等),Linux提供了多种复制文本的方法,涵盖命令行工具、编辑器快捷键、系统剪贴板操作等,本文将详细介绍这些方法,帮助用户在……

    2025年9月24日
    9300
  • 如何提取.so文件符号?

    提取现有.so文件的符号列表可使用nm、objdump或readelf工具,获取库中函数、变量等符号名称、类型及地址信息,用于分析动态链接库的接口和依赖关系。

    2025年8月4日
    12200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信