银行应用系统日志规范

Posted 孙叫兽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了银行应用系统日志规范相关的知识,希望对你有一定的参考价值。

1  应用日志

应用日志是指用于记录应用系统交易处理过程业务报文与程序处理状态的信息,其可以记录在文件中,也可以记录在数据库中,用于对业务处理结果查询、交易问题分析、系统问题分析等。应用日志包括服务端和客户端记录的日志。

2   交易渠道

交易渠道是指直接面向银行客户,主动发起交易的我行联机交易系统,如网上银行、手机银行、柜面等系统。

3  第三方系统

第三方系统是指与我行应用系统进行通讯的行外应用系统,如人行、银联、财税等机构所属的系统。一般地,我行通过专门的前置类系统与第三方系统进行连接。

4 进程或线程ID

进程或线程ID(名)是指应用程序运行时的进程或线程的唯一标识。

5 请求交易代码

请求交易代码是指与上一级节点(请求节点)约定的通讯交易码。

6 本地交易代码

本地交易代码是指本应用系统内处理交易的内部交易代码。

7时间戳

时间戳是指该条日志输出时的系统时间,格式为“yyyy-mm-dd hh-MM-ss”(可根据实际情况到毫秒级)

8 敏感信息

敏感信息,是指一旦泄露、非法提供或滥用可能危害人身、财产、系统安全的信息。按照敏感信息对信息主体资金安全的影响程度,分为关键敏感信息、重要敏感信息和一般敏感信息。

9 日志分类

日志按照输出分为三类,分别为错误信息日志、正常信息日志和通讯级报文日志。

正常日志信息记录包含打开的所有级别日志,错误信息日志记录ERROR和FATAL级别的日志。

通讯级报文日志记录应用系统接收和发送给其他系统的报文信息。

10  日志分级

正常和错误类日志文件中每一条记录要指定一个等级,等级从低到高分为5级:DEBUG、INFO、WARN、ERROR、FATAL。日志级别越低,输出日志信息越详细。

DEBUG级:细粒度的、对排错有帮助的信息、事件。

INFO级:在正常运行状态中,粗粒度的、关于重要流程或事件的、可用来表示系统正常运行的信息或事件。

WARN级:有潜在风险的、不会造成大危害的错误(往往由应用外部因素造成,如不正确的输入数据)。

ERROR级:应用发生错误(往往应用系统发生异常),但后续流程还能够继续进行。

FATAL级:应用发生严重错误,应用服务被终止。

    11  日志文件命名规范

错误信息日志文件名为:<appName>_<yyyymmdd>_[nnnnn].err。

正常信息日志文件名为:<appName>_<yyyymmdd>_[nnnnn].out。

通讯级报文日志文件名为:<appName>_<yyyymmdd>_[nnnnn].log。

日志文件名中appName是各应用系统或平台中的应用模块的英文缩写。对于按日期循环创建的日志文件,在文件名前缀后面追加系统日期,格式为“_yyyymmdd”,对于按文件大小循环创建的日志文件,在文件名前缀后面追加循环版本序号,格式为“_nnnnn”。例如:正常日志:BANCS_20110408_00001.out;错误日志:BANCS_20110408_00001.err;通讯级报文日志:BANCS_20110408_00001.log。

应用系统根据自身系统需要,日期“_yyyymmdd”格式,可以再细化为时间戳“_yyyyMMddHHmmss”格式。

    12 存储目录命名规范

日志文件存储在独立的目录或文件系统中,对于独立部署的应用系统使用“<appName>/logs/”目录结构,其中通讯级报文日志存放于“<appName>/logs/comm/”;对于基于平台部署多套应用系统的场景使用“logs/<appName>”目录结构,其中通讯级报文日志存放于“logs/<appName>/comm/”。

日志文件存储目录可参数化配置。

13  正常日志和错误日志

正常日志和错误日志的记录格式为:[日志等级][进程或线程ID(名)][程序名][程序行号][请求交易代码][本地交易代码][时间戳][消息文本][自定义1][….][自定义n][换行]。其中消息文本使用“属性名称=属性值”的格式记录以确保消息内容是可读的,不同项之间以竖线(|)分隔;各应用系统可自定义消息文本内容,包括但不限于如下内容:交易渠道、及每笔交易的键值(唯一索引)。自定义字段由各应用系统根据实际需要单独定义。

