怎样快速查看通用日志?

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挂载光驱遇难题?

    挂载光驱步骤确认光驱设备标识lsblk # 列出所有块设备输出示例:sr0 11:0 1 1024M 0 rom # 通常标识为 /dev/sr0 或 /dev/cdrom创建挂载点目录sudo mkdir /mnt/cdrom # 推荐使用 /mnt/cdrom 作为标准路径挂载光驱sudo mount -t……

    2025年7月15日
    12000
  • Linux系统如何查看硬盘总大小及剩余空间?命令方法详解

    在Linux系统中,查看硬盘大小有多种方法,涵盖命令行和图形界面工具,适用于不同使用场景和用户需求,以下从常用命令行工具、图形界面操作及注意事项三个方面展开说明,命令行工具查看硬盘大小命令行是Linux系统管理的高效方式,以下工具可满足不同角度的硬盘容量查询需求,lsblk:列出块设备信息lsblk(list……

    2025年8月22日
    11700
  • Linux系统如何新建swap交换空间?

    在Linux系统中,swap(交换空间)作为物理内存的补充,当系统内存不足时,会将部分暂时不用的数据写入swap,从而释放内存供其他进程使用,避免系统因内存耗尽而崩溃,本文将详细介绍如何在Linux系统中新建swap文件,包括完整操作步骤、注意事项及验证方法,检查当前swap状态在新建swap前,需先确认系统是……

    2025年10月7日
    8600
  • Linux终端如何暂停执行?

    在Linux系统中,终端暂停是常见的操作需求,无论是脚本执行中等待用户交互、临时锁定终端防止误操作,还是控制任务执行节奏,都需要灵活运用暂停命令,以下是不同场景下的终端暂停方法及具体实现,脚本执行中的暂停方法在Shell脚本中,暂停通常分为“等待用户输入”和“定时暂停”两类,需根据需求选择合适命令,等待用户输入……

    2025年9月19日
    9200
  • Linux系统中.bin文件的安装方法、步骤及注意事项有哪些?

    在Linux系统中,bin文件通常指二进制可执行文件(Binary Executable),这类文件是程序源码经过编译后的机器码,无需依赖源码即可直接运行,常见于第三方软件、开发工具或便携式程序,与.deb、.rpm等依赖包管理器的安装包不同,bin文件的安装过程需要用户手动处理权限、依赖及路径配置,掌握正确方……

    2025年8月22日
    10900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信