管理路徑

您可以使用 IBM Cloud® Activity Tracker Event Routing CLI、Activity Tracker Event Routing REST API 和 Terraform 腳本管理帳戶中的路由。 路徑定義規則,指出在區域中遞送哪些審核事件,以及遞送它們的位置。

瞭解路由在您帳戶中的運作方式

請注意路徑的下列相關資訊:

  • 路由在帳戶下是廣域的,並在已部署 IBM Cloud® Activity Tracker Event Routing 的所有地區中進行評估。

  • 可以從任何地區 Activity Tracker Event Routing API 端點存取路徑。

  • 您最多可為一個帳戶設定 10 條路線。

  • 依預設,帳戶已配置 0 個路徑。

  • 您可以為每條路由設定最多 30 條規則。

  • 您最多可以為每一個規則配置 8 個位置。

  • 您可以為每條規則設定最多 3 個目標(target_ids )。

  • 路由是獨立處理的。 如果您有多個路徑具有符合相同事件的規則,則會將該事件傳送至多個目標。

  • 規則會依序處理。 將使用事件相符的第一個相符規則 (例如,location) 來處理事件。 處理事件之後,該路徑定義內的後續規則將不會處理該事件。 如果您想要為其他規則未處理的所有事件指定預設規則,您可以在 routerules 定義中指定規則 ("locations" : ["*"]) 作為最終規則。

  • 如果事件的位置在規則的位置範圍內,則規則會匹配事件。 例如,規則位置 eu-de 將匹配事件位置:eu-de, eu-de-1, eu-de-2,和 eu-de-3。 或規則位置 jp 將匹配日本境內的所有事件。 執行 ibmcloud catalog locations 以查看雲端位置層級。

  • 如果事件不符合任何規則,且未配置預設目標,則會捨棄事件,且不會遞送至任何目標。

  • rules 配置的任何更新都必須包含所有 location 規則。 更新會捨棄現有的規則集,並以指定的配置取代它。

配置路徑之後,最多可能需要 1 小時才能啟用配置。

目標定義了稽核事件的收集位置。 目標可以是 IBM Cloud Object Storage(COS)目標IBM Cloud Logs 目標IBM® Event Streams for IBM Cloud® 目標。 路徑定義將哪些審核事件遞送至目標。

下列範例路由定義將:

  • 將所有 us-southus-eastglobal 事件傳送至 ID 281f78a2-3333-4444-5555-e896f03cb403 所識別的目標
  • 除非在設定中定義了預設目標,否則會捨棄所有其他地區的事件
{
    "id": "959ceeaf-9999-9999-9999-b7ad27a3e109",
    "name": "my-route",
    "crn": "crn:v1:bluemix:public:atracker:us-south:a/xxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:route:959ceeaf-9999-9999-9999-b7ad27a3e109",
    "version": 0,
    "rules": [
        {
            "locations": ["us-south", "us-east", "global"],
            "target_ids": [
                "281f78a2-3333-4444-5555-e896f03cb403"
            ]
        }
    ],
    "created": "0001-01-01T00:00:00Z"
}

審核事件有兩種類型:

若要在路徑中包括廣域事件,請在 locations 清單中指定 global

IAM 存取

您必須授與使用者 IAM 許可權來管理路徑。 如需相關資訊,請參閱 指派對資源的存取權

如果您擁有建立政策和授權的 IAM 權限,則您只能授予您作為目標服務使用者所擁有的存取等級。 例如,如果您對目標服務擁有「檢視者」權限,則在授權時僅能指派「檢視者」角色。 如果您嘗試指派較高的權限(例如管理員),可能會顯示已授予權限,但只會指派您對目標服務擁有的最高等級權限(即檢視者)。

當您定義原則時,必須將原則的範圍設為帳戶。 路徑是未連結至特定區域的廣域資源。

Required IAM roles
IAM 動作 IAM 原則範圍 IAM 角色 說明
atracker.route.read 帳戶 Administrator
Editor
Viewer
Operator
讀取 (檢視) 路徑的相關資訊
atracker.route.create 帳戶 Administrator
Editor
建立路徑
atracker.route.update 帳戶 Administrator
Editor
更新路徑
atracker.route.delete 帳戶 Administrator
Editor
刪除路徑
atracker.route.list 帳戶 Administrator
Editor
Viewer
Operator
列出所有路徑

