怎样快速查看通用日志?

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系统中,别名(alias)是一种便捷的功能,允许用户为常用命令或复杂命令组合设置简短的名称,从而提高命令行操作效率,要查看Linux系统中已定义的别名,可以通过多种方式实现,本文将详细介绍这些方法,包括基础查看命令、配置文件定位、别名定义解析等,帮助用户全面掌握别名的查看与管理,使用alias命令直……

    2025年8月28日
    10000
  • Linux忘记用户名和密码后,如何修改用户名和密码?

    忘记Linux系统的用户名和密码确实是一件令人头疼的事,但别担心,通过系统自带的救援模式和引导参数修改功能,我们完全可以解决这个问题,不过需要提前说明的是,此操作需要你有物理访问服务器的权限(或已获得远程控制台权限),且操作过程中存在一定风险,建议提前备份重要数据,下面我将分步骤详细说明处理方法,涵盖不同Lin……

    2025年9月10日
    14100
  • linux 上如何安装系统下载软件

    Linux 上,可通过软件仓库管理工具(如 apt、yum)安装系统下载软件

    2025年8月16日
    7600
  • Linux如何查看所有文件(含隐藏)?

    在Linux系统中,查看所有文件是日常管理和运维中的基础操作,不同场景下需要使用不同的命令和方法,本文将详细介绍通过ls、find、tree等命令查看所有文件的技巧,涵盖基础列表、递归查找、条件筛选等常用需求,基础命令:ls——快速查看当前目录文件ls是Linux中最常用的文件列表命令,默认显示当前目录下的非隐……

    2025年8月28日
    9400
  • Linux中如何删除文件夹?命令使用与操作步骤详解

    在Linux系统中,删除文件夹是日常管理文件系统的常见操作,但不同场景下需使用不同的命令和方法,以确保操作安全且高效,Linux删除文件夹主要涉及rmdir、rm命令,以及结合find等工具的高级用法,需根据文件夹是否为空、是否需要递归删除等需求选择合适的方式,基础删除命令:rmdir与rmrmdir:仅删除空……

    2025年8月31日
    12600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信