怎样快速查看通用日志?

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 error、CPU soft lockup)

使用 dmesg 分析内核缓冲

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

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

典型场景:

  • 硬件故障:SMART failure(硬盘)、EDAC MC Error(内存)
  • 驱动问题:NMI watchdog、BUG: 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
    • 检查硬件:每月执行smartctl和memtester

引用说明:

  • 内核文档: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系统中运行火狐浏览器(Firefox)是许多用户的选择,得益于其开源特性和对Linux平台的良好适配,无论是日常浏览、开发调试还是隐私保护,火狐都能提供稳定的功能体验,本文将详细介绍在Linux系统中安装、配置火狐浏览器的完整步骤,以及常见问题的解决方法,帮助用户顺利在Linux环境下使用火狐,Li……

    2025年10月6日
    27100
  • Linux系统中,如何具体查看缓存文件的位置、大小及使用情况?

    在Linux系统中,缓存文件是提升系统性能的关键,它们存储了频繁访问的数据,减少磁盘I/O操作,查看缓存文件有助于理解内存使用情况、排查性能问题或清理冗余数据,以下是Linux中查看不同类型缓存文件的详细方法,系统级缓存查看(内核与内存缓存)Linux内核将空闲内存用作缓存,主要包括Page Cache(文件缓……

    2025年9月17日
    27800
  • Linux如何还原系统到指定版本?

    在Linux系统中,还原系统版本通常指将当前系统回退到之前某个稳定的状态,可能是由于系统更新后出现兼容性问题、软件冲突,或需要恢复到特定测试环境的需求,还原系统版本的方法多种多样,具体选择取决于备份方式、系统损坏程度以及用户对数据安全性的要求,本文将详细介绍几种主流的Linux系统版本还原方法,包括使用快照、备……

    2025年9月24日
    24400
  • Linux如何更改时区?具体操作步骤与命令详解

    在Linux系统中,正确设置时区对系统日志记录、应用运行时间同步、定时任务执行等至关重要,不同Linux发行版更改时区的方法略有差异,但核心逻辑一致,本文将详细介绍几种主流操作方式,使用timedatectl命令(推荐,适用于systemd系统)现代Linux发行版(如Ubuntu 16.04+、CentOS……

    2025年9月24日
    30900
  • Linux系统下如何高效列出文件内容?

    在Linux系统中,查看文件内容是日常管理和运维操作中的核心需求,无论是配置文件、日志文件还是文本数据,都需要通过命令行工具高效读取,本文将详细介绍常用的文件内容查看命令及其用法,帮助用户根据场景选择合适的工具,基础查看命令:catcat(concatenate)是最基础的文件内容查看命令,适用于小文件的直接输……

    2025年10月7日
    29000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信