CLI 必要條件

在使用 CLI 來管理路徑之前,請在本端系統中安裝最新的 Activity Tracker Event Routing CLI V2 外掛程式。 請參閱 安裝 Activity Tracker Event Routing CLI

接下來,登入 IBM Cloud。 執行下列指令: ibmcloud login

使用 CLI 建立路徑

請使用這個指令來建立 Activity Tracker Event Routing 目標的新路徑。

ibmcloud atracker route create --name ROUTE_NAME  ( --target-ids TARGETS  [--locations REGIONS] | --rules RULES | --file RULES_DEFINITION_JSON_FILE ) [--output FORMAT]

指令選項

--name ROUTE_NAME

要提供給路徑的名稱。

請勿在任何資源名稱中包含任何個人識別資訊 (PII)。

--file RULES_DEFINITION_JSON_FILE

包含路徑規則定義的 JSON 檔案。 檔案需要格式化如下:

[
  {
    "locations": ["LOCATION1","LOCATION2"],
    "target_ids": ["TARGET_ID1","TARGET_ID2"]
  }
]
--rules RULES

以單引號括住的 JSON 格式規則定義。 例如:

--rules '[{"locations":["global"],"target_ids":["11111111-1111-1111-1111-111111111111"]},{"locations":["us-south","us-east"],"target_ids":["22222222-2222-2222-2222-222222222222","33333333-3333-3333-3333-333333333333"]}]'
--locations LOCATIONS

與行駛路線相關聯的位置清單。 指定 global 以包括廣域事件。 如果要併入所有位置,請指定 *。 如果您有多個規則,以及一個具有 * 位置的規則,則其他規則會將事件遞送至指定的目標,而任何不符合任何其他規則的事件會將其餘事件遞送至具有 * 位置之規則指定的目標。

--target-ids TARGET_ID

以逗號分隔的目標 ID 清單。

--output FORMAT

如果指定 JSON,則會以 JSON 格式傳回輸出。 若未指定 JSON ,輸出將以表格格式呈現。

help | --help | -h

列出指令可用的選項。

範例

下列範例使用 ibmcloud atracker route create --name dev-eu-de-route --target_ids 33333333-3333-3333-3333-333333333333 --locations us-south 指令來建立具有 1 個遞送規則的路由。

OK
Route
Name:                    dev-eu-de-route
ID:                      44444444-4444-4444-4444-444444444444
CRN:                     crn:v1:staging:public:atracker:eu-de:a/11111111111111111111111111111111::route:44444444-4444-4444-4444-444444444444
Version:                 0
Rules:                   [locations: [us-south], target_ids: [33333333-3333-3333-3333-333333333333]]
Created:                 2022-02-24T21:10:09.996Z
Updated:                 2022-02-24T21:10:09.996Z

使用 CLI 更新路徑

使用這個指令來更新 Activity Tracker Event Routing 目標的路徑。 與最初建立路徑時不同的任何指定值都會更新為指令中指定的值。

ibmcloud atracker route update --route ROUTE [--name ROUTE_NAME] [--force] ( [--target-ids TARGETS]  [--locations REGIONS] | [--rules RULES] | [--file RULES_DEFINITION_JSON_FILE] ) [--output FORMAT] [--output FORMAT]

指令選項

--route ROUTE

該路線的現有名稱或識別碼。

--name ROUTE_NAME

要提供給路徑的更新名稱 (選用)。

請勿在任何資源名稱中包含任何個人識別資訊 (PII)。

--file RULES_DEFINITION_JSON_FILE

包含路徑規則定義的 JSON 檔案。 檔案需要格式化如下:

[
  {
    "location": ["LOCATIONS"],
    "target_ids": ["TARGET_ID"]
  }
]
--rules RULES

以單引號括住的 JSON 格式規則定義。 例如:

--rules '[{"locations":["global"],"target_ids":["11111111-1111-1111-1111-111111111111"]},{"locations":["us-south","us-east"],"target_ids":["22222222-2222-2222-2222-222222222222","33333333-3333-3333-3333-333333333333"]}]'
--locations LOCATIONS

與行駛路線相關聯的位置清單。 指定 global 以包括廣域事件。 如果要併入所有位置,請指定 *。 如果您有多個規則,以及一個具有 * 位置的規則,則其他規則會將事件遞送至指定的目標,而任何不符合任何其他規則的事件會將其餘事件遞送至具有 * 位置之規則指定的目標。

--target-ids TARGET_ID

以逗號分隔的目標 ID 清單。

--output FORMAT

如果指定 JSON,則會以 JSON 格式傳回輸出。 若未指定 JSON ,輸出將以表格格式呈現。

--force

將刪除路徑,而不提供任何其他提示給使用者。

help | --help | -h

列出指令可用的選項。

範例

下列是使用 ibmcloud atracker route update --route dev-eu-de-route --target_ids 55555555-5555-5555-5555-555555555555 --locations * 指令的範例。

OK
Route
Name:                    dev-eu-de-route
ID:                      44444444-4444-4444-4444-444444444444
CRN:                     crn:v1:staging:public:atracker:eu-de:a/11111111111111111111111111111111::route:44444444-4444-4444-4444-444444444444
Version:                 1
Rules:                   [locations: [*], target_ids: [55555555-5555-5555-5555-555555555555]]
Created:                 2022-02-24T21:10:09.996Z
Updated:                 2022-02-24T21:13:37.218Z

使用 CLI 刪除路徑

請使用此指令刪除一個「Activity Tracker Event Routing」路由。

ibmcloud atracker route rm --route ROUTE [--force]

指令選項

--route ROUTE
要刪除之路徑的名稱或 ID。
--force
將刪除路徑,而不提供任何其他提示給使用者。
help | --help | -h
列出指令可用的選項。

範例

下列是使用 ibmcloud atracker route rm --route 44444444-4444-4444-4444-444444444444 指令的範例。

Are you sure you want to remove the route with the Route ID 44444444-4444-4444-4444-444444444444? [y/N]> y
OK
Route with route ID 44444444-4444-4444-4444-444444444444 was successfully removed.

下列是使用 ibmcloud atracker route rm --route 33333333-3333-3333-3333-333333333333 指令的範例。

此範例顯示找不到指定路徑的失敗指令。

FAILED
No route found with route name - 33333333-3333-3333-3333-333333333333

使用 CLI 檢視路徑

請使用這個指令來取得 Activity Tracker Event Routing 路徑的相關資訊。

ibmcloud atracker route get --route ROUTE [--output FORMAT]

指令選項

--route <ROUTE_ID>
路徑的名稱或 ID。
--output FORMAT
如果指定 JSON,則會以 JSON 格式傳回輸出。 若未指定 JSON ,輸出將以表格格式呈現。
help | --help | -h
列出指令可用的選項。

範例

下列是使用 ibmcloud atracker route get --route 44444444-4444-4444-4444-444444444444 指令的範例。

OK
Route
Name:                    dev-eu-de-route-0
ID:                      44444444-4444-4444-4444-444444444444
CRN:                     crn:v1:staging:public:atracker:eu-de:a/11111111111111111111111111111111::route:44444444-4444-4444-4444-444444444444
Version:                 2
Rules:                   [locations: [us-south], target_ids: [55555555-5555-5555-5555-555555555555]]
Created:                 2022-02-24T21:10:09.996Z
Updated:                 2022-02-24T21:15:07.281Z

使用 CLI 列出所有路徑

使用這個指令來列出 Activity Tracker Event Routing 的所有已配置路徑。

ibmcloud atracker route ls [--output FORMAT]

指令選項

--output FORMAT
如果指定 JSON,則會以 JSON 格式傳回輸出。 若未指定 JSON ,輸出將以表格格式呈現。
help | --help | -h
列出指令可用的選項。

範例

以下是使用 ibmcloud atracker route ls 指令的範例,該指令會傳回所有地區的路徑。

