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日

相关文章

  • CentOS 7.4下安装Oracle 11.2.0.4数据库的方法

    CentOS 7.4下安装Oracle 11.2.0.4数据库 1. 安装依赖环境 Oracle 11.2.0.4 需要一些依赖包,执行以下命令,安装所需的依赖环境: yum install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio…

    Linux 2023年5月14日
    00
  • [Linux] centos6.5升级安装的supervisor

    因为我要用它来管理多个PHP进程去执行任务,在默认版本下的配置多个子进程不起作用 默认版本的supervisor版本比较低2.1.9,对于运行多个子进程貌似有问题,最新版的supervisor4.1的又因为需要高版本的python才行,所以才有了下面的解决办法 先安装pipyum install python-pip再用pip安装3.1版本的supervis…

    Linux 2023年4月13日
    00
  • [Linux] 安装grafana并且添加influxdb监控

    安装grafana,官网提供了ubuntu的安装包,直接进行安装 wget https://dl.grafana.com/oss/release/grafana_6.5.1_amd64.deb dpkg -i grafana_6.5.1_amd64.deb update-rc.d grafana-server defaults 95 10service gr…

    Linux 2023年4月13日
    00
  • 常用Linux发行版镜像源配置小结

    下面我就来详细讲解一下“常用Linux发行版镜像源配置小结”的完整攻略吧。 概述 在安装Linux发行版时,我们需要通过网络下载相应的镜像文件,而国外的镜像源访问速度较慢。因此,我们需要配置国内的镜像源,以提高安装速度。本文将讲解如何配置常用Linux发行版的镜像源。 Ubuntu 在Ubuntu中配置镜像源非常容易,进入终端,输入以下命令即可: sudo …

    Linux 2023年5月14日
    00
  • linux 中的单引号 和双引号有什么区别吗

    单引号与双引号的最大不同在于双引号仍然可以保有变量的内容,但单引号内仅能是一般字符 ,而不会有特殊符号。我们以底下的例子做说明:假设您定义了一个变量, name=VBird ,现在想以 name 这个变量的内容定义出 myname 显示 VBird its me 这个内容,要如何订定呢? [root@linux ~]# name=VBird [root@li…

    Linux 2023年4月16日
    00
  • Linux归档压缩、分区管理与LVM管理

    归档和压缩命令: 命令格式: gzip [-9] 文件名 bzip2 [-9] 文件名 gzip –d .gz格式的压缩文件 bzip2 –d .bz2格式的压缩文件 选项: -9:高压缩比,多用于压缩时用; -d:解压文件 -v:显示压缩过程 -l:显示某个压缩文件的内部信息-c   提示:想查看压缩文件内的内容,可以使用zcat命令。bz2压缩的则用bz…

    Linux 2023年4月11日
    00
  • Linux下Docker及portainer相关配置方法

    Linux下Docker及Portainer相关配置方法 本文将介绍在Linux系统下如何安装、配置Docker及Portainer,并提供两个示例,帮助读者快速掌握相关知识。 安装Docker 在Linux系统下,可以使用apt-get工具进行Docker的安装,具体步骤如下: sudo apt-get update sudo apt-get instal…

    Linux 2023年5月14日
    00
  • Centos7安装PHP及Nginx的教程详解

    针对CentOS7安装PHP及Nginx的教程,可以按照以下步骤进行操作: 安装Nginx 更新系统软件包 yum update 安装EPEL源 yum install epel-release 安装Nginx yum install nginx 启动Nginx服务,并设置开机启动 systemctl start nginx systemctl enable…

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