審核記載機能提供指令行介面,可用於管理審核記載及檢視審核日誌。審核日誌可提供系統中的物件變更歷程。它們按全文索引進行儲存。
如果使用審核記載,則對於它所追蹤的物件,其記載機能會取代傳訊機能(可在中看到)。
重要: 審核記載僅適用於在執行中系統上直接執行的作業。它不適用於匯入至系統的資料。bfimport 機能會直接更新資料庫,而不與審核記載機能互動。
管理審核原則
審核原則可控制執行審核的數量。它決定於「審核原則」系統配置設定的設定。
- NONE
- 不記錄審核資訊。
- SECURITY
- 僅記錄安全相關資訊。範例:建立存取群組及使用者階段作業活動。
- BASIC
- 此為預設值。如果存在無效的「審核原則」值,則也會使用此值。僅會記錄最少的資訊,如使用者、物件類型、UUID 及動作。
- DETAILED
- 記錄哪些內容已變更的相關詳細資訊,包含舊值及新值。並非所有物件皆可提供此資訊。對於無法提供此資訊的物件,BRIEF 與 DETAILED 原則之間沒有任何差異。「審核字串長度上限」系統配置設定,可用於限制儲存的資料數量。
「審核字串長度上限」系統配置設定,可透過設定字串資料欄位的長度上限,來控制可以為 DETAILED 變更記錄的資訊量。如果審核項目超出此字元數,則會儲存 SHA 訊息摘要(而非字串值)。若為包含機密性資訊(如密碼)的欄位,則無論字串長度為何,皆會使用訊息摘要。
顯示審核資訊
指令行介面可讓您指定要顯示的資訊,以及如何格式化資訊。
需要「檢視所有審核日誌」許可權。依預設,此許可權會指派給 Security 與 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
- 在輸出中顯示較少資訊(簡略)。確切的效果取決於輸出格式(請參閱 -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.stam。
- -l [offset,]count | --limit=[offset,]count
- 用於為結果標頁數。偏移與計數以項目數表示。例如,"-l 100,50" 表示顯示第 100 個項目後的 50 個項目。非簡略輸出格式將在輸出中包含符合的項目總數。
- -a user[,user ...] | --audit.user=user-list
- 將輸出限制為與指定使用者相關聯的項目。請以逗點分隔多個使用者名稱。如果您使用多個 -a 選項,指令會使用在選項中指定的所有使用者聯集。可以使用登入 ID 或 UUID 來指定使用者。如果 -- audit-user 指定時沒有搭配使用者引數,則會使用鑑別時所使用的使用者。
- -t format | --format=format
- 要使用的輸出格式為 CSV、XML、JSON 或 TEXT 其中之一。預設值為 TEXT。
- -L | --list
- 列出使用者可用的審核類別。以星號 (*) 標示的審核類別,即為該使用者可存取的審核類別。如果與 -c(審核類別清單)搭配使用,便會改為顯示各類別可用的欄位清單。當指定此選項時,其他指令選項皆不會發揮作用。具有 ViewAllAudits 許可權的使用者可以檢視任何類別的審核日誌。其他使用者只可以使用 -a 選項來檢視自己的審核日誌。
查詢
查詢是使用 Web 搜尋引擎常用格式的字串:以空格分隔的指定項目清單。指定項目的格式為 'field:value',表示在指定 field 中搜尋 value。如果沒有指定查詢,但指定有至少一個選項,便會顯示所有符合的審核日誌。無法在查詢中指定審核使用者和審核類別。請使用指令選項來指定它們。
註: 請在 Windows 系統上使用雙引號,在 UNIX 及 Linux 系統上使用單引號。
範例
- 此範例會列出 Project 以及 Step 審核類別的所有已知查詢欄位。
- Windows
$ bfauditlog.bat -c Project,Step -L
- UNIX 和 Linux
$ bfauditlog.sh -c Project,Step -L
- 此範例會顯示 10 個最近專案建立作業的審核日誌,它使用以逗點區隔的變數輸出格式,且沒有直欄標題或列的總計數。每一個記錄只有給定的專案唯一 ID 和名稱。
- 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:舊專案說明(字串)
snDescription:新專案說明(字串)
soSelectorUuid:舊選取元的 UUID(字串)
snSelectorUuid:新選取元的 UUID(字串)
ioRunLimit:舊執行限制(整數)
inRunLimit:新執行限制(整數)