Name                      ID                                     Rules                                              Route Version   API version   CreatedAt                  UpdatedAt
my-global-route           aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa   [[11111111-1111-1111-1111-111111111111],[global]]  5               2             2022-05-04T20:18:00.595Z   2022-05-05T19:04:58.374Z
send-all-to-us-east       bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb   [[22222222-2222-2222-2222-222222222222],[*]]       0               2             2022-05-06T12:02:47.832Z   2022-05-06T12:02:47.832Z

API 路徑和動作

下表列出了可用於管理路由的操作:

使用Activity Tracker Event Routing REST API 定位操作
動作 REST API 方法 API_URL
建立路徑 POST <ENDPOINT>/api/v2/routes
更新路徑 PUT <ENDPOINT>/api/v2/routes/<ROUTE_ID>
刪除路徑 DELETE <ENDPOINT>/api/v2/routes/<ROUTE_ID>
查詢路線資訊 GET <ENDPOINT>/api/v2/routes/<ROUTE_ID>
列出所有路徑 GET <ENDPOINT>/api/v2/routes

您可以使用專用及公用端點來管理路徑。 如需可用的 ENDPOINTS 清單的相關資訊,請參閱 端點

  • 您可以使用下列格式的 API 端點來管理來自專用網路的路徑: https://private.REGION.atracker.cloud.ibm.com

  • 您可以使用下列格式的 API 端點,從公用網路管理路徑: https://REGION.atracker.cloud.ibm.com

  • 由於路徑是廣域配置,您可以使用任何地區端點來管理帳戶的路徑。

  • 您可以透過更新帳戶設定來停用公用端點。 如需相關資訊,請參閱 配置目標和區域設定

如需 REST API 的相關資訊,請參閱 路徑

API 必備項目

若要發出 API 呼叫來管理路徑,請完成下列步驟:

  1. 取得 IAM 存取憑證。 如需相關資訊,請參閱 擷取 IAM 存取記號
  2. 識別您計劃在其中配置或管理路徑的地區中的 API 端點。 如需相關資訊,請參閱 端點

使用 API 建立路徑

您必須先 建立目標,然後才能建立路徑。

您可以使用下列 cURL 指令來建立路徑:

curl -X POST  <ENDPOINT>/api/v2/routes   -H "Authorization:  $ACCESS_TOKEN"   -H "content-type: application/json"  -d '{
    "name": "ROUTE_NAME",
    "rules": [
      {
        "locations": ["LOCATIONS"],
        "target_ids": ["TARGET_ID"]
      }
    ]
  }'

其中

  • <ENDPOINT> 是您計劃在其中配置或管理路徑的地區中的 API 端點。 如需相關資訊,請參閱 端點

  • ROUTE_NAME 是路徑的名稱。 名稱的長度上限為 180 個字元,且不能包含下列任何特殊字元:-._:

    請勿在任何資源名稱中包含任何個人識別資訊 (PII)。

  • LOCATIONS 是與行駛路線相關聯的位置清單。 指定 global 以包括廣域事件。 如果要併入所有位置,請指定 *。 如果您有多個規則,以及一個具有 * 位置的規則,則其他規則會將事件遞送至指定的目標,而任何不符合任何其他規則的事件會將其餘事件遞送至具有 * 位置之規則指定的目標。

  • TARGET_ID 是目標的 GUID,定義遞送及收集審核事件的位置。 這可以包括其他地區中目標的 GUID。 如果 TARGET_ID 是空的,則會捨棄任何符合規則的事件。

例如,您可以使用下列 cURL 要求來建立路徑,以定義如何在帳戶中收集及遞送廣域及美國南方位置型事件:

curl -X POST   https://private.us-south.atracker.cloud.ibm.com/api/v2/routes   -H "Authorization:  $ACCESS_TOKEN"   -H "content-type: application/json"  -d '{
    "name": "my-route",
    "rules": [
      {
        "locations": ["us-south", "global"],
        "target_ids": ["22222222-2222-2222-2222-222222222222"]
      }
    ]
  }'

在回應中,您會取得路徑的相關資訊,例如 id,指出路徑的 GUID,以及 crn,指出路徑的 CRN。

使用 API 更新路徑

