1. 概述
1.1 版本
运维平台版本 | 功能变更 |
---|---|
V1.5.5 | - |
V1.5.7 | 1)运维平台日志管理功能拆分优化 2)对于集群多节点工程,支持单次下载多节点日志文件 |
V1.8.0 | 分析日志中,分析记录列表新增展示「触发类型」 |
V1.12.0 | 1)支持手动上传本地性能堆栈,至运维平台进行分析 2)支持展示历史性能堆栈生成记录 3)性能堆栈使用顺序优化,变更为:分析>下载>生成 |
V1.14.0 | 运维平台监测宕机,自动触发生成日志条件优化 1)应用无响应触发时间由3分钟优化为2分钟 2)新增FullGC触发条件:5min内FullGC次数总和大于3次,且时间总和超过 50s |
V1.15.0 | 下载日志时,支持按需选择日志类型,无需全量下载,降低下载成本 |
V2.0.0 | 性能分析结果优化,新增「内存情况划分」 |
V2.1.0 | 1)在项目不可用情况下,仍支持生成、分析、下载性能堆栈 2)优化分析报告,拆分内存和CPU信息,优化GC状态展示 |
1.2 应用场景
当工程出现宕机或异常时:
1)在工程宕机时,管理员需要快速生成堆栈日志,以确保事后有办法复盘定位问题。
2)管理员需要对堆栈日志进行分析,追踪问题产生的根本原因,但日志分析对管理员的技术水平要求较高。
3)管理员需要将堆栈日志拿到本地自行分析,或提供给帆软技术支持人员,帮助确认工程存在的问题,但很多公司日志获取费时费力。
FineOps运维平台提供「性能堆栈」功能,支持对堆栈日志进行快速生成、智能分析、便捷下载。
1.3 日志简介
性能堆栈功能,支持对以下堆栈日志进行生成、分析和下载:
日志 | 说明 |
---|---|
fanruan.gc.log | 帆软宕机日志 |
thread.txt | 线程信息统计报告,该报告包含了所有线程的状态、堆栈跟踪信息等,可以帮助了解应用程序的线程使用情况,及时发现和解决线程问题。 |
histo.txt | 内存使用情况统计报告,该报告包含了对象的数量、大小、占用空间等信息,可以帮助了解应用程序的内存使用情况,及时发现和解决内存泄漏等问题。 |
hs_err.txt | Java在运行过程中遇到错误时自动生成的错误报告文件,包含了详细的错误信息、堆栈跟踪信息、线程信息等,可以帮助定位和解决代码问题。 |
top.txt | Linux 系统下的 top 命令的输出结果,用于显示当前系统中运行进程的相关信息,包括top-H.txt、top-sortedByCPU.txt、top-sortedByMEM.txt 1)top-H.txt:该文件是 top 命令输出结果中的 "H" 模式,用于显示线程信息,包括线程 ID、CPU 占用率、内存占用率等 2)top-sortedByCPU.txt:该文件是 top 命令输出结果按照 CPU 占用率从高到低排序的信息,包括进程 ID、CPU 占用率、内存占用率等 3)top-sortedByMEM.txt:该文件是 top 命令输出结果按照内存占用率从高到低排序的信息,包括进程 ID、CPU 占用率、内存占用率等 |
2. 分析日志
应用场景:
当工程宕机后,管理员需要对宕机日志进行分析,修复工程存在的问题,防止再次发生。
FineOps运维平台支持对jstack、histo、gc和top-H内容进行分析,帮助用户分析错误堆栈并给出相关改进意见。
2.1 自动分析运维项目
当满足 4.1 节自动生成日志后,FineOps会对每个节点自动生成的堆栈日志进行分析。
1)管理员登录运维平台,点击「项目管理」,选择指定运维项目。
2)进入「日志>性能堆栈」页面,在「分析」模块下可以查看到自动分析的结果:
2.2 手动分析运维项目
操作步骤:
1)管理员登录运维平台,点击「项目管理」,选择指定运维项目。进入「日志>性能堆栈」页面,
2)在「分析」模块下,点击「分析」按钮。触发该运维项目下每个节点生成堆栈日志。
3)FineOps会对每个节点生成的堆栈日志进行分析,分析结果生成在分析记录中。
注意事项:
每1分钟仅支持进行1次分析,以防频繁触发,导致系统性能差。若分析请求过于频繁,则提示「分析请求太频繁啦,请稍等一分钟后再重新尝试」。
2.3 手动上传日志分析
用户可手动上传本地堆栈日志到运维平台进行分析。
操作步骤:
1)准备本地堆栈日志包
仅支持.zip/.tar/.gz格式压缩包,请务必准备标准的jstack -l堆栈。
日志包大小不可超过 100M。
2)上传本地堆栈日志包
管理员登录运维平台,点击「项目管理」,选择运维项目,点击「日志>性能堆栈」。
在「分析」模块下,点击「上传性能堆栈分析」按钮,选择本地日志包,点击「打开」。
3)生成分析报告
FineOps将根据压缩包中jstack、histo、gc和top-H 生成分析报告,仅支持同时分析一个节点。
分析结果在新标签页打开,不记录在分析记录中。
2.4 查看分析记录
管理员登录运维平台,点击「项目管理」,选择运维项目,点击「日志>性能堆栈」。
在「分析>分析记录」模块下,以明细表形式显示该运维项目下所有手动/自动触发的堆栈分析结果(不包括手动上传的日志分析记录)。
1)分析记录以明细表形式展示,展示内容包括:项目名、节点名、触发类型、操作时间、操作者、操作IP、分析结果。
若手动触发,操作者和操作IP为空。
2)若运维项目为集群环境,每个节点都会生成一份分析结果。
3)日志分析历史记录最多只保留最近50条记录。支持选中单个分析记录删除,支持批量删除多个分析记录,支持清空全部历史记录。
4)点击分析记录中的「查看」按钮,即可在新标签页打开具体的分析结果。
点击对应分析结果后的「查看」按钮,即可查看本次分析的具体结果。
性能堆栈分析结果示例如下图所示,分为两个部分:内存状态详情、线程CPU状态详情。
内存状态详情:分为GC状态和内存状态
线程CPU状态详情:
3. 下载日志
应用场景:
当工程宕机后,管理员需要将宕机日志拿到本地自行分析,或提供给帆软技术支持人员,帮助确认工程存在的问题,防止再次发生。
操作步骤:
序号 | 操作步骤 | 注意事项 |
---|---|---|
1 | 管理员登录运维平台,点击「项目管理」,选择运维项目 点击「日志>性能堆栈」 | |
2 | 选择时间范围 | 可选范围:7天前~当前日期,所选时间跨度不可超过2天(48小时) 默认时间:2小时前~当前时间 |
3 | 选择服务类型 | 支持类型:fr、fdl、bi-web、bi-engine-master、bi-engine-worker、bi-engine-worker-monitor 可选范围:所选时间内存在的服务类型,默认全选 注意事项: 1)非容器化运维项目不支持选择服务类型 2)如不存在任一类型,则不出现该选项 |
4 | 选择节点 | 可选范围:所选运维项目中的所有节点,默认全选 |
5 | 选择需下载的日志 | 支持类型: 支持下载的日志,为第四章生成的日志,包括 fanruan.gc.log、thread.txt、histo.txt、hs_err.txt、top.txt 注意事项: 1)如不存在某种类型的日志,则不支持下载该类型日志 2)容器化部署的运维项目,如安装elasticsearch组件用于日志存储,则不支持该项,直接全量下载 |
6 | 点击「下载」,生成运维日志文件到本地电脑 | 1)若文件大小超过5G,则无法导出该日志,提示「以下日志大小超过上限(5GB),不支持下载:xxx」 2)若该类型日志文件不存在,则无法导出该日志,提示「以下日志不存在:xxx」 3)日志下载时,文件需要进行压缩,若等待时间过长,用户可点击「取消下载」按钮停止下载 4)下载的文件解压后,按照「节点-日期-服务类型-日志类型」结构存放 |
4. 生成日志
应用场景:
当工程宕机或出现异常时,堆栈日志可以帮助管理员快速定位问题所在的代码。
当工程出现性能问题(如响应时间过长或CPU占用过高)时,堆栈日志可以帮助管理员理解程序的执行路径,找到可能的性能瓶颈。
当工程出现问题时,histo日志可以帮助管理员追踪使用者历史输入的命令,保持运维人员对用户行为的监控,追踪问题产生的根本原因
运维平台支持手动/自动生成堆栈和histo日志。
4.1 自动触发
1)触发自动生成日志
以下情况,均会触发自动生成日志。
情况 | 说明 |
---|---|
宕机触发生成日志 | 当该运维项目出现以下情况时,自动触发生成日志 CPU占用超过80%(fr、fdl、bi-web、bi-worker):生成堆栈 发生超过30S的GC(fr、fdl、bi-web、bi-worker、bi-master):生成堆栈和histo 应用2分钟无响应(fr、fdl、bi-web、bi-worker、bi-master):生成堆栈和histo 线程池用量达到85%(fr、fdl、bi-web、bi-worker):生成堆栈 连续FullGC后依旧负载较高(连续5次FullGC且负载分大于100)(fr、fdl、bi-web、bi-worker、bi-master):生成堆栈和histo 5min内FullGC次数总和大于3次,且时间总和超过 50s(fr、fdl、bi-web、bi-worker、bi-master):生成堆栈和histo 用户可预设自动生成的日志类型 |
手动分析日志触发 | 管理员登录运维平台,点击「项目管理」,选择指定运维项目。 进入「日志>性能堆栈」页面,当手动点击「分析」按钮时,会先自动触发生成一份堆栈日志。 |
2)「自动生成」的日志
当满足上文条件后,自动触发该运维项目下每个节点生成堆栈日志。
根据项目部署方式和所选服务类型,日志生成在不同位置
部署方式 | 服务类型 | |
---|---|---|
运维平台部署的项目 | fr | 有问题组件所在服务器的项目挂载目录fanruanxxx/fr/tomcat_logs/FineLog/日期文件夹内 |
fdl | 有问题组件所在服务器的项目挂载目录fanruanxxx/fdl/tomcat_logs/FineLog/日期文件夹内 | |
bi6 | 有问题组件所在服务器的项目挂载目录fanruanxxx/bi6/tomcat_logs/FineLog/日期文件夹内 | |
bi-web | 有问题组件所在服务器的项目挂载目录fanruanxxx/bi-web/tomcat_logs/FineLog/日期文件夹内 | |
bi-engine-master | 有问题组件所在服务器的项目挂载目录fanruanxxx/bi-master/polars/logs/FineLog/日期文件夹内 | |
bi-engine-worker | 有问题组件所在服务器的项目挂载目录fanruanxxx/bi-engine-worker_x/polars/monitor/logs/FineLog/日期文件夹内 | |
bi-engine-worker-monitor | 有问题组件所在服务器的项目挂载目录fanruanxxx/bi-engine-worker_x/polars/monitor/logs/FineLog/日期文件夹内 | |
非运维平台部署的项目 | - | 当前运维项目有问题的节点所在服务器 %Tomcat%/logs/tomcat_logs/日期文件夹内 |
4.2 手动生成
1)管理员登录运维平台,点击「项目管理」,选择运维项目,点击「日志>性能堆栈」。
2)在「生成>手动生成」模块下,选择服务类型。
支持类型:BI、FR
可选范围:当前运维项目所有节点中存在的服务类型;非容器化运维项目不支持选择服务类型;如不存在任一类型,则不出现该选项。
3)点击「生成」,触发该运维项目下每个节点生成堆栈日志。
4)生成的文件位置为:
根据项目部署方式和所选服务类型,日志生成在不同位置
部署方式 | 服务类型 | |
---|---|---|
运维平台部署的项目 | fr | 有问题组件所在服务器的项目挂载目录fanruanxxx/fr/tomcat_logs/FineLog/日期文件夹内 |
fdl | 有问题组件所在服务器的项目挂载目录fanruanxxx/fdl/tomcat_logs/FineLog/日期文件夹内 | |
bi6 | 有问题组件所在服务器的项目挂载目录fanruanxxx/bi6/tomcat_logs/FineLog/日期文件夹内 | |
bi-web | 有问题组件所在服务器的项目挂载目录fanruanxxx/bi-web/tomcat_logs/FineLog/日期文件夹内 | |
bi-engine-master | 有问题组件所在服务器的项目挂载目录fanruanxxx/bi-master/polars/logs/FineLog/日期文件夹内 | |
bi-engine-worker | 有问题组件所在服务器的项目挂载目录fanruanxxx/bi-engine-worker_x/polars/monitor/logs/FineLog/日期文件夹内 | |
bi-engine-worker-monitor | 有问题组件所在服务器的项目挂载目录fanruanxxx/bi-engine-worker_x/polars/monitor/logs/FineLog/日期文件夹内 | |
非运维平台部署的项目 | - | 当前运维项目有问题的节点所在服务器 %Tomcat%/logs/tomcat_logs/日期文件夹内 |
注意事项:
每1分钟仅支持生成1次堆栈,以防频繁触发,导致系统性能差。
4.3 生成记录
在性能堆栈中,展示历史生成记录,包含所有自动/手动触发生成的情况。如下图所示:
以明细表形式展示:节点名、导出内容、导出开始时间、导出时长、触发类型、是否成功、失败原因。