本帖最后由 Joe.xu 于 2022-9-8 08:51 编辑
一、总览 上篇介绍到活字格 8.0 update1 服务端日志增强,这里将继续对日志模块进行介绍。 服务器的日志以日志模块为粒度分条记录,日志模块目前有:异常日志、HTTP 请求日志、HTTP 响应日志、登录日志、登出日志、审计日志、SQL 执行日志、计划任务执行日志、服务端命令执行日志、忘记密码操作日志、发送邮件日志、结果日志。 其中审计日志、SQL 执行日志、计划任务执行日志、服务端命令执行日志者四个日志模块仅支持活字格应用,活字格管理控制台则没有这四个模块的配置。 日志模块有以下特征: 二、日志模块
2.1. 异常日志当应用运行时抛出一个异常时,异常日志将被记录。 通过异常日志,用户可以检查应用程序内发生了什么错误。通过异常详细信息,用户可以知道异常发生时的调用堆栈。如果在短时间内出现了很多异常,用户应该修改应用程序来改进它。 异常模块日志有下面这些属性: 请求路径:如果日志是在 HTTP 请求中生成的,则此属性将包含 HTTP 请求路径,否则为空; 用户名:如果登录的用户造成了这个异常,这里将记录造成异常的用户名称; 查询参数:如果日志是在 HTTP 请求中生成的,则此属性将包含 HTTP 查询参数,否则为空; 请求数据:如果日志是在 HTTP 请求中生成的,则此属性将包含 HTTP 请求数据,否则为空; 异常调用堆栈:异常产生的详细调用堆栈信息
异常日志的日志级别为:Error。支持活字格应用和管理控制台。 2.2. HTTP 请求日志HTTP 请求日志用来,记录 HTTP 请求相关信息。 HTTP 请求日志很有用,有助于调试 Web 应用程序,检查 HTTP 流量,检查在 Web 应用程序中发生了什么,检测黑客攻击等。 比如: - {"@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 请求日志有下面这些属性: 日志级别:Information,支持活字格应用和管理控制台。 2.3. HTTP 响应日志当一个 HTTP 请求完成并且服务端给客户端发送响应时,响应日志将被记录。通过 RequestId 找到对应的 HTTP 请求日志,这样用户可以查看一次完整 HTTP 请求和响应的执行情况。 比如: - {"@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 请求日志有下面这些属性: 日志级别:如果返回的状态码小于 400 则为 Information,否则为 Error。支持活字格应用和管理控制台。 2.4. 登录日志任何登录行为都会记录日志,不管登录成功与否。登录行为包括表单身份验证登录、 单点登录、 OAuth 安全提供程序登录、 SAML 安全提供程序登录。 通过登录日志可以检测未经授权的登录,登录日志的记录可以满足企业记录登录和登出审计日志的要求。 比如: - {"@timestamp":"2022-09-06T00:41:28.0693050Z","@m":"@I","LogType":"LoginLog","RequestId":"a006fab8-0668-4adc-a657-d01dcf5b476e","Success":true,"UserName":"Administrator"}
复制代码登录日志有下面这些属性: 日志级别:如果登录成功为 Information,否则为 Error。支持活字格应用和管理控制台。 2.5. 登出日志当用户登出应用时,将会记录登出日志。登出日志的记录可以企业满足记录登录和登出审计日志的要求。 比如: - {"@timestamp":"2022-09-06T00:53:10.8474013Z","@m":"@I","LogType":"LogoutLog","RequestId":"1023ad72-da98-4814-87bb-e44cf20e562e","Success":true,"UserName":"Administrator"}
复制代码登出日志有下面这些属性: 日志级别:Information。支持活字格应用和管理控制台。 2.6. SQL 执行日志任何被数据库执行的 SQL 会被记录,通过 SQL 日志用户可以方便的查看前端一些页面逻辑在服务端执行的一些 SQL。 通过查看 SQL 执行日志可以: 比如:
- {"@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. 审计日志
审计日志用来任何通过命令执行的数据库操作,比如: - {"@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. 计划任务执行日志当一个计划任务命令被执行时,日记将会被记录。 计划任务执行日志可以帮助用户检查计划任务的执行情况。 比如: - {"@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. 服务端命令执行日志当服务端命令被执行时,日志将被记录。 服务端命令执行日志可以帮助用户检查服务端命令的执行情况。 比如: - {"@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. 忘记密码日志任何忘记密码行为执行时,日志将被记录。可以用来检测未认证的登录。 比如: - {"@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。支持活字格应用和管理控制台。
|