找回密码
 立即注册

QQ登录

只需一步,快速开始

Simon.Sun 活字格认证 Wyn认证
超级版主   /  发表于:2022-9-7 08:47  /   查看:2928  /  回复:0
本帖最后由 Joe.xu 于 2022-9-8 08:51 编辑

一、总览
上篇介绍到活字格 8.0 update1 服务端日志增强,这里将继续对日志模块进行介绍。
服务器的日志以日志模块为粒度分条记录,日志模块目前有:异常日志HTTP 请求日志HTTP 响应日志登录日志登出日志审计日志SQL 执行日志计划任务执行日志服务端命令执行日志忘记密码操作日志发送邮件日志结果日志
其中审计日志SQL 执行日志计划任务执行日志服务端命令执行日志者四个日志模块仅支持活字格应用,活字格管理控制台则没有这四个模块的配置。
日志模块有以下特征:
  • 不同的日志信息类型在不同的日志模块;
  • 每个日志模块的类型具有自己的属性;
  • 用户可以通过更改日志配置来启用/禁用日志特定的日志类型(模块);
  • 用户也可以启用/禁用模块类型的特定属性;
  • 大多数模块都有一个名为 RequestId 的属性。具有相同请求 ID 日志记录意味着来自同一个请求操作,用户可以通过 RequestId 来检查和某次请求相关的日志项。

二、日志模块
2.1. 异常日志
当应用运行时抛出一个异常时,异常日志将被记录。
通过异常日志,用户可以检查应用程序内发生了什么错误。通过异常详细信息,用户可以知道异常发生时的调用堆栈。如果在短时间内出现了很多异常,用户应该修改应用程序来改进它。
异常模块日志有下面这些属性:
  • 请求路径:如果日志是在 HTTP 请求中生成的,则此属性将包含 HTTP 请求路径,否则为空;
  • 用户名:如果登录的用户造成了这个异常,这里将记录造成异常的用户名称;
  • 查询参数:如果日志是在 HTTP 请求中生成的,则此属性将包含 HTTP 查询参数,否则为空;
  • 请求数据:如果日志是在 HTTP 请求中生成的,则此属性将包含 HTTP 请求数据,否则为空;
  • 异常调用堆栈:异常产生的详细调用堆栈信息

异常日志的日志级别为:Error。支持活字格应用和管理控制台。
2.2. HTTP 请求日志
HTTP 请求日志用来,记录 HTTP 请求相关信息。
HTTP 请求日志很有用,有助于调试 Web 应用程序,检查 HTTP 流量,检查在 Web 应用程序中发生了什么,检测黑客攻击等。
比如:
  1. {"@timestamp":"2022-09-06T00:41:20.7861369Z","@m":"@I","LogType":"HttpRequestLog","RequestId":"693acefb-ea56-4bef-9c51-cacde390187f","Method":"GET","IP":"172.31.128.1","QueryString":"?pageName=90AC3BB5-87DF-4E25-B6C3-A78CC93DF159&isMobile=false&v2=-1941661952-1941661952-1941661952-1941661952-1912358038","Path":"/Home/GetMetadata2"}
复制代码
HTTP 请求日志有下面这些属性:
  • 请求路径:HTTP 请路径,为了减少日志的提交,默认会排除下面这些路径下的请求日志;
    /GeneratedResources/
    /Resources/
    /Refresh/B0DA262E-08A7-48FE-B478-BDE2B817B902
    /ManagementPage/GetLogContent,/ForguncyHub/SR
  • 参数:HTTP 请求参数;
  • IP 地址:客户端的 IP 地址;
  • 请求方法:HTTP 请求方法,如 GET、POST;
  • 主机:默认不开启;
  • 是否为 HTTPS:默认不开启;
  • Cookie:默认不开启;
  • Referer:默认不开启;
  • 请求头:默认不开启;
  • UserAgent:默认不开启。

日志级别:Information,支持活字格应用和管理控制台。
2.3. HTTP 响应日志
当一个 HTTP 请求完成并且服务端给客户端发送响应时,响应日志将被记录。通过 RequestId 找到对应的 HTTP 请求日志,这样用户可以查看一次完整 HTTP 请求和响应的执行情况。
比如:
  1. {"@timestamp":"2022-09-06T00:41:20.8473128Z","@m":"@I","LogType":"HttpResponseLog","RequestId":"693acefb-ea56-4bef-9c51-cacde390187f","Duration":61.144,"StateCode":200,"Path":"/Home/GetMetadata2"}
复制代码
HTTP 请求日志有下面这些属性:
  • 请求路径:HTTP 请路径,为了减少日志的提交,默认会排除下面这些路径下的请求日志:
    /GeneratedResources/
    /Resources/
    /Refresh/B0DA262E-08A7-48FE-B478-BDE2B817B902
    /ManagementPage/GetLogContent,/ForguncyHub/SR
  • 返回码:HTTP 状态码;
  • 用时(毫秒):一个请求持续的时间,单位毫秒;
  • 用户名:发起请求的用户名;
  • 内容长度:响应内容的长度;
  • 内容类型:响应内容的媒体类型;
  • 响应头:响应头。