當您更新路徑時,必須在要求的資料區段中包含路徑資訊。

  • 您必須傳遞所有欄位。
  • 更新需要變更的欄位。

您可以使用下列 cURL 指令來更新路徑:

curl -X PUT  <ENDPOINT>/api/v2/routes/<ROUTE_ID>   -H "Authorization:  $ACCESS_TOKEN"   -H "content-type: application/json"  -d '{
    "name": "ROUTE_NAME",
    "rules": [
      {
        "locations": ["LOCATIONS"],
        "target_ids": ["TARGET_ID"]
      }
    ]
  }'

其中

  • <ENDPOINT> 是您計劃在其中配置或管理路徑的地區中的 API 端點。 如需相關資訊,請參閱 端點

  • <ROUTE_ID> 是要更新之路徑的 ID

  • ROUTE_NAME 是路徑的名稱。 名稱的長度上限為 180 個字元,且不能包含下列任何特殊字元:-._:

    請勿在任何資源名稱中包含任何個人識別資訊 (PII)。

  • LOCATIONS 是與行駛路線相關聯的位置清單。 指定 global 以包括廣域事件。 如果要併入所有位置,請指定 *。 如果您有多個規則,以及一個具有 * 位置的規則,則其他規則會將事件遞送至指定的目標,而任何不符合任何其他規則的事件會將其餘事件遞送至具有 * 位置之規則指定的目標。

  • TARGET_ID 是目標的 GUID,定義遞送及收集審核事件的位置。 這可以包括其他地區中目標的 GUID。 如果 TARGET_ID 是空的,則會捨棄任何符合規則的事件。

例如,您可以使用下列 cURL 要求來更新路徑,以定義如何在帳戶中收集及遞送廣域及美國南部及美國東部位置型事件:

curl -X PUT https://private.us-south.atracker.cloud.ibm.com/api/v2/routes/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa   -H "Authorization:  $ACCESS_TOKEN"   -H "content-type: application/json"  -d '{
    "name": "my-route",
    "rules": [
      {
        "locations": ["us-south", "global", "us-east],
        "target_ids": ["22222222-2222-2222-2222-222222222222"]
      }
    ]
  }'

使用 API 刪除路徑

您可以使用下列 cURL 指令來刪除路徑:

curl -X DELETE   <ENDPOINT>/api/v2/routes/<ROUTE_ID>   -H "Authorization:  $ACCESS_TOKEN"   -H "content-type: application/json"

其中

  • <ENDPOINT> 是您計劃在其中配置或管理路徑的地區中的 API 端點。 如需相關資訊,請參閱 端點
  • <ROUTE_ID> 是要刪除之路徑的 ID

例如,您可以執行下列 cURL 要求,以刪除 ID 為 aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa 的路徑:

curl -X DELETE  https://private.us-south.atracker.cloud.ibm.com/api/v2/routes/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa -H "Authorization:  $ACCESS_TOKEN"   -H "content-type: application/json"

使用 API 檢視路徑

您可以使用下列 cURL 指令來檢視 1 個路徑:

curl -X GET   <ENDPOINT>/api/v2/routes/<ROUTE_ID>   -H "Authorization:  $ACCESS_TOKEN"   -H "content-type: application/json"

其中

  • <ENDPOINT> 是您計劃在其中配置或管理路徑的地區中的 API 端點。 如需相關資訊,請參閱 端點
  • <ROUTE_ID> 是要提取之路徑的 ID

例如,您可以執行下列 cURL 要求,以取得 ID 為 aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa 之路徑的相關資訊:

curl -X GET   https://private.us-south.atracker.cloud.ibm.com/api/v2/routes/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa    -H "Authorization:  $ACCESS_TOKEN"   -H "content-type: application/json"

使用 API 列出地區中的所有路徑

您可以使用下列 cURL 指令來檢視所有路徑:

curl -X GET   <ENDPOINT>/api/v2/routes   -H "Authorization:  $ACCESS_TOKEN"   -H "content-type: application/json"

其中

  • <ENDPOINT> 是您計劃在其中配置或管理路徑的地區中的 API 端點。 如需相關資訊,請參閱 端點

