3.10. 管理审计日志记录

您可以为管理接口启用审计日志,它会记录使用管理控制台、管理 CLI 或使用管理 API 的自定义应用执行的所有操作。审计日志条目以 JSON 格式存储。默认情况下禁用审计日志。

您可以将审计日志记录配置为输出到 文件或 syslog 服务器

注意

由于 JBoss EAP 中没有经过身份验证的会话,因此无法对登录和注销事件进行审计。相反,当从用户收到操作时,会记录审计消息。

独立服务器审计日志记录

虽然默认禁用,但默认的审计日志配置会写入到文件中。

<audit-log>
    <formatters>
        <json-formatter name="json-formatter"/>
    </formatters>
    <handlers>
        <file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/>
    </handlers>
    <logger log-boot="true" log-read-only="false" enabled="false">
        <handlers>
            <handler name="file"/>
        </handlers>
    </logger>
</audit-log>

此配置可以通过以下管理 CLI 命令读取:

/core-service=management/access=audit:read-resource(recursive=true)

请参阅 启用审计日志记录,为单机服务器启用审计日志记录。

受管域审计日志记录

虽然默认为禁用,默认的审计日志记录配置会为每个主机和每台服务器写入一个文件。

<audit-log>
    <formatters>
        <json-formatter name="json-formatter"/>
    </formatters>
    <handlers>
        <file-handler name="host-file" formatter="json-formatter" relative-to="jboss.domain.data.dir" path="audit-log.log"/>
        <file-handler name="server-file" formatter="json-formatter" relative-to="jboss.server.data.dir" path="audit-log.log"/>
    </handlers>
    <logger log-boot="true" log-read-only="false" enabled="false">
        <handlers>
            <handler name="host-file"/>
        </handlers>
    </logger>
    <server-logger log-boot="true" log-read-only="false" enabled="false">
        <handlers>
            <handler name="server-file"/>
        </handlers>
    </server-logger>
</audit-log>

此配置可以通过以下管理 CLI 命令读取:

/host=HOST_NAME/core-service=management/access=audit:read-resource(recursive=true)

请参阅 启用审计日志记录,为受管域启用审计日志记录。

3.10.1. 启用管理审计日志记录

JBoss EAP 预配置了审计日志记录的文件处理程序,但审计日志记录默认为禁用。启用审计日志记录的管理 CLI 命令取决于您是以单机服务器还是在受管域中运行。如需 文件处理程序属性,请参阅管理审计日志记录 属性。

以下说明启用 NATIVEHTTP 审计日志记录。要配置 Jakarta 管理审计日志记录,请参阅 启用 Jakarta Management Management Audit Logging

要设置 syslog 审计日志记录,请参阅 发送管理审计日志记录到 Syslog 服务器

启用单机服务器审计日志记录

可以使用以下命令启用审计日志记录:

/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)

默认情况下,这会将审计日志写入 EAP_HOME/standalone/data/audit-log.log

启用受管域审计日志记录

受管域的默认审计日志记录配置已预先配置为为每个主机和每一服务器写入审计日志。

可以使用以下命令,为每个主机启用审计日志记录:

/host=HOST_NAME/core-service=management/access=audit/logger=audit-log:write-attribute(name=enabled,value=true)

默认情况下,这会将审计日志写入 EAP_HOME/domain/data/audit-log.log

可以使用以下命令,为每个服务器启用审计日志记录:

/host=HOST_NAME/core-service=management/access=audit/server-logger=audit-log:write-attribute(name=enabled,value=true)

默认情况下,这会将审计日志写入 EAP_HOME/domain/servers/SERVER_NAME/data/audit-log.log

3.10.2. 启用 Jakarta Management Management Audit Logging

JBoss EAP 预配置了 Jakarta 管理审计日志记录的文件处理程序,但默认情况下这些日志是禁用的。启用审计日志记录的管理 CLI 命令取决于您是作为单机服务器还是受管域来运行。

要配置 NATIVE 或 HTTP 审计日志记录,请参阅 启用管理审计日志记录

启用单机服务器 Jakarta 管理审计日志记录

可以使用以下命令,为单机服务器启用 Jakarta 管理审计日志记录:

/subsystem=jmx/configuration=audit-log:add()
/subsystem=jmx/configuration=audit-log/handler=file:add()

这将启用 Jakarta 管理审计日志记录,然后使用定义 的文件 处理程序将这些日志写入 EAP_HOME/standalone/data/audit-log.log

启用受管域 Jakarta 管理审计日志记录

可以为受管域中的每个主机和配置文件启用 Jakarta 管理审计日志记录。

