主要内容

本页采用了机器翻译。点击此处可查看英文原文。

审计日志

前提条件

事件类别和支持的活动

审计日志可让您跟踪和监控用户访问和 App 使用情况,并记录关键事件。通过启用审计日志,您可以:

  • 跟踪用户访问,识别未经授权的访问,确保安全。

  • 让 App 开发人员深入了解 App 的使用模式,包括用户数量和使用时长。

  • 生成可与现有工具集成的结构化数据,以便进一步分析。

日志记录按事件类别组织,每个类别包括可记录的特定事件。在配置 JSON 中,事件类别指定为 event_category。每个类别所支持的单个事件都列在 supported_events_doc 下,您要为每个类别记录的特定事件则从 supported_events_doc 中选择,并置于配置 JSON 的 events 字段中。

event_categorysupported_events_doc描述

server

start, stop

这些事件提供有关服务器运行的信息,特别是服务器启动和停止的时间。

app

usage, upload, delete

这些事件提供了有关 App 使用持续时间和 App 管理相关操作的信息。

authentication

login, logout

这些事件提供与登录和注销相关的用户操作信息。

authorization

grant, denial

这些事件根据授权的准许或拒绝,捕捉用户上传或删除 App 的能力。

每个事件都包括用户姓名。如果 userinfo.json 文件配置在 webapps_private 文件夹中,则日志文件将显示 UserID 键的值。如果没有 userinfo.json 文件,日志文件将使用 displayName 文件 appConfig 部分中的 webapps_authn.json 键值。有关详细信息,请参阅根据用户自定义 Web App 行为

审计日志文件被写入服务器日志目录下名为 auditlogs 的单独文件夹中。服务器日志的默认位置是:

操作系统日志文件夹位置

Windows®

%ProgramData%\MathWorks\webapps\R2025b\logs

Linux®

/local/MathWorks/webapps/R2025b/logs

macOS

/Library/Application Support/MathWorks/webapps/R2025b/logs

启用审计日志

要启用审计日志:

  • 创建一个名为 auditlog.json 的文件并将其放在 config 文件夹内的 webapps_private 文件夹中。

    webapps_private 文件夹位于以下位置:

    操作系统文件夹位置

    Windows

    %ProgramData%\MathWorks\webapps\R2025b\config\webapps_private

    Linux

    /local/MathWorks/webapps/R2025b/config/webapps_private

    macOS

    /Library/Application Support/MathWorks/webapps/R2025b/config/webapps_private

auditlog.json 的 JSON 架构是:

{
  "version": "<major>.<minor>.<patch>",
  "log_file_max_size": "A numeric value representing the maximum size of a log file in MB",
  "log_files_max_num": "A numeric value representing the maximum number of log files to retain",
  "event_categories": [
    {
      "event_category": "server",
      "enable": "<all | none | specified>",
      "events": ["<start | stop>"],
      "supported_events_doc": "<start, stop>"
    },
    {
      "event_category": "app",
      "enable": "<all | none | specified>",
      "events": ["<usage | upload | delete>"],
      "supported_events_doc": "<usage, upload, delete>"
    },
    {
      "event_category": "authentication",
      "enable": "<all | none | specified>",
      "events": ["<login | logout>"],
      "supported_events_doc": "<login, logout>"
    },
    {
      "event_category": "authorization",
      "enable": "<all | none | specified>",
      "events": ["<grant | denial>"],
      "supported_events_doc": "<grant, denial>"
    }
  ]
}
  • version:指定 JSON 架构的版本。R2025b 的默认值是 1.0.0

  • log_file_max_size:指定一个数值,代表日志文件的最大大小 (MB)。例如,要将最大日志文件大小设置为 10 MB,请使用 10

  • log_files_max_num:指定一个数值,代表要保留的日志文件的最大数量。例如,要保留多达 20 个日志文件,请使用 20

  • event_categories:在 event_categories 数组中指定审计日志支持的不同事件类别。目前,支持的事件类别有 serverappauthenticationauthorization

  • enable:使用 enable 字段指定启用或禁用审计日志的当前事件类别。支持的值有:allnonespecified。选择 specified 时,只记录 events 字段中列出的事件。例如,要记录某个类别中的所有事件,请使用 "all"

  • event_category:使用 event_category 字段指定要记录的事件类型。支持的类别包括 serverappauthenticationauthorization。例如,要指定服务器事件日志,请使用 "server"

  • events:使用 events 数组指定要记录的特定事件。必须以字符串数组(每个字符串代表一个事件)或以逗号分隔的单个字符串(列出这些事件)的形式指定值。只有当 enable 字段设置为 specified 时,该数组才会相关,从而确保审计日志中只记录此处列出的事件。例如,要记录启动和停止事件,请使用 ["start", "stop"]

  • supported_events_doc:使用 supported_events_doc 字段指定每个事件类别所支持的事件。这些信息有助于用户确定哪些事件可以添加到 events 数组中,以便记录。例如,要记录 startstop 等受支持的服务器事件,请使用 "start, stop"

auditlog.json 示例文件

{
  "version": "1.0.0",
  "log_file_max_size": 100,
  "log_files_max_num": 5,
  "event_categories": [
    {
      "event_category": "server",
      "enable": "specified",
      "events": ["start", "stop"],
      "supported_events_doc": "start, stop"
    },
    {
      "event_category": "app",
      "enable": "all",
      "events": ["usage", "upload", "delete"],
      "supported_events_doc": "usage, upload, delete"
    },
    {
      "event_category": "authentication",
      "enable": "specified",
      "events": ["login"],
      "supported_events_doc": "login, logout"
    },
    {
      "event_category": "authorization",
      "enable": "specified",
      "events": ["grant"],
      "supported_events_doc": "grant, denial"
    }
  ]
}

日志文件示例

{ "timestamp": "2024-10-14 13:16:08", "category": "server", "event": "start" }
{ "timestamp": "2024-10-14 13:16:26", "category": "authentication", "event": "login", "user": "cinderella" }
{ "timestamp": "2024-10-14 13:20:59", "category": "authorization", "event": "grant", "action": "app_upload", "user": "alice" }
{ "timestamp": "2024-10-14 13:26:44", "category": "app", "event": "delete", "app_name": "app1.ctf" }
{ "timestamp": "2024-10-14 13:29:19", "category": "authorization", "event": "grant", "action": "app_upload", "user": "raya" }
{ "timestamp": "2024-10-14 13:29:24", "category": "app", "event": "delete", "app_name": "app2.ctf" }
{ "timestamp": "2024-10-14 13:29:49", "category": "authorization", "event": "grant", "action": "app_upload", "user": "cali" }
{ "timestamp": "2024-10-14 13:30:10", "category": "app", "event": "upload", "app_name": "app3.ctf" }
{ "timestamp": "2024-10-14 13:30:30", "category": "server", "event": "stop" }
{ "timestamp": "2024-10-14 13:31:00", "category": "app", "event": "usage", "app_name": "app4", "duration": "310" }

认证事件

这些事件提供与登录相关的用户操作信息。日志中只记录 "login" 操作。例如:

{"timestamp": "2024-10-14 13:16:26", "category": "authentication", "event": "login", "user": "cinderella"}

该日志记录显示,2024 年 10 月 14 日下午 1:16 时,用户 "cinderella" 成功登录系统。

授权事件

这些事件捕获与授予用户权限以执行 App 相关任务有关的操作。配置为该类别指定了 "enable": "specified",侧重于“准许”操作,用以跟踪哪些用户被授权上传 App。例如:

{"timestamp": "2024-10-14 13:20:59", "category": "authorization", "event": "grant", "action": "app_upload", "user": "alice"}

此日志条目显示用户 "alice" 已获得上传 App 的权限。

App 事件

这些事件提供有关上传、删除和使用 App 等操作的信息。配置为 "enable": "all" 类别指定了 "app",用以捕获所有与 App 相关的活动。例如:

Delete

{"timestamp": "2024-10-14 13:26:44", "category": "app", "event": "delete", "app_name": "app1.ctf"}

此条目表示 "app1.ctf" 已删除。

Upload

{"timestamp": "2024-10-14 13:30:10", "category": "app", "event": "upload", "app_name": "app3.ctf"}

此条目表示 "app3.ctf" 已上传。

Usage

{"timestamp": "2024-10-14 13:31:00", "category": "app", "event": "usage", "app_name": "app4", "duration": "310"}

此条目表示 "app4" 被使用了 310 秒。

服务器事件

这些事件提供有关服务器运行的信息,特别是服务器启动和停止的时间。配置为 "enable": "all" 类别指定了 "server",用以同时捕获 "start""stop" 操作。例如:

Start

{"timestamp": "2024-10-14 13:16:08", "category": "server", "event": "start"}

此条目显示服务器于 2024 年 10 月 14 日下午 1:16 启动。

Stop

{"timestamp": "2024-10-14 13:30:30", "category": "server", "event": "stop"}

此条目显示服务器于同一天下午 1:30 停止运行。

另请参阅

主题