dmesg 时间误差现象

案例现象

这天收到监控平台发来的告警,说有台机器程序崩溃了

 

因为以前也有过相关的错误,根据经验,用 dmesg命令看下内核信息

dmesg 时间误差现象

 

发现有点不对劲,报错信息的时间跟告警时间不一致,正常来讲报错时间应该跟告警时间一致

 

使用 date 命令查看一下当前系统时间

dmesg 时间误差现象

 

然后我们查看一下系统日志

dmesg 时间误差现象

 

由上面的输出可以看到:

dmesg 显示错误信息的时间跟系统日志 /var/log/messages显示错误信息的时间不一致

 

定位问题

 

我们知道, dmesg  和  /var/log/messages 都是用来记录服务器启动、运行期间的日志的

 

当机器出现问题时,运维人员可以从这两个日志输出中进行初步排查

 

我们来看下 dmesg 输出和 /var/log/messages 的区别

  • dmesg 显示内核和内核模块的相关信息,/var/log/messages 不但显示内核信息,还显示系统活动信息

  • 可以说 dmesg 输出的信息是 /var/log/messages 的子集, dmesg 输出的信息在 ring buffer 中维护,大小有限制

  • /var/log/messages包含所有系统消息以及dmesg 中的信息

 

那为什么这台机器上 dmesg 显示错误信息的时间跟系统日志 /var/log/messages显示错误信息的时间不一致呢?

 

由上面得知,我在查看 dmesg 信息的时候使用了 -T 参数,我们来看一下这个参数的含义

dmesg 时间误差现象

 

这个 -T 参数可以直接转换为人类可读时间(即年月日时分秒),但是不一定精确,如果系统挂起或者恢复之后,日志使用的时间源是不会更新的

 

也就是说,dmesg -T 输出的内核信息并不能保证时间的准确性

 

又因为 dmesg -T 中记录的时间是系统启动时间到事件发生时间的时间差,这台机器每天都会进行 NTP 时间同步以及每隔一段时间会进行重启

 

所以就会出现内核日志的时间与系统日志时间不一致的现象

 

解决方案

关于dmesg -T 时间戳不精确的情况,我查了好多资料都说没有解决方法

 

dmesg 时间误差现象

 

dmesg 时间误差现象

 

所以在这里我建议大家如果想要获得准确的时间信息,就去查看系统日志——/var/log/messages

 

如果有小伙伴知道该如何解决的,可以告诉我

 

最后附上相关 issue 链接:

  1. https://serverfault.com/questions/576139/dmesg-time-vs-system-time-time-isnt-correct

  2. https://bugzilla.redhat.com/show_bug.cgi?id=895909

  3. https://blog.tankywoo.com/2015/02/03/about-timestamp-in-dmesg.html

 

 


感谢阅读,喜欢作者就动动小手[一键三连],关注公众号【咸鱼运维杂谈】,这是我写作最大的动力

 

原文链接:https://www.cnblogs.com/edisonfish/p/17283958.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:dmesg 时间误差现象 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • Linux系统中关于KVM虚拟机迁移的一些相关问题

    关于Linux系统中关于KVM虚拟机迁移的一些相关问题,一些常见问题和解决方案请见下文。 1. KVM虚拟机迁移的介绍 KVM是一种开源虚拟化技术,它支持基于硬件的虚拟化,也支持容器技术。虚拟机迁移是指将正在运行的虚拟机从一个物理主机迁移到另一个物理主机。在KVM中,虚拟机迁移有两种方式,即冷迁移(Shut down)和热迁移(Live migration)…

    Linux 2023年5月24日
    00
  • Linux下从零开始安装配置Nginx服务器+PHP开发环境

    感谢您的提问,以下是“Linux下从零开始安装配置Nginx服务器+PHP开发环境”的完整攻略步骤及示例说明。 1. 安装Nginx Nginx是一款高性能的HTTP服务器,对于需要处理大量并发请求的Web应用和负载平衡来说具有较好的性能。在Linux系统中,安装Nginx可以通过以下命令实现: sudo apt-get update sudo apt-ge…

    Linux 2023年5月14日
    00
  • Linux下python2和python3共存

    https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tar.xz 下载命令: wget https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tar.xz 解压: tar xvf Python-3.4.4.tar.xz 进入目录: cd Python-3…

    Linux 2023年4月12日
    00
  • Linux系统–初识shell

    访问命令行(command line interface,CLI) Linux控制台 1)Linux系统启动时,会自动创建多个虚拟控制台。虚拟控制台是运行在Linux系统内存中的终端会话。多数Linux发行版会启动5~6个 2)通常必须按下Ctrl+Alt组合键,然后再按一个功能键(F1~F7)来进入你要使用的虚拟控制台。功能键F2键会生成虚拟控制台2,F3…

    Linux 2023年4月18日
    00
  • CentOS 6.3编译安装LAMP环境笔记

    CentOS6.3编译安装LAMP环境笔记 一、安装Apache 1. 安装apr和apr-util 在CentOS 6.3中,我们可以使用yum安装apr和apr-util: yum install -y apr apr-util 2. 下载并解压Apache 从Apache官网上下载最新版本的tar包,将其解压到/usr/local/src目录下: cd…

    Linux 2023年5月14日
    00
  • Linux C – poll示例

    Poll就是监控文件是否可读的一种机制,作用与select一样。 应用程序的调用函数如下: int poll(struct pollfd *fds,nfds_t nfds, int timeout); Poll机制会判断fds中的文件是否可读,如果可读则会立即返回,返回的值就是可读fd的数量,如果不可读,那么就进程就会休眠timeout这么长的时间,然后再来…

    Linux 2023年4月13日
    00
  • Linux stty命令

    Linux stty 命令的作用与使用方法 Linux stty 命令用于设置终端设备的相关参数。它可以帮助用户在 Linux 系统中对终端进行各种设置,以满足不同需求。 stty 命令使用方法 stty 命令基本语法如下: stty [选项] [参数] 下面是一些示例说明: 示例1:查看终端设备的参数 要查看终端设备的参数,可以使用以下命令: stty -…

    Linux 2023年5月10日
    00
  • JumpServer(v2.28.6) 堡垒机常见问题

    JumpServer 各组件查询日志方法 # 默认持久化目录 /data/jumpserver ls -al /data/jumpserver/core/logs ls -al /data/jumpserver/koko/data/logs ls -al /data/jumpserver/lion/data/logs ls -al /data/jumpser…

    Linux 2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部