为主机启用 Jakarta 管理审计日志记录

  1. 在主机的 jmx 子系统中启用审计日志记录。

    /host=HOST_NAME/subsystem=jmx/configuration=audit-log:add()
  2. 启用了 jmx 子系统的审计日志记录后,可以使用以下命令为主机定义处理程序:

    /host=HOST_NAME/subsystem=jmx/configuration=audit-log/handler=host-file:add()

    默认情况下,这会将 Jakarta Management 审计日志写入 EAP_HOME/domain/data/audit-log.log

为配置集启用 Jakarta 管理审计日志记录

  1. 在配置集的 jmx 子系统中启用审计日志记录。

    /profile=PROFILE_NAME/subsystem=jmx/configuration=audit-log:add()
  2. 启用了 jmx 子系统的审计日志记录后,可以使用以下命令为配置文件定义处理程序:

    /profile=PROFILE_NAME/subsystem=jmx/configuration=audit-log/handler=server-file:add()

    默认情况下,这会将 Jakarta Management 审计日志写入 EAP_HOME/domain/servers/SERVER_NAME/data/audit-log.log

3.10.3. 将管理审计日志记录发送到 Syslog 服务器

syslog 处理程序指定审计日志条目发送到 syslog 服务器的参数,特别是 syslog 服务器的主机名和 syslog 服务器侦听的端口。将审计日志记录发送到 syslog 服务器比记录到本地文件或本地 syslog 服务器更安全的选项。可以定义多个 syslog 处理程序并同时处于活动状态。

默认情况下,审计日志在启用时预先配置为输出到文件。使用以下步骤将审计日志记录设置并启用到 syslog 服务器。如需 syslog 处理程序属性,请参阅管理审计日志记录 属性。

  1. 添加 syslog 处理程序。

    通过指定 syslog 服务器的主机和端口,创建 syslog 处理程序。在受管域中,您必须在 /core-service 命令之前使用 /host=HOST_NAME

    batch
    /core-service=management/access=audit/syslog-handler=SYSLOG_HANDLER_NAME:add(formatter=json-formatter)
    /core-service=management/access=audit/syslog-handler=SYSLOG_HANDLER_NAME/protocol=udp:add(host=HOST_NAME,port=PORT)
    run-batch
    注意

    要传递的参数因指定的协议而异。

    要将处理器配置为使用 TLS 与 syslog 服务器安全地通信,还必须配置身份验证,例如:

    /core-service=management/access=audit/syslog-handler=SYSLOG_HANDLER_NAME/protocol=tls/authentication=truststore:add(keystore-path=PATH_TO_TRUSTSTORE,keystore-password=TRUSTSTORE_PASSWORD)
  2. 添加对 syslog 处理程序的引用。

    在受管域中,您必须在此命令前加上 /host=HOST_NAME

    /core-service=management/access=audit/logger=audit-log/handler=SYSLOG_HANDLER_NAME:add
  3. 启用审计日志记录。

    请参阅 启用管理审计日志记录 以启用审计日志记录。

重要

在 JBoss EAP 中启用对 syslog 服务器的审计日志记录将不起作用,除非操作系统中也启用了日志记录。

有关 Red Hat Enterprise Linux 中的 rsyslog 配置的更多信息,请参阅 Red Hat Enterprise Linux 系统管理员指南的 Rsyslog 基本配置 部分,网址为 https://access.redhat.com/documentation/en/red-hat-enterprise-linux/

3.10.4. 阅读审计日志条目

输出到文件的审计日志条目最好使用文本 查看器查看,而 syslog 服务器的输出则最好使用 syslog viewer 应用程序查看。

注意

建议使用文本编辑器 查看日志文件,因为这样可能会导致进一步日志条目写入到日志文件中。

审计日志条目以 JSON 格式存储。每个日志条目都以可选时间戳开头,后跟下表中的字段。

表 3.6. 管理审计日志字段

字段名称描述

访问

这可以有以下值之一:

  • NATIVE - 操作通过原生管理界面启动。
  • HTTP - 操作通过域 HTTP 接口进入。
  • JMX - 该操作通过 jmx 子系统进行。

引导

如果操作在启动过程中执行,则值为 true ;如果该操作在服务器启动并运行后执行,则为 false

domainUUID

个 ID,用于链接所有操作,因为它们从域控制器传播到其服务器、从属主机控制器和从属主机控制器服务器。

ops

正在执行的操作。这是序列化为 JSON 的操作列表。在引导时,这是解析 XML 时生成的操作。引导后,列表通常包含单个条目。

r/o

如果操作不更改管理模式,则值为 true ;如果更改管理模式,则为 false

remote-address

执行此操作的客户端地址。

success

如果操作成功,则值为 true,如果回滚,则为 false

type

这可以具有值 core,即管理操作或 jmx,即来自 jmx 子系统。

user

经过身份验证的用户的用户名。如果使用管理 CLI 在与正在运行的服务器相同的计算机上发生,则会使用特殊用户 $local

version

JBoss EAP 实例的版本号。