【借力打力】记一次由于堆栈信息不详细的错误排查方法,利用访问日志进行定位问题

news2024/11/25 20:22:06

【借力打力】记一次由于堆栈信息不详细的错误排查方法,利用访问日志进行定位问题

  • 1,背景
  • 2,排查步骤
    • 2.1 调用方问题
    • 2.2 Nginx手段
    • 2.3 运维工具辅助
    • 2.4 嵌入tomcat日志记录
  • 3,结果

1,背景

异常信息每隔50分钟显示一次,如图所示。
在这里插入图片描述
在这里插入图片描述

能够看出是控制器上出现参数转换失效的问题,但是具体的是哪一个控制器在异常堆栈信息中也没有打印出来,这给问题定位带来了一定的难度

2,排查步骤

2.1 调用方问题

系统接收几个供应商的数据推送,推送失败的会进行数据补偿,首先想到是不是某个供应商推送数据失败,使用调度任务每隔50分钟进行请求,导致一致出现数据失败和请求。这种情况不好排查,但是还是咨询了其中一个,他的日志没有出现异常,但他提供了一个很好地思路,使用Nginx进行定位。

2.2 Nginx手段

通过Nginx的代理访问日志文件能够看到接口调用的详情,但是笔者的Nginx没有对特殊的后端接口进行代理,该方法本来是一种很好地方法,但是在这种情况下失效了。

2.3 运维工具辅助

想到运维人员记录了访问日志,反馈的结果就是没有在给定的时间范围内没有发现数据交互。排除了外来供应商调用接口的情况。

2.4 嵌入tomcat日志记录

既然通过Nginx的代理可以进行排查,于是想到了利用tomcat进行问题定位,举一反三,通过以下配置进行开启。

开启嵌入tomcat配置项为:

server:
  #开启tomcat日志记录功能
  tomcat:
    basedir: C:\zcadmin\zcAdmin-logs\tomcat
    background-processor-delay: 30
    port-header: X-Forwarded-Port
    protocol-header: X-Forwarded-Proto
    protocol-header-https-value: https
    redirect-context-root: true
    remote-ip-header: X-Forwarded-For
    uri-encoding: UTF-8
    accesslog:
      enabled: true
      buffered: true
      directory: .\log
      file-date-format: .yyyy-MM-dd
      pattern: '%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %D ms'
      prefix: access_log
      rename-on-rotate: false
      request-attributes-enabled: false
      rotate: true
      suffix: .log

打印的日志格式为:

127.0.0.1 - - [03/Nov/2023:15:05:06 +0800] "GET /api/big-screen/getLatestAssetAlertLog HTTP/1.1" 200 5532 "http://localhost:8013/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" 16 ms

3,结果

通过时间戳就可以锁定异常调用的接口。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1167486.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FFmpeg——使用Canvas录制视频尚存问题的解决方案

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

DELPHI安卓开发如何初始化frame 生成create方法

记住名字需要一样create 点击create这时按住ctrlshiftc 弹出以后就就完成frame的初始化create方法

Map和Set(JAVA)

本篇文章建议在了解了哈希表和二叉搜索树后食用更佳。 链接: 二叉搜索树 和 哈希表 (JAVA) Map和Set都是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。 Map接口 Map是一个接口,不能直接实例化对象,如果…

kibana显示时间数据时的时区问题及时间显示格式设置

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

电源纹波示波器测试方法:示波器纹波测试步骤详解

示波器测试电源纹波的步骤 一、准备测试设备 测试之前选择一台示波器和合适的电压探头。探头有无源探头和有源探头两种,综合来讲一般选择衰减比例1:1的无源探头测量输出阻抗及频率较低的电源纹波。 二、连接电源 连接示波器探头和电源输出端,确保连接完好…

Kafka反序列化RCE漏洞(CVE-2023-34040)

漏洞描述 Spring Kafka 是 Spring Framework 生态系统中的一个模块,用于简化在 Spring 应用程序中集成 Apache Kafka 的过程,记录 (record) 指 Kafka 消息中的一条记录。 受影响版本中默认未对记录配置 ErrorHandlingDeserializer,当用户将…

PSP - 蛋白质-核酸复合物结构预测 RoseTTAFoldNA 算法框架 (Protein-RNA、Protein-DNA、RNA)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/134208615 Paper: Accurate prediction of nucleic acid and protein-nucleic acid complexes using RoseTTAFoldNA GitHub: RoseTTAFold2NA 蛋白…

