审计日志记录提供了命令行界面以管理审计日志记录和查看审计日志。审计日志提供了对系统中对象所做更改的历史记录。这些更改存储在全文索引中。
如果使用审计日志记录,那么对于其跟踪的对象,其日志记录会替换其他情况下将在中可视的消息传递。
要点: 审计日志记录仅适用于直接在正在运行的系统上执行的操作。它对导入系统的数据不起作用。bfimport 设施直接更新数据库,而不与审计日志记录设施交互。
管理审计策略
审计策略控制执行的审计量。它是由审计策略系统配置设置确定的。
- NONE
- 不会记录任何审计信息。
- SECURITY
- 仅记录与安全相关的信息。示例:访问组创建和用户会话活动。
- BASIC
- 这是缺省设置。如果存在无效的审计策略值,也会使用缺省设置。仅会记录尽可能少的信息,如用户、对象类型、uuid 和操作。
- DETAILED
- 记录有关更改了哪些属性的详细信息,包括旧值和新值。并非所有对象都可以提供该信息。对于那些不能提供该信息的对象,BRIEF 和 DETAILED 策略之间没有区别。“审计最大字符串长度”系统配置设置可用于限制存储的数据量。
“审计最大字符串长度”系统配置设置通过限制字符串数据字段长度上限来控制针对 DETAILED 更改可以记录的信息量。如果审计项超出该字符数,那么将存储 SHA 消息摘要来代替字符串值。对于包含敏感信息的字段(如密码),不论字符串的长度如何,都将使用消息摘要。
显示审计信息
命令行界面允许您指定显示哪些信息以及如何对其格式化。
需要“查看所有审计日志”许可权。
缺省情况下,会将其分配给 Security and Build Engineer 访问组。
用法:bfauditlog [connection-options][command-options][query]
字面值可执行文件如下所示:
- Windows 系统:bfauditlog.bat
- UNIX 和 Linux 系统:bfauditlog.sh
连接选项
- -H hostname | --hostname=hostname
- 连接的远程主机名。缺省值为 localhost。
- -P port | --port=port
- 连接的通信端口。缺省值为 3966。
- -d domain | --domain=domain
- 用于认证的域或区域。缺省值:无。
- -u login | --user=login
- 用于认证的用户名。缺省值为 root。
- -p password | --password=password
- 认证用户的密码。缺省值为 root。
- -E encoding | --encoding=encoding
- 要使用的输出字符集编码。如果指定的编码无效,那么会列出所有可用编码,并且退出该程序。请注意,以所需编码显示文本的能力取决于客户机上使用的终端软件的功能。缺省值取决于您的操作系统和 JVM 支持。
命令选项
- -h
- 显示帮助。
- -b | --bare
- 在输出 (bare) 中显示较少信息。确切的效果取决于输出格式(请参阅 -t)。例如,在 XML 输出中,将省略开始标记、结束标记和行计数。在 CSV 中,将省略行计数和列名称。
- -c auditClass[,auditClass ...] | --audit.class=class-list
- 指定要在查询中使用的审计类的列表。用逗号分隔多个类名。如果指定多次,那么会使用指定的所有审计类的并集。如果未指定该选项,那么会使用用户可指定的所有审计类。使用 -L 选项来列出可用审计类。
缺省值是授权用户查看的所有审计类。
- -f field[,field ...] | --field=field-list
- 指定在输出中包含的字段。用逗号分隔多个字段名称。使用 -L 选项来列出可用字段。
- -s field[+|-][,field[+|-] ...] | --field=field-list
- 列出要用于对输出进行排序的字段。缺省情况下,输出将以 audit.stamp 的降序进行排序。+ 标记指定升序。- 标记指定降序。
用逗号分隔多个字段名称。缺省值为 -audit.stamp。
- -l [offset,]count | --limit=[offset,]count
- 用于对结果编页码。偏移量和计数均以条目数量表示。例如,“-l 100,50”表示在第 100 个条目后显示 50 个条目。非 bare 输出格式将在输出中包含匹配条目的总数。
- -a user[,user ...] | --audit.user=user-list
- 将输出限制为与指定用户相关联的条目。用逗号分隔多个用户名。如果您使用多个 -a 选项,那么该命令会使用选项中指定的所有用户的并集。
用户可由登录标识或 UUID 指定。如果指定了不带有用户自变量的 -–audit-user,那么会使用用于认证的用户。
- -t format | --format=format
- 用于输出的格式,CSV、XML、JSON 或 TEXT 之一。
缺省值为 TEXT。
- -L | --list
- 列出用户的可用审计类。以星号 (*) 标记的审计类可供用户访问。
如果与 -c(审计类列表)一起使用,那么会显示每个类的可用字段列表。指定该选项时,其他命令选项无效。具有 ViewAllAudits 许可权的用户可以从任何类查看审计日志。其他用户只能使用 -a 选项来查看其自己的审计日志。
查询
查询字符串使用通常由 Web 搜索引擎使用的格式:规范的空格分隔列表。规范采用格式 'field:value' 以搜索指定字段中的值。如果未指定查询,但是指定了至少一个选项,那么会显示所有匹配的审计日志。在查询中无法指定审计用户和审计类。使用命令选项来指定审计用户和审计类。
注: 在 Windows 系统上使用双引号,并在 UNIX 和 Linux 系统上使用单引号。
示例
- 此示例列出了 Project 和
Step 审计类的所有已知查询字段。
- Windows
$ bfauditlog.bat -c Project,Step -L
- UNIX 和 Linux
$ bfauditlog.sh -c Project,Step -L
- 此示例显示了用于创建项目的 10 篇最新审计日志,使用以逗号分隔的变量输出格式,并且无列标题或行数总计。针对每条记录仅提供该项目的唯一标识和名称。
- Windows
$ bfauditlog.bat -c Project -t CSV -f audit.target,
sxProjectName --bare -l 10 "audit.type:Create"
- UNIX 和 Linux
$ bfauditlog.sh -c Project -t CSV -f audit.target,
sxProjectName --bare -l 10 'audit.type:Create'
- 此示例检索了使用提供的域、用户名和密码登录后,来自机器“buildforge.example.com”上的安装的 100 篇最新审计日志。
- 此示例检索自 2011 年 5 月 23 日起至 2011 年 5 月 27 日记录的审计日志,日期根据对连接进行认证的用户的时区设置确定。
- 此示例检索了访问组级别从旧值 4、5 或 6 更改为新值 3 的项目的审计日志。请注意,方括号用于表明包含范围,因此 [4 TO 6] 表示值 4 和 6 将匹配。另请注意,旧级别值和新级别值将只能用于搜索审计策略是否设置为“DETAILED”。
- 此示例检索了访问组级别从旧值 4 或 5 更改为新值 2 或 3 的项目的审计日志。请注意,花括号用于表明排除性范围,因此 {3 TO 6} 表示值 3 和 6 将不匹配。另请注意,旧级别值和新级别值将只能用于搜索审计策略是否设置为“DETAILED”。
- 该示例将查询限制为审计用户 root 和 sv 的结果,并在 CSV 文件中生成输出。它返回 Project 和 Step 类的数据,并包含类、类型、目标、用户和时间戳记的信息:
- Windows
$ bfauditlog.bat -c Project,Step -f audit.class,
audit.type,audit.target,audit.user,audit.stamp
-a root,sv -l 10,5 -t CSV
- UNIX 和 Linux
$ bfauditlog.sh -c Project,Step -f audit.class,
audit.type,audit.target,audit.user,audit.stamp
-a root,sv -l 10,5 -t CSV
类
类是审计日志条目的标签。
使用 -L 选项来列出可用类。
字段
字段表示分配给每个审计日志记录的信息。
- audit.class:项目(字符串)
- audit.stamp:时间戳记(整数)
- audit.stamp.localized:表示 audit.stamp 整数值的本地化字符串
- audit.type:更新(字符串)
- audit.target:项目的 UUID(字符串)
- audit.user:执行更新的用户的 UUID
审计日志记录中的某些字段将反映其状态(o 表示旧,n 表示新,x 表示扩展)及其数据类型(s 表示字符串,i 表示整数)。示例:
soDescription: Old project description (string)
snDescription: New project description (string)
soSelectorUuid: Old selector's UUID (string)
snSelectorUuid: New selector's UUID (string)
ioRunLimit: Old run limit (integer)
inRunLimit: New run limit (integer)