日志级别:如果返回的状态码小于 400 则为  Information,否则为 Error。支持活字格应用和管理控制台。
2.4. 登录日志
任何登录行为都会记录日志,不管登录成功与否。登录行为包括表单身份验证登录、 单点登录、 OAuth 安全提供程序登录、 SAML 安全提供程序登录。
通过登录日志可以检测未经授权的登录,登录日志的记录可以满足企业记录登录和登出审计日志的要求。
比如:
  1. {"@timestamp":"2022-09-06T00:41:28.0693050Z","@m":"@I","LogType":"LoginLog","RequestId":"a006fab8-0668-4adc-a657-d01dcf5b476e","Success":true,"UserName":"Administrator"}
复制代码
登录日志有下面这些属性:
  • 用户名:登录用户名称;
  • 是否成功:是否登录成功;
  • 失败信息:如果登录失败,将会记录一些登录信息,比如“用户名或密码错误”,“没有足够的权限”等;
  • 成功信息:如果登录成功,将会记录登录方式,比如“单点登录”,“OAuth 登录”,“SAML 登录”。

日志级别:如果登录成功为 Information,否则为 Error。支持活字格应用和管理控制台。
2.5. 登出日志
当用户登出应用时,将会记录登出日志。登出日志的记录可以企业满足记录登录和登出审计日志的要求。
比如:
  1. {"@timestamp":"2022-09-06T00:53:10.8474013Z","@m":"@I","LogType":"LogoutLog","RequestId":"1023ad72-da98-4814-87bb-e44cf20e562e","Success":true,"UserName":"Administrator"}
复制代码
登出日志有下面这些属性:
  • 用户名:执行登出操作的用户名;
  • 成功信息:注销时,有时会包含成功消息来指示特殊的注销原因,如“没有足够的并发许可证”、“会话 ID 无效或过期”。

日志级别:Information。支持活字格应用和管理控制台。
2.6. SQL 执行日志
任何被数据库执行的 SQL 会被记录,通过 SQL 日志用户可以方便的查看前端一些页面逻辑在服务端执行的一些 SQL。
通过查看 SQL 执行日志可以:
  • 检查实际执行的 SQL 语句以进行调试;
  • 检查实际执行的 SQL 语句,可以针对执行慢的 SQL 进行优化以提高性能所需的时间;
  • 检查异常调用状态以检测错误。

比如:
  1. {"@timestamp":"2022-09-06T00:41:30.2144672Z","@m":"@I","LogType":"ExecuteSqlLog","RequestId":"0fefe408-5856-481f-998a-4b294f5fbca5","Duration":4.6476,"Sql":"select a.[表名] as C0,a.[操作] as C1,a.[主键] as C2,a.[内容] as C3,a.[操作时间] as C4,a.[FGC_Rowversion] as C5,a.[ID] as C6 from [main].[数据表操作日志] as a ORDER BY a.[ID] ASC"}
复制代码
SQL 日志有下面属性:
  • SQL:执行的 SQL 语句;
  • 参数列表:执行 SQL 的参数列表;
  • 执行实现:SQL 执行的时间;
  • 异常:SQL 执行异常信息。

日志级别:如果有错误发生就是 Error、否则为 Information。仅支持活字格应用。
2.7. 审计日志
审计日志用来任何通过命令执行的数据库操作,比如:
  1. {"@timestamp":"2022-09-06T00:41:30.2384063Z","@m":"@I","LogType":"AuditingLog","RequestId":"0fefe408-5856-481f-998a-4b294f5fbca5","Statement":"SELECT [表名], [操作], [主键], [内容], [操作时间], [并发控制列] FROM [数据表操作日志]","Success":true,"AuditingType":"查询","IPAddress":"172.31.128.1","UserAccountName":"Administrator","ObjectName":"数据表操作日志","ConnectionStr":"(无)","TableType":"活字格表","DateTime":"2022-09-06T08:41:30.2023498+08:00"}
复制代码
审计日志有下面属性:
  • 时间:开始审计时间;
  • 表类型:活字格表或外联表;
  • 连接串:数据库连接字符串;
  • 对象名称:表格或视图的名称;
  • 用户名:发起操作的用户名;
  • IP 地址:客户端的 IP 地址;
  • 审计类型:对数据的操作,查询、新增、更新、删除;
  • 是否成功:是否执行成功;
  • 执行语句:执行的 SQL 语句。