例如,您可以執行下列 cURL 要求,以取得在美國南部中定義之路由的相關資訊:

curl -X GET   https://private.us-south.atracker.cloud.ibm.com/api/v2/routes    -H "Authorization:  $ACCESS_TOKEN"   -H "content-type: application/json"

HTTP 回應碼

當您使用 Activity Tracker Event Routing REST API 時,您可以取得標準的 HTTP 回應代碼,以表示方法是否成功完成。

  • 200 回應一律表示成功。
  • 4xx 回應指出失敗。
  • 5xx 回應通常指出內部系統錯誤。

請參閱下表中的一些 HTTP 回應代碼:

HTTP 回應代碼清單
狀態碼 狀態 說明
200 OK 已順利完成要求。
201 OK 已順利完成要求。 已建立資源。
400 要求不正確 要求未順利完成。 您可能遺漏必要的參數。
401 未獲授權 API 要求中使用的 IAM 記號無效或已過期。
403 禁止 由於權限不足,禁止作業。
404 找不到 所要求的資源不存在或已刪除。
429 太多要求 太多要求太快命中 API。
500 內部伺服器錯誤 Activity Tracker Event Routing 處理程序中發生錯誤。

使用使用者介面建立路線

  1. 登入 IBM Cloud 帳戶
  2. 點擊「選單」圖示選單圖示 > 可觀測性
  3. 選擇「活動追蹤」。
  4. 選取 路徑
  5. 按一下 建立 以開啟建立頁面。
  6. 輸入路徑的有意義名稱。
  7. 遞送規則中,修改 規則 1:
    • 傳送審核事件來源: 選取將符合此規則的審核事件位置。
    • 目標: 選取將附加至此規則的目標。 按一下 新增目標,以將更多目標新增至規則。
  8. 按一下 新增規則,以將其他規則新增至路徑。
    • 遞送規則的順序會影響遞送行為。 規則會依序處理,一旦符合規則,就不會處理後續的規則。
  9. 每一個規則都有一個向上及向下箭頭,可讓您變更規則順序。
  10. 每一個規則都有一個 移除 按鈕,可讓您從路徑中刪除規則。
  11. 請檢閱路徑定義,確定規則的順序符合預期。
  12. 按一下建立

使用使用者介面更新路徑

  1. 登入 IBM Cloud 帳戶
  2. 點擊「選單」圖示選單圖示 > 可觀測性
  3. 選擇「活動追蹤」。
  4. 選取 路徑
  5. 決定要更新的路徑,然後按一下 動作圖示
  6. 按一下 重新命名 以重新命名路由。
  7. 按一下 編輯 以更新路由規則。
  8. 如果需要,請編輯現有規則:
    • 傳送審核事件來源: 選取將符合此規則的審核事件位置。
    • 目標: 選取將附加至此規則的目標。 按一下 新增目標,以將更多目標新增至規則。
  9. 按一下 新增規則,以將其他規則新增至路徑。
    • 遞送規則的順序會影響遞送行為。 規則會依序處理,一旦符合規則,就不會處理後續的規則。
  10. 每一個規則都有一個向上及向下箭頭,可讓您變更規則順序。
  11. 每一個規則都有一個 移除 按鈕,可讓您從路徑中刪除規則。
  12. 按一下 更新,以變更您的路徑。

使用使用者介面檢視路由

  1. 登入 IBM Cloud 帳戶
  2. 點擊「選單」圖示選單圖示 > 可觀測性
  3. 選擇「活動追蹤」。
  4. 選取 路徑
  5. 路由表依建立日期排序。 路徑的順序不會影響遞送行為。
  6. 每一個路由區塊都會顯示路由名稱及規則。
  7. 遞送頁面也會顯示 遞送指引,以及配置遞送的其他相關資訊。

使用使用者介面刪除路徑

  1. 登入 IBM Cloud 帳戶
  2. 點擊「選單」圖示選單圖示 > 可觀測性
  3. 選擇「活動追蹤」。
  4. 選取 路徑
  5. 決定要更新的路徑,然後按一下 動作圖示
  6. 按一下 刪除,以刪除整個路由。 在刪除路徑之前,您必須先輸入路徑名稱。