分享99个工作总结PPT,总有一款适合您

分享99个工作总结PPT,总有一款适合您 PPT下载链接:https://pan.baidu.com/s/1ETaGRUsTRRQq3i5PJUX7tA?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 黑金商务路演工作汇报PPT模板 古韵中国风财务计…

JavaSE java对象的比较

目录 1 问题提出2 元素的比较2.1 基本类型的比较2.2 对象的比较 3 对象的比较3.1 覆写基类的equal3.2 基于Comparble接口类的比较3.3 基于比较器比较3.4 三种方式对比 4 集合框架中PriorityQueue的比较方式5 总结 1 问题提出 上节课我们讲了优先级队列,优先级队列在…

汇编-字符串

字符串常量是用单引号或双引号括起来的一个字符序列 当以下面例子中的方式使用时,嵌入引号也是允许的: 正如字符常量以整数形式存放一样,字符串常量在内存中的存储形式为整数字节值的序列。例如, 字符串字面量“ABCD”包含四个字…

SPSS单样本K-S检验

前言: 本专栏参考教材为《SPSS22.0从入门到精通》,由于软件版本原因,部分内容有所改变,为适应软件版本的变化,特此创作此专栏便于大家学习。本专栏使用软件为:SPSS25.0 本专栏所有的数据文件请点击此链接下…

第25期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练 Transformer(GPT)、人工智能生成内容(AIGC)以及大型语言模型(LLM)等安全领域应用的知识。在这里,您可以…

GEE:GEE中实现简单计算器

作者:CSDN _养乐多_ 本文记录了在 Google Earth Engine(GEE)上实现简单计算器的代码。 APP链接:https://949384116.users.earthengine.app/view/simplecalculator 文章目录 一、完整代码二、代码链接 一、完整代码 // 定义初始…

二十、泛型(1)

本章概要 基本概念 与 C 的比较 简单泛型 一个元组类库一个堆栈类RandomList 基本概念 普通的类和方法只能使用特定的类型:基本数据类型或类类型。如果编写的代码需要应用于多种类型,这种严苛的限制对代码的束缚就会很大。 多态是一种面向对象思想的泛…

预制构建生产管理系统

在建筑施工领域,预制构件的使用越来越广泛,它能够提高工程质量和施工效率,减少施工现场对环境的影响。通过凡尔码的二维码管理平台,系统从:生产过程、生产数据、生产计划、生产管理、成品交付等多个环节、工序和流程进…

mermaid学习第一天/更改主题颜色和边框颜色/《需求解释流程图》

mermaid 在线官网: https://mermaid-js.github.io/ 在线学习文件: https://mermaid.js.org/syntax/quadrantChart.html 1、今天主要是想做需求解释的流程图,又不想自己画,就用了,框框不能直接进行全局配置&#xff0…

如何助力机构单位提升运营效率?有什么靠谱的大数据管理平台?

随着数字化时代的到来,大数据管理平台已成为机构单位提高效率、优化资源配置的关键工具。其中,工单管理系统作为大数据管理平台的重要组成部分,对于机构单位运营的优化和提升具有举足轻重的地位。本文小编将为您介绍一款优秀的工单管理系统—…

Zygote进程通信为什么用Socket而不是Binder?

Zygote进程是Android系统中的一个特殊进程,它在系统启动时被创建,并负责孵化其他应用进程。它的主要作用是预加载和共享应用进程的资源,以提高应用启动的速度。 在Android系统中,常用的进程通信方式有以下几种: Intent…

概率论和数理统计(一)基本概念

前言 生活中对于事件的发生,可以概括为 确定现象:在一定条件下必然发生,如日出随机现象:在个别试验中其结果呈现出不确定性,在大量重复试验中其结果又具有统计规律的现象,称之为随机现象。 随机现象的特点&#xff…

独家分享 | BI零售数据分析模板,可视化,更易懂

“人、货、场”是零售数据分析的三大关键,只要能又快又透彻地掌握这三大关键的数据情况,即可为零售运营决策提供关键的数据支持,提高盈利、降低成本、优化采购库存结构等。奥威BI软件这套BI零售数据分析模板套装围绕“人、货、场”预设了数十…