日志级别:如果有错误发生就是 Error、否则为 Information。仅支持活字格应用。
2.8. 计划任务执行日志
当一个计划任务命令被执行时,日记将会被记录。
计划任务执行日志可以帮助用户检查计划任务的执行情况。
比如:
  1. {"@timestamp":"2022-09-06T01:21:42.9228809Z","@m":"@I","LogType":"TaskScheduleCommandLog","Log":"09:21 执行'删除日志'命令, 触发方式:间隔时间触发\r\n错误码: 0\r\n'删除日志'命令执行结束, 用时:23毫秒。\r\n","ErrCode":0,"StartTime":"2022-09-06T09:21:42.9001901+08:00","CommandName":"删除日志"}
复制代码
计划任务执行日志包含的属性如下:
  • 命令名称:计划任务命令名称;
  • 开始执行时间:计划任务开始执行时间;
  • 文件夹名:设计器中计划任务命令放置的文件夹名;
  • 返回码:计划任务执行返回码;
  • 返回信息:计划任务名字执行返回的结果;
  • 执行日志:计划任务命令执行的时间。

日志级别:如果错误码为 0 为 Information,否则为 Error。仅支持活字格应用。
2.9. 服务端命令执行日志
当服务端命令被执行时,日志将被记录。
服务端命令执行日志可以帮助用户检查服务端命令的执行情况。
比如:
  1. {"@timestamp":"2022-09-06T01:18:02.5578717Z","@m":"@I","LogType":"ServerCommandLog","RequestId":"0d6c5afa-2d42-41ab-896a-335f90164e7d","Log":"09:18 执行'数据查询'命令, 请求方式:POST, 用户:Administrator\r\n错误码: 0\r\n信息: [{"ID":1,"文本":"hello","整数":1,"日期":44808.0,"FGC_Creator":"Administrator","FGC_CreateDate":44805.56698116898,"FGC_LastModifier":"Administrator","FGC_LastModifyDate":44805.56698118056,"FGC_Rowversion":null,"FGC_UpdateHelp":"6db2d9e3-bf1b-42b5-975c-777bc745b16e"}]\r\n'数据查询'命令执行结束, 用时:99毫秒。\r\n","Message":"[{"ID":1,"文本":"hello","整数":1,"日期":44808.0,"FGC_Creator":"Administrator","FGC_CreateDate":44805.56698116898,"FGC_LastModifier":"Administrator","FGC_LastModifyDate":44805.56698118056,"FGC_Rowversion":null,"FGC_UpdateHelp":"6db2d9e3-bf1b-42b5-975c-777bc745b16e"}]","ErrCode":0,"FolderName":"查询","StartTime":"2022-09-06T09:18:02.4570646+08:00","CommandName":"数据查询","UserName":"Administrator"}
复制代码
服务端命令执行日志包含的属性如下:
  • 命令名称:服务端命令名称;
  • 开始执行时间:服务端命令开始执行时间;
  • 文件夹名:设计器中服务端命令放置的文件夹名;
  • 返回码:服务端命令返回码;
  • 信息:服务端命令返回信息;
  • 执行日志:服务端名录执行日志,内容形式和在设计器中测试服务端命令输出结果类似;
  • 用户名称:执行该服务端命令的用户名;

日志级别:如果错误码为 0 为 Information,否则为 Error。仅支持活字格应用。
2.10. 忘记密码日志
任何忘记密码行为执行时,日志将被记录。可以用来检测未认证的登录。
比如:
  1. {"@timestamp":"2022-09-06T00:56:08.0231446Z","@m":"@E","@l":"Error","LogType":"ForgotPasswordLog","RequestId":"86747069-5c38-447f-a1f6-dcc8364fb11d","ErrorMessage":"指定的用户名或邮箱不存在。","Success":false,"UserName":"example@example.com"}
复制代码
忘记密码日志属性:
  • 用户名称:发起忘记密码操作的用户名称。

日志级别:如果成功为 Information,否则为 Error。支持活字格应用和管理控制台。
2.11. 发送邮件日志
当发送邮件的行为执行时,日志将被记录。可以查看发送邮件执行情况。
发送邮件日志包含了以下属性:
  • 是否成功:邮件是否发送成功;
  • 标题:邮件标题;
  • 发件人:邮件发件人;
  • 收件人:邮件收件人;
  • 用时(毫秒):发送邮件所用时间;
  • 错误信息:错误信息。

日志级别:成功为 Information ,否则为 Error。支持活字格应用和管理控制台。
2.12. 结果日志
有些行为有行为的执行结果,比如在控制台停止、启动应用等,结果日志用来记录这些行为是否执行成功。
结果日志包含的属性:
  • 路径:HTTP 请求路径;
  • 是否成功:是否执行成功;
  • 信息:结果信息。

日志级别:如果执行成功为 Information ,否则为 Error。支持活字格应用和管理控制台。

评分

参与人数 1满意度 +5 收起 理由
app转转风 + 5

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部