日志文件错误排查

Posted 天纵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日志文件错误排查相关的知识,希望对你有一定的参考价值。

几种常用的日志查询操作:

  • 文件较小

    vim xxx.log

    直接检索即可

  • 文件较大
    我们就需要不打开文件,定位到其中的某个关键日志

    grep "ERROR" xxx.log 

    如果需要显示 关键日志 的上下文,如果知道大概行数可以使用,以下3种方法:

    • -A NUM,--after-context=NUM 显示匹配项之后多少行
    • -B NUM,--before-context=NUM 显示匹配项之前多少行
    • -C NUM,--context=NUM 显示匹配项上下文多少行

      # 例如
      grep -C 10 "ERROR" xxx.log

如果不知道上下文行树,需要定位到之后,跟踪检查后续日志,可以如下操作

# 先使用-n 参数显示行号
grep -n "ERROR" xxx.log

# 使用more 命令显示跳转到定位行, 比如第891行
more +891

# 之后可以enter换行,空格换页,或者 `/`来检索之后的日志,`n`下一个

小技巧:

  1. 压缩包
    一般来说,数据库都会使用压缩包来减少日志磁盘占用。
    可以使用 zcatzgrepzmore 等来替代
  2. 多个日志
    多个文件 可以使用 通配符来 处理文件名,例如:

    grep "ERROR" job.log.2021-05-18.*.gz
  3. 日志名排序
    有时候多个日志的时候,xxx.21.gz的日志会在xxx.2.gz前面。而我们更希望他们按照数字大小排序

    ls -v job.log.2021-05-18.*.gz|xargs zgrep "ERROR"

以上是关于日志文件错误排查的主要内容,如果未能解决你的问题,请参考以下文章

详解Linux中的日志及用日志来排查错误的方法

Linux系统运维故障排查思路

HDFS集群常见异常及排查步骤

weblogic日志异常排查[时区错误]

如何使错误日志更加方便地排查问题

Java服务问题快速排查指南