1. 概述编辑
1.1 版本
| 运维平台版本 | 功能变更 |
|---|---|
| V1.5.5 | - |
| V1.5.7 | 1)运维平台日志管理功能拆分优化 2)对于集群多节点工程,支持单次下载多节点日志文件 |
| V1.8.0 | 分析日志中,分析记录列表新增展示「触发类型」 |
| V1.12.0 | 1)支持手动上传本地性能堆栈,至运维平台进行分析 2)支持展示历史性能堆栈生成记录 3)性能堆栈使用顺序优化,变更为:分析>下载>生成 |
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会对每个节点自动生成的堆栈日志进行分析,自动分析结果生成在分析记录中。

2.2 手动分析运维项目
操作步骤:
1)管理员登录运维平台,点击「日志管理>性能堆栈」。选择需要分析日志的「运维项目」。
2)在「分析」模块下,点击「分析」按钮。触发该运维项目下每个节点生成堆栈日志。
3)FineOps会对每个节点生成的堆栈日志进行分析,分析结果生成在分析记录中。
注意事项:
每1分钟仅支持进行1次分析,以防频繁触发,导致系统性能差。若分析请求过于频繁,则提示「分析请求太频繁啦,请稍等一分钟后再重新尝试」。

2.3 手动上传日志分析
用户可手动上传本地堆栈日志到运维平台进行分析。
操作步骤:
1)准备本地堆栈日志包
仅支持.zip/.tar/.gz格式压缩包,将根据压缩包中jstack、histo、gc和top-H 生成分析报告,仅支持同时分析一个节点。
2)上传本地堆栈日志包
管理员登录运维平台,点击「日志管理>性能堆栈」。
在「分析」模块下,点击「上传性能堆栈分析」按钮,选择本地日志包,点击「打开」。
3)生成分析报告
FineOps将根据压缩包中jstack、histo、gc和top-H 生成分析报告,仅支持同时分析一个节点。
分析结果在新标签页打开,不记录在分析记录中。

2.4 查看分析记录
管理员登录运维平台,点击「日志管理>性能堆栈」。选择「运维项目」。
在「分析>分析记录」模块下,以明细表形式显示该运维项目下所有手动/自动触发的堆栈分析结果(不包括手动上传的日志分析记录)。
1)分析记录以明细表形式展示,展示内容包括:项目名、节点名、触发类型、操作时间、操作者、操作IP、分析结果。
若手动触发,操作者和操作IP为空。
2)若运维项目为集群环境,每个节点都会生成一份分析结果。
3)日志分析历史记录最多只保留最近50条记录。支持选中单个分析记录删除,支持批量删除多个分析记录,支持清空全部历史记录。
4)点击分析记录中的「查看」按钮,即可在新标签页打开具体的分析结果。

点击对应分析结果后的「查看」按钮,即可查看本次分析的具体结果。
性能堆栈分析结果示例如下图所示,包括分析建议、内存状态和明细、GC状态和耗时。

3. 下载日志编辑
应用场景:
当工程宕机后,管理员需要将宕机日志拿到本地自行分析,或提供给帆软技术支持人员,帮助确认工程存在的问题,防止再次发生。
操作步骤:
1)管理员登录运维平台,点击「日志管理>性能堆栈」。选择需要下载日志的「运维项目」。
2)选择时间范围。
可选范围:7天前~当前日期,所选时间跨度不可超过2天(48小时)。
默认时间:2小时前~当前时间。
3)选择服务类型。
支持类型:BI、FR
可选范围:所选时间内存在的服务类型;非容器化运维项目不支持选择服务类型;如不存在任一类型,则不出现该选项。
4)选择节点。
支持且默认选中全部节点。
5)点击「下载」,生成堆栈日志文件到本地电脑。
若文件大小超过5G,仅导出5G数据,提示「当前数据量超过导出上限,将按照数据量上限导出。」
日志下载时,文件需要进行压缩,若等待时间过长,用户可点击「取消下载」按钮停止下载。
下载的文件解压后,按照「节点-日期-服务类型-日志类型」结构存放

4. 生成日志编辑
应用场景:
当工程宕机或出现异常时,堆栈日志可以帮助管理员快速定位问题所在的代码。
当工程出现性能问题(如响应时间过长或CPU占用过高)时,堆栈日志可以帮助管理员理解程序的执行路径,找到可能的性能瓶颈。
当工程出现问题时,histo日志可以帮助管理员追踪使用者历史输入的命令,保持运维人员对用户行为的监控,追踪问题产生的根本原因
运维平台支持手动/自动生成堆栈和histo日志。
4.1 自动生成
1)触发自动生成日志
以下三种情况,均会触发自动生成日志。
| 情况 | 说明 |
|---|---|
| 运维平台监测宕机触发 | 1)开启「宕机自动处理」 管理员登录运维平台,点击「业务工具>宕机自动处理>宕机处理策略」。 选择需要生成日志的「运维项目」,开启「宕机自动处理」,点击「保存」。
2)配置「自动生成」内容 管理员登录运维平台,点击「日志管理>性能堆栈」。选择需要生成日志的「运维项目」。 在「生成>自动生成」模块下: 支持选择生成类型:包括堆栈、histo,默认全选 支持选择服务类型:包括BI、FR、FDL,默认全选(非容器化运维项目不支持选择服务类型;如不存在任一类型,则不出现该选项)
3)当该运维项目出现以下情况时,自动触发生成日志 CPU占用超过80% 发生超过30S的GC 应用3分钟无响应 线程池用量达到95% 连续FullGC后依旧负载较高(连续5次FullGC且负载分大于100) |
| 项目自身监测宕机触发 | 1)开启「宕机自动处理」 管理员登录运维项目工程,点击「管理系统>智能运维>宕机处理>宕机自动处理工具」。 开启「宕机自动处理」。开启「自动导出内存堆栈」,选择生成类型:包括堆栈、histo、dump。 点击「保存」。
2)当该运维项目出现以下情况时,自动触发生成日志 CPU占用超过80% 发生超过30S的GC 应用3分钟无响应 线程池用量达到95% 连续FullGC后依旧负载较高(连续5次FullGC且负载分大于100) |
| 手动分析日志触发 | 管理员登录运维平台,点击「日志管理>性能堆栈」。选择需要生成日志的「运维项目」。 当手动点击「日志分析>分析」按钮时,会先自动触发生成一份堆栈日志。
|
2)「自动生成」的日志
当满足上文条件后,自动触发该运维项目下每个节点生成堆栈日志。
生成的文件位置为:
容器化项目:项目每个工程节点挂载目录的logs\FineLog\日期文件夹内。
非容器化项目:项目每个节点所在服务器下%Tomcat%\logs\FineLog\日期文件夹内。
4.2 手动生成
使用前提:
如需生成堆栈日志,必须先开启「宕机自动处理」功能。否则提示「功能尚未启动,如需启动请前往业务工具>宕机自动处理>宕机处理策略,开启【宕机自动处理】开关」。
管理员登录运维平台,点击「业务工具>宕机自动处理>宕机处理策略」,选择需要生成日志的「运维项目」,开启「宕机自动处理」开关,点击「保存」即可。

操作步骤:
1)管理员登录运维平台,点击「日志管理>性能堆栈」。选择需要生成日志的「运维项目」。
2)在「生成>手动生成」模块下,选择服务类型。
支持类型:BI、FR
可选范围:当前运维项目所有节点中存在的服务类型;非容器化运维项目不支持选择服务类型;如不存在任一类型,则不出现该选项。
3)点击「生成」,触发该运维项目下每个节点生成堆栈日志。
4)生成的文件位置为:
容器化项目:项目每个工程节点挂载目录的logs\FineLog\日期文件夹内。
非容器化项目:项目每个节点所在服务器下%Tomcat%\logs\FineLog\日期文件夹内。
注意事项:
每1分钟仅支持生成1次堆栈,以防频繁触发,导致系统性能差。

4.3 生成记录
在性能堆栈中,展示历史生成记录,包含所有自动/手动触发生成的情况。如下图所示:
以明细表形式展示:节点名、导出内容、导出开始时间、导出时长、触发类型、是否成功、失败原因。






