審核記載

審核記載機能提供指令行介面,可用於管理審核記載及檢視審核日誌。審核日誌可提供系統中的物件變更歷程。它們按全文索引進行儲存。

如果使用審核記載,則對於它所追蹤的物件,其記載機能會取代傳訊機能(可在管理 > 訊息中看到)。

重要: 審核記載僅適用於在執行中系統上直接執行的作業。它不適用於匯入至系統的資料。bfimport 機能會直接更新資料庫,而不與審核記載機能互動。

管理審核原則

審核原則可控制執行審核的數量。它決定於「審核原則」系統配置設定的設定。
NONE
不記錄審核資訊。
SECURITY
僅記錄安全相關資訊。範例:建立存取群組及使用者階段作業活動。
BASIC
此為預設值。如果存在無效的「審核原則」值,則也會使用此值。僅會記錄最少的資訊,如使用者、物件類型、UUID 及動作。
DETAILED
記錄哪些內容已變更的相關詳細資訊,包含舊值及新值。並非所有物件皆可提供此資訊。對於無法提供此資訊的物件,BRIEF 與 DETAILED 原則之間沒有任何差異。「審核字串長度上限」系統配置設定,可用於限制儲存的資料數量。

「審核字串長度上限」系統配置設定,可透過設定字串資料欄位的長度上限,來控制可以為 DETAILED 變更記錄的資訊量。如果審核項目超出此字元數,則會儲存 SHA 訊息摘要(而非字串值)。若為包含機密性資訊(如密碼)的欄位,則無論字串長度為何,皆會使用訊息摘要。

顯示審核資訊

指令行介面可讓您指定要顯示的資訊,以及如何格式化資訊。

需要「檢視所有審核日誌」許可權。依預設,此許可權會指派給 Security 與 Build Engineer 存取群組。

用法:bfauditlog [connection-options][command-options][query]

文字執行檔如下所示:

連線選項

-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 系統上使用單引號。

範例

  1. 此範例會列出 Project 以及 Step 審核類別的所有已知查詢欄位。
    • Windows
      $ bfauditlog.bat -c Project,Step -L
    • UNIX 和 Linux
      $ bfauditlog.sh -c Project,Step -L 
  2. 此範例會顯示 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' 
  3. 此範例會在使用提供的網域、使用者名稱和密碼登入後,從機器 'buildforge.example.com' 上安裝作業擷取 100 個最近的審核日誌。
    • Windows
      $ bfauditlog.bat -H buildforge.example.com
        -d ExampleLDAP -u apiuser -p "My$ecret" -l 100
    • UNIX 和 Linux
      $ bfauditlog.sh -H buildforge.example.com
        -d ExampleLDAP -u apiuser -p 'My$ecret' -l 100
  4. 此範例會依據鑑別連線之使用者的時區設定,擷取自 2011 年 5 月 23 日當天開始到 2011 年 5 月 27 日當天結束之間所記錄的審核日誌。
    • Windows
      $ bfauditlog.bat "audit.stamp:[2011/05/23 TO 2011/05/27]"
    • UNIX 和 Linux
      $ bfauditlog.sh 'audit.stamp:[2011/05/23 TO 2011/05/27]'
  5. 此範例會針對存取群組層次從舊值的 4、5 或 6 變更為新值 3 的專案,擷取審核日誌。請注意,方括弧是用來表示包含的範圍,所以 '[4 TO 6]' 表示值 4 和 6 皆符合。此外,也請注意,只有在審核原則設為 'DETAILED' 時,才可使用舊層次和新層次值來進行搜尋。
    • Windows
      $ bfauditlog.bat -c Project "ioLevel:[4 TO 6] AND inLevel:3"
    • UNIX 和 Linux
      $ bfauditlog.sh -c Project 'ioLevel:[4 TO 6] AND inLevel:3'
  6. 此範例會針對存取群組層次從舊值的 4 或 5 變更為新值 2 或 3 的專案,擷取審核日誌。請注意,大括弧是用來表示不包含的範圍,所以 '{3 TO 6}' 表示值 3 和 6 不符合。此外,也請注意,只有在審核原則設為 'DETAILED' 時,才可使用舊層次和新層次值來進行搜尋。
    • Windows
      $ bfauditlog.bat -c Project "ioLevel:{3 TO 6} AND inLevel:(2 OR 3)"
    • UNIX 和 Linux
      $ bfauditlog.sh -c Project 'ioLevel:{3 TO 6} AND inLevel:(2 OR 3)'
  7. 下列範例限制查詢結果,僅查詢審核使用者 rootsv,並以 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 選項來列出您可用的類別。

欄位

欄位代表指派給每筆審核日誌記錄的資訊。

審核日誌記錄中的部分欄位將反映其狀態(o 代表舊,n 代表新,x 代表延伸),以及其資料類型(s 代表字串,i 代表整數)。範例:

  soDescription:舊專案說明(字串)
	snDescription:新專案說明(字串)
	soSelectorUuid:舊選取元的 UUID(字串)
	snSelectorUuid:新選取元的 UUID(字串)
	ioRunLimit:舊執行限制(整數)
	inRunLimit:新執行限制(整數)

意見