时间戳应打印到毫秒级别。

14  通讯级报文日志

通讯级报文日志的记录格式:[进程或线程ID(名)][程序名][报文类型][对方节点标识][时间戳][报文][换行]。根据报文方向,报文类型分为“SND”和“RCV”两种,分别代表向其他系统发送的报文和接收来自其他系统的报文。

通讯级报文日志中个人敏感信息应采取必要的保护措施。

15   关键敏感信息记录要求

应用日志中不得存储关键敏感信息。

16   重要敏感信息和一般敏感信息记录要求

对于除银行卡卡号(或银行账号)之外的重要敏感信息,在日志中存储时至少要进行部分内容屏蔽(推荐不打印或全部用“*”号代替),不能全部明文显示。银行卡卡号(或银行账号)字段作为交易查询与分析时经常用到的字段,如果“客户名称、客户姓名、个人姓名、账户名称、证件号码”字段脱敏后,银行卡卡号(或银行账号)字段可以不单独做脱敏处理。

17  错误信息日志

应用日志必须记录所有错误(交易错误和系统错误)。

记录错误日志时,内容要完整准确,错误定位要准确,原则上应包括产生错误的根本原因(如磁盘读写错、内存分配错等)。

18  通讯级报文日志

与第三方系统进行对接的应用系统(前置系统、网关系统等),应记录通讯级报文日志,以确保后续可以进行交易追踪。

    19 日志级别记录要求

生产环境原则上不允许记录DEBUG级别的日志;如因解决生产问题需要,可临时性打开DEBUG级别日志,问题解决后需关闭DEBUG级别日志。

对于提供7×24小时联机交易服务的重要信息系统,应用系统日志输出可以按照日志级别配置参数进行动态调整,不允许中断服务影响系统连续性运行。

20 日志文件大小要求

单个应用日志文件的大小要考虑操作系统对文件的处理能力和信息查找的便捷性。

21   日志文件字符要求

应用日志中的中文字符,以中文编码输出,不允许出现乱码。

22  日志文件备份和清理要求

应用系统应根据相关制度并结合自身系统维护需要设定日志的备份策略和自动清理策略,确保生产环境应用系统的文件系统使用率在预警阈值之内,避免因数量增长超过阈值,产生临时维护性变更。

23  历史日志文件保存要求

历史日志(当日之外的日志)的存放应与应用服务器分离,有单独的日志服务器或其他存放位置,减少查看历史日志文件需要登录后台系统的情况。

24   日志记录效率要求

对于实时联机交易类的应用系统,有大日志量记录需求的交易,其日志的记录应不影响联机交易的执行速度,应采用异步方式记录日志,降低应用与日志记录的耦合性,减少IO交互次数,规避磁盘处理瓶颈。

日志文件所在目录在文件系统上部署应与程序目录、业务数据文件目录、GTP传输目录等其他目录分散部署,避免产生磁盘热点。

25  其他日志记录要求

应用日志内容不允许输出到系统软件(操作系统和中间件)日志中。

对于采用集群或负载均衡方式部署的应用系统,集中记录日志并应包含集群节点信息;如分布记录日志,则必须提供日志查询和检索工具,便于快速定位日志。

系统重启时禁止覆盖原有日志。

行内系统间的交易须在收到请求报文和发送响应报文后立即记录日志,后续处理不影响接收和发送过程日志。

应用日志应为维护人员快速定位问题和进行监控分析提供帮助为主,避免打印无意义的内容。

以上是关于银行应用系统日志规范的主要内容,如果未能解决你的问题,请参考以下文章

银行基本业务知识

人工智能岗位替代——银行柜台前台

知行合一·求是建设太白测试工具,助力柜面生产安全

影像管理平台:业界少数建在分布式架构上的非结构化数据实时服务平台

银行卡基础知识 - I类-II类-III类账户

信用卡术语