审计日志


Red Hat Developer Hub 1.3

使用 Red Hat Developer Hub 审计日志跟踪用户活动、系统事件和数据更改

Red Hat Customer Content Services

摘要

作为 Red Hat Developer Hub 管理员,您可以使用 Developer Hub 审计日志跟踪用户活动、系统事件和数据更改。

第 1 章 Red Hat Developer Hub 中的审计日志

审计日志是记录用户活动、系统事件和数据更改的记录集,影响您的 Red Hat Developer Hub 用户、管理员或组件。管理员可以查看 OpenShift Container Platform Web 控制台中的 Developer Hub 审计日志,以监控构建器事件、对 RBAC 系统的更改,以及对 Catalog 数据库的更改。审计日志包括以下信息:

  • 审计事件的名称
  • 触发审计事件的操作者,如终端、端口、IP 地址或主机名
  • 事件元数据,如日期、时间
  • 事件状态,如 成功失败
  • 严重性级别,如 infodebugwarnerror

您可以使用审计日志中的信息来实现以下目标:

增强安全性
跟踪活动,包括由自动化系统和软件模板启动到其源的活动。了解何时执行软件模板,以及应用程序和组件安装、更新、配置更改和删除的详细信息。
自动化合规性
使用简化的流程查看指定时间点的日志数据,以满足审计目的或持续合规维护。
调试问题
使用访问记录和活动详情来修复软件模板或插件的问题。
注意

默认情况下,审计日志不会转发到内部日志存储,因为这不提供安全存储。您需要自己确保转发审计日志的系统符合您所在机构及政府的相关要求,并具有适当的安全性。

使用 OpenShift Container Platform Web 控制台将以下 OpenShift Container Platform 日志记录组件配置为使用 Developer Hub 的审计日志记录:

日志记录部署
配置日志记录环境,包括每个日志记录组件的 CPU 和内存限值。如需更多信息,请参阅 Red Hat OpenShift Container Platform - 配置日志记录部署
日志记录收集器
配置 ClusterLogging 自定义资源(CR)中的 spec.collection 小节,以使用支持的对日志收集器的修改,并从 STDOUT 收集日志。如需更多信息,请参阅 Red Hat OpenShift Container Platform - 配置日志记录收集器
日志转发
通过在 ClusterLogForwarder CR 中指定输出和管道的组合,将日志发送到 OpenShift Container Platform 集群内部和外部的特定端点。如需更多信息,请参阅 Red Hat OpenShift Container Platform - 启用 JSON 日志转发Red Hat OpenShift Container Platform - 配置日志转发

1.2. 在 Developer Hub 中查看审计日志

管理员可以从 Red Hat OpenShift Container Platform Web 控制台查看、搜索、过滤和管理日志数据。您可以使用 isAuditLog 字段过滤其他日志类型的审计日志。

先决条件

  • 在 OpenShift Container Platform Web 控制台中以管理员身份登录。

流程

  1. 从 OpenShift Container Platform Web 控制台的 Developer 视角中,点 Topology 选项卡。
  2. Topology 视图中,点击您要查看审计日志数据的 pod。
  3. 在 pod 面板中点 Resources 选项卡。
  4. Resources 选项卡的 Pods 部分中,单击 View logs
  5. Logs 视图中,在 Search 字段中输入 isAuditLog,以过滤来自其他日志类型的审计日志。您可以使用箭头浏览包含 isAuditLog 字段的日志。

1.2.1. 审计日志字段

Developer Hub 审计日志可以包括以下字段:

eventName
审计事件的名称。
行动者

包含触发审计事件的操作者信息的对象。包含以下字段:

actorId
关联的用户或服务的 name/id/entityRef。如果未经身份验证的用户访问端点并禁用默认的验证策略,则可以是 null
ip
行动者的 IP 地址(可选)。
hostname
操作者的主机名(可选)。
client
行动者的用户代理(可选)。
stage
生成审计日志时事件的阶段,如启动 或完成
status
事件的状态,如 成功或失败
meta
包含事件特定数据的可选对象,如 taskId
request

可选字段,其中包含发送到端点的 HTTP 请求信息。包含以下字段:

方法
请求的 HTTP 方法。
query
请求的 查询 字段。
params
请求的 params 字段。
正文(body)
请求正文。创建任务时提供的 secret 被重新设计,显示为 *
url
请求的端点 URL。
response

可选字段,其中包含从端点发送的 HTTP 响应的信息。包含以下字段:

status
HTTP 响应的状态代码。
正文(body)
请求正文的内容。
isAuditLog
设置为 true 的标志,用于将审计日志与其他日志类型区分开。
errors
包含 名称消息 以及错误 堆栈 字段的错误列表。只有当 状态 失败 时才会出现。

1.2.2. Scaffolder 事件

Developer Hub 审计日志可以包括以下 scaffolder 事件:

ScaffolderParameterSchemaFetch
跟踪对 /v2/templates/:namespace/:kind/:name/parameter-schema 端点的 GET 请求,该端点返回模板参数 schema
ScaffolderInstalledActionsFetch
跟踪对 /v2/actions 端点的 GET 请求,该端点获取已安装操作的列表
ScaffolderTaskCreation
跟踪对 /v2/tasks 端点的 POST 请求,该端点创建 scaffolder 执行的任务
ScaffolderTaskListFetch
跟踪对 /v2/tasks 端点的 GET 请求,该端点获取 scaffolder 中所有任务的详细信息。
ScaffolderTaskFetch
跟踪对 /v2/tasks/:taskId 端点的 GET 请求,该端点获取指定任务 :taskId的详细信息
ScaffolderTaskCancellation
跟踪对 /v2/tasks/:taskId/cancel 端点的 POST 请求,该端点取消正在运行的任务
ScaffolderTaskStream
跟踪 GET 请求到 /v2/tasks/:taskId/eventstream 端点,该端点返回任务 :taskId的任务日志的事件流。
ScaffolderTaskEventFetch
跟踪对 /v2/tasks/:taskId/events 端点的 GET 请求,该端点返回任务 :taskId的任务日志的快照
ScaffolderTaskDryRun
跟踪对 /v2/dry-run 端点的 POST 请求,该端点会创建一个空运行任务。与空运行关联的事件的所有审计日志会将 meta.isDryLog 标志设为 true
ScaffolderStaleTaskCancellation
跟踪自动取消过时的任务
ScaffolderTaskExecution
跟踪实际构建器任务执行的启动和完成(空运行不会发生)
ScaffolderTaskStepExecution
跟踪 启动和完成 构建器任务步骤执行
ScaffolderTaskStepSkip
如果未满足条件, 跟踪跳过的步骤
ScaffolderTaskStepIteration
跟踪包含每个字段的任务步骤 执行的步骤

1.2.3. 目录事件

Developer Hub 审计日志可包括以下目录事件:

CatalogEntityAncestryFetch
跟踪对 /entities/by-name/:kind/:namespace/:name/ancestry 端点的 GET 请求,该端点返回实体的ancestry
CatalogEntityBatchFetch
跟踪 POST 请求到 /entities/by-refs 端点,该端点返回批实体
CatalogEntityDeletion
跟踪对 /entities/by-uid/:uid 端点的 DELETE 请求,该端点删除实体
注意

如果已删除实体的父位置仍存在于目录中,则在下一个处理周期期间会在目录中恢复实体。

CatalogEntityFacetFetch
跟踪 GET 请求到 /entity-facets 端点,该端点返回实体的挑战
CatalogEntityFetch
跟踪 GET 请求到 /entities 端点,该端点返回实体列表
CatalogEntityFetchByName
跟踪 GET 请求到 /entities/by-name/:kind/:namespace/:name 端点,该端点返回与指定实体引用匹配的实体,例如 < kind>:<namespace>/<name>
CatalogEntityFetchByUid
跟踪 GET 请求到 /entities/by-uid/:uid 端点,该端点返回与指定实体的唯一 ID 匹配的实体
CatalogEntityRefresh
跟踪 POST 请求到 /entities/refresh 端点,该端点调度指定的实体刷新
CatalogEntityValidate
跟踪对 /entities/validate 端点的 POST 请求,该端点验证指定的实体
CatalogLocationCreation
跟踪对 /locations 端点的 POST 请求,这将创建一个位置
注意

位置是一种标记,引用其他位置来查找目录数据。

CatalogLocationAnalyze
跟踪对 /locations/analyze 端点的 POST 请求,该端点分析指定的位置
CatalogLocationDeletion
跟踪对 /locations/:id 端点的 DELETE 请求,该端点删除位置以及与其关联的所有子实体
CatalogLocationFetch
跟踪 GET 请求到 /locations 端点,该端点返回位置列表
CatalogLocationFetchByEntityRef
跟踪 GET 请求到 /locations/by-entity 端点,该端点返回与指定实体引用关联的位置列表
CatalogLocationFetchById
跟踪 GET 请求到 /locations/:id 端点,该端点返回与指定位置 ID 匹配的位置
QueriedCatalogEntityFetch
GET 请求跟踪到 /entities/by-query 端点,该端点返回与指定查询匹配的实体列表

1.3. Red Hat Developer Hub 中的审计日志文件轮转

登录到 Red Hat Developer Hub 中的轮转文件对于审计日志的持久性存储会很有帮助。

持久性存储可确保即使 pod 重启后,该文件也会保持不变。审计日志文件轮转会定期创建一个新文件,其中只有新数据写入到最新的文件中。

默认设置

默认禁用将审计日志记录到轮转文件。启用后,默认行为会更改为:

  • 在午夜(本地系统时区)轮转日志。
  • 日志文件格式: redhat-developer-hub-audit-%DATE%.log.
  • 日志文件存储在 /var/log/redhat-developer-hub/audit 中。
  • 没有删除自动日志文件。
  • 没有归档日志的 gzip 压缩。
  • 没有文件大小限制。

审计日志写在 /var/log/redhat-developer-hub/audit 目录中。

日志文件名称
审计日志文件名采用以下格式:

redhat-developer-hub-audit-%DATE%.log

其中 %DATE%auditLog.rotateFile.dateFormat 中指定的格式。您可以在配置文件轮转时自定义文件名。

文件轮转日期和时间

支持的 auditLog.rotateFile.frequency 选项包括:

  • daily: 每天在 00:00 本地时间点
  • Xm :每 X 分钟进行轮转(其中 X 是 0 到 509 之间的数字)
  • Xh: 对每个 X 小时进行轮转(其中 X 是 0 到 23 之间的数字)
  • 测试 :每 1 分钟轮转一次
  • Custom: 使用 dateFormat 来设置轮转频率(如果未指定频率,则默认为)

如果 频率 设为 XhXmtest,则必须以包含指定时间组件的格式配置 dateFormat 设置。否则,轮转可能无法按预期工作。

例如,使用 dateFormat: 'YYYY-MM-DD-HH 用于每小时轮转,dateFormat: 'YYYY-MM-DD-HH-mm 用于分钟轮转。

分钟轮转示例:

auditLog:
  rotateFile:
    # If you want to rotate the file every 17 minutes
    dateFormat: 'YYYY-MM-DD-HH-mm'
    frequency: '17m'
Copy to Clipboard Toggle word wrap

如果频率设置为 自定义,则 dateFormat 设置在 logFileName 中配置 %DATE% 和文件轮转 频率。默认格式为 YYYY-MM-DD,表示每日轮转。支持的值基于 Moment.js 格式

如果将 频率 设置为 custom,则在日期字符串(在指定 dateFormat 中表示)时会轮转,更改。

归档和删除
默认情况下,日志文件不会被归档或删除。
启用并配置审计文件轮转
如果您是 Developer Hub 管理员,您可以为审计日志启用文件轮转,并配置文件日志位置、名称格式、频率、日志文件大小、保留策略和归档。

审计日志文件轮转配置示例

auditLog:
  rotateFile:
    enabled: true 
1

    logFileDirPath: /custom-path 
2

    logFileName: custom-audit-log-%DATE%.log 
3

    frequency: '12h' 
4

    dateFormat: 'YYYY-MM-DD' 
5

    utc: false 
6

    maxSize: 100m 
7

    maxFilesOrDays: 14 
8

    zippedArchive: true 
9
Copy to Clipboard Toggle word wrap

1
enabled 设置为 true 以使用审计日志文件轮转。默认情况下,它被设置为 false
2
日志文件的绝对路径。如果指定的目录不存在,则会自动创建该目录。
3
默认日志文件格式。
4
如果没有指定频率,则每天在 00:00 本地进行默认的文件轮转。
5
默认日期格式。
6
utc 设置为 true,来为 dateFormat 而不是本地时间使用 UTC 时间。
7
为审计日志设置最大文件大小限制。在本例中,最大大小为 100m。
8
如果设置为文件数,例如 14,那么当存在超过 14 个日志文件时,它将删除最旧的日志。如果设置为天数,如 5d,则它将删除超过 5 天的日志。
9
使用 gzip 归档和压缩轮转日志。默认值为 false
注意
  • 默认情况下,日志文件不会被归档或删除。如果启用了日志删除,则会在日志 要跟踪生成的日志的目录中生成 .<sha256 hash>-audit.json。目录中不包含的任何日志文件都不受到自动删除。
  • 每次后端启动时都会生成一个新的 .<sha256 hash>-audit.json 文件,这会导致以前的审计日志停止跟踪或删除,但当前后端仍使用的文件除外。

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部