將度量值串流至 Kafka 服務
您可以使用 IBM Cloud® Monitoring,將一組選取的度量值推送至 Kafka 服務,例如 Event Streams。
您需要配置:
-
要在已定義範圍內匯出的度量值。
度量名稱和範圍以 PromQL 格式指定。
-
資料的精度。
例如,10 秒 (10s) 或 1 分鐘 (1m)。 建議的聚集為 1m。
-
供 IBM Cloud Monitoring 用來匯出資料的 Kafka 主題。
先決條件
在管理串流之前,請先檢查下列必備項目:
-
請檢查服務方案的限制。 如需相關資訊,請參閱 限制和配額。
-
確保您有適當的權限。
-
您必須具有 管理員 角色才能配置串流。
-
當您配置串流時,IBM Cloud Monitoring 實例和 Event Streams 實例必須佈建在相同的帳戶中。
-
若要將 IBM Cloud Monitoring 實例連接至 Event Streams 實例,您需要下列資訊:
-
您必須具有 管理員 角色,才能在 IBM Cloud Monitoring 實例中配置串流。 此角色包括 sysdig-monitor.launch.admin IAM 動作角色,可讓使用者執行管理作業 (例如配置串流)。
-
當您配置串流時,Monitoring 實例和 Event Streams 實例必須佈建在相同的帳戶中。
-
若要將 Monitoring 實例連接至 Event Streams 實例,您需要下列資訊:
-
用來呼叫 API 的端點 URL
-
鑑別用的認證
-
-
-
若要在 Event Streams中建立主題,您必須具有 管理員 角色。 此角色包括 messagehub.topic.manage IAM 動作角色,容許應用程式或使用者建立或刪除主題。
-
Monitoring 用來在 Event Streams 中發佈資料的認證必須具有 writer 角色。 此角色包括 messagehub.topic.write IAM 動作角色,可讓應用程式或服務將資料寫入一或多個主題。
-
-
如果您將帳戶配置為透過 IAM 設定來限制已配置 IP 位址的存取權,或者如果帳戶透過 Event Streams 服務的環境定義型限制規則 (CBR) 來限制接受連線的網路位置,則必須將帳戶中的 Monitoring IP 列入允許清單。 如需相關資訊,請參閱 Monitoring 端點 及 Event Streams-限制網路存取權。
這個主題的指示是以使用企業方案為基礎。
透過使用者介面管理串流
配置串流
請完成下列步驟,以透過使用者介面來配置串流:
步驟 1. 在 Event Streams 中建立主題
完成下列步驟,以建立 Event Streams 主題:
-
在使用您的使用者 ID 和密碼登入之後,IBM Cloud 儀表板即會開啟。
-
按一下功能表圖示
> 資源清單。
-
尋找您計劃使用的 Event Streams 實例,並選取它。
-
在 Event Streams 實例主控台中,按一下 管理 > 啟動儀表板。
-
按一下建立主題。
建立主題 -
輸入主題名稱,然後按 下一步。
輸入主題名稱 -
輸入分割區數目,然後按 下一步。
主題由一個以上分割區構成。 分割區是訊息的排序清單。 分割區分佈在分配管理系統之間,以提高主題的可調整性。 您也可以使用這些分割區,在消費者群組的成員之間配送訊息。
輸入分割區數目 -
選取 訊息保留,然後按一下 建立主題。
訊息保留時間定義訊息被刪除前的保留時間。 如果消耗者未在此時間內讀取訊息,則會遺失這些訊息。
步驟 2. 建立認證以向 Event Streams 鑑別監視實例
您需要下列資訊,才能將 Monitoring 實例連接至 Event Streams 實例:
- 用來呼叫 API 的端點 URL
- 鑑別用的認證
完成下列步驟,以建立 Monitoring 實例與 Event Streams 實例通訊所需的服務認證:
-
在 IBM Cloud中,按一下 功能表 圖示
> 資源清單。
-
尋找您計劃使用的 Event Streams 實例,並選取它。
-
在 Event Streams 主控台中,按一下 服務認證。
-
選擇 New credential(新增憑證 )。
-
輸入名稱並選取 writer 角色。
建立認證 -
按一下新增。
若要限制存取 1 個主題,請完成下列步驟:
-
從功能表列,按一下管理 > 存取 (IAM),然後選擇服務 ID。
選取服務 ID -
選取服務 ID。
-
選取 存取原則。
-
選取原則並修改它以指定主題。
編輯原則
修改原則 -
使用 IBM Cloud CLI 取得憑證,並記下 api key 和 broker URL 值。
步驟 3. 在 Monitoring 中配置與 Event Streams 的連線
若要配置 IBM Cloud Monitoring 度量資料串流,請執行下列動作:
-
以具有管理者權限的使用者身分啟動 Web 使用者介面。 如需如何啟動 Web 使用者介面的相關資訊,請參閱導覽至 Web 使用者介面。
-
按一下使用者圖示。 這是具有已登入使用者首字母的圖示。 然後按一下 設定。
-
選取 度量資料串流。
-
按一下新增整合。 即會顯示「新建 Metric Streaming 整合」畫面。
「度量串流整合」畫面 -
指定下列資訊:
- 整合名稱
- 串流設定的名稱。
- 主題
- 接收度量值的 Kafka 主題名稱。
- 分配管理系統
- 以逗點區隔的 Kafka 分配管理系統清單,例如
kafka-2.mh-svc.eu-de.containers.appdomain.cloud:9093,kafka-1.mh-svc.eu-de.containers.appdomain.cloud:9093,kafka-0.mh-svc.eu-de.containers.appdomain.cloud:9093。 請注意,您不得將 URL 含括在"內。 - TLS
- 傳輸層安全 (TLS) 方法。 啟用 TLS 以加密及保護資料傳送。
- 認證
- Monitoring 用來將資料從 Monitoring 實例匯出至 Kafka 伺服器的認證。 您可以選擇使用者和密碼,或 base64 編碼憑證。
認證選項 - 壓縮
- 選擇壓縮類型。 有效選項為:
LZ4、Snappy、Gzip及Zstandard。 如需相關資訊,請參閱 Apache Kafka。
-
按一下 測試連線,以驗證 IBM Cloud Monitoring 與 Kafka 之間的連線已順利配置。
您必須先測試連線,然後再儲存並啟用配置。
-
選取 範圍,並定義要匯出的 度量。
對於 範圍,選取一或多個標籤來過濾已定義的度量值。
指標必須使用指定完整的指標名稱PromQL。
-
按一下儲存。
儲存配置之後,您必須至少等待 30 分鐘,然後串流才會處於作用中狀態。
透過使用者介面啟用或停止串流
您可以從 度量資料串流 頁面啟動及停止度量值串流:
-
以具有管理者權限的使用者身分啟動 Web 使用者介面。 如需如何啟動 Web 使用者介面的相關資訊,請參閱導覽至 Web 使用者介面。
-
按一下使用者圖示。 這是具有已登入使用者首字母的圖示。 然後按一下 設定。
-
選取 度量資料串流。 即會顯示串流配置清單。
串流配置 -
透過切換來啟用或停用串流配置。
使用 API 來管理串流
請完成下列步驟,以透過使用者介面來管理串流:
列出串流配置
使用此方法,可以取得所有現有串流配置的詳細資料。
curl --request GET https://<ENDPOINT>/api/v1/dataStream/configs
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
其中
<ENDPOINT>指出 REST API 呼叫所設定的端點目標。 如需相關資訊,請參閱 監視 REST API 端點。 例如,us-south 中可用實例的公用端點如下:https://us-south.monitoring.cloud.ibm.com/api- 用來向 Monitoring 服務進行鑑別的
<TOKEN>API 記號。 您必須在記號中包含Bearer。 如需相關資訊,請參閱 使用 Monitoring API 記號。
回應將與下列內容類似:
{"dataStreamConfigs":[{"uuid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","enabled":true,"name":"Streaming metrics - demo","type":"kafka"}]}
取得串流配置的詳細資料
使用此方法,可以取得 1 個串流配置的詳細資料。
curl --request GET https://<ENDPOINT>/api/v1/dataStream/configs/<STREAMING_CONFIG_ID>
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
其中
<ENDPOINT>代表 REST API 呼叫所設定的目標端點。 如需相關資訊,請參閱 監視 REST API 端點。 例如,us-south 中可用實例的公用端點如下:https://us-south.monitoring.cloud.ibm.com/api- 用來向 Monitoring 服務進行鑑別的
<TOKEN>API 記號。 您必須在記號中包含Bearer。 如需相關資訊,請參閱 使用 Monitoring API 記號。 <STREAMING_CONFIG_ID>代表您要取得其詳細資料之串流配置的 UUID。
回應將與下列內容類似:
{
"dataStreamConfig": {
"uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"enabled": true,
"name": "Streaming metrics - demo",
"emitterType": "kafka",
"emitterProperties": {
"bootstrap.servers": "kafka-0.mh-svc1.eu-de.containers.appdomain.cloud:9093, kafka-2.mh-svc2-0000.eu-de.containers.appdomain.cloud:9093,kafka-1.mh-svc3.eu-de.containers.appdomain.cloud:9093",
"topic.name": "my-monitoring-topic",
"compression.type": "lz4",
"security.protocol": "SASL_SSL",
"sasl.mechanism": "PLAIN",
"sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"token\" password=\"xxxxxxxxxxxxx\";","ssl.truststore.base64.content":""}},"dataStreamRules":[{"uuid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","enabled":true,"metrics":["kube_daemonset_labels","kube_node_status_condition"],"aggregation":"avg","aggregationSec":10,"scope":"kubernetes.cluster.name = \"mycluster\"",
"dataStreamConfigUuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
]
}
建立串流配置
使用此方法來配置 1 個串流配置,以將一組度量值轉遞至 Event Streams。
curl --request POST https://<ENDPOINT>/api/v1/dataStream/configs
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
-d @streaming-config.json
其中
<ENDPOINT>代表 REST API 呼叫所設定的目標端點。 如需相關資訊,請參閱 監視 REST API 端點。 例如,us-south 中可用實例的公用端點如下:https://us-south.monitoring.cloud.ibm.com/api- 用來向 Monitoring 服務進行鑑別的
<TOKEN>API 記號。 您必須在記號中包含Bearer。 如需相關資訊,請參閱 使用 Monitoring API 記號。
範例 streaming-config.json 檔案如下所示:
{
"dataStreamConfig": {
"enabled": true,
"name": "Streaming metrics config",
"emitterType": "kafka",
"emitterProperties": {
"bootstrap.servers": "kafka-0.mh-svc1.eu-de.containers.appdomain.cloud:9093,kafka-2.mh-svc2.eu-de.containers.appdomain.cloud:9093,kafka-1.mh-svc3.eu-de.containers.appdomain.cloud:9093",
"topic.name": "my-monitoring-topic",
"compression.type": "lz4",
"security.protocol": "SASL_SSL",
"sasl.mechanism": "PLAIN",
"sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"token\" password=\"xxxxxxxxxx\";",
"ssl.truststore.base64.content": ""
}
},
"dataStreamRules": [
{
"enabled": true,
"metrics": [
"kube_daemonset_labels",
"kube_node_status_condition"
],
"aggregation": "avg",
"aggregationSec": 10,
"scope": "kubernetes.cluster.name = \"mycluster\""
}
]
}
更新串流配置
在下列任何 Siuations 中更新串流配置:
- 用來向 Event Streams 進行鑑別的 API 金鑰已輪換、已妥協或需要變更。
- 當您想要透過新增度量值或移除度量值來變更您所串流的度量值時。
- 當您必須變更範圍時。
- 啟用或停用配置的資料串流。
使用此方法來更新 1 個串流配置,以將一組度量值轉遞至 Event Streams。
curl --request PUT https://<ENDPOINT>/api/v1/dataStream/configs/<STREAMING_CONFIG_ID>
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
-d @streaming-config.json
其中
<ENDPOINT>代表 REST API 呼叫所設定的目標端點。 如需相關資訊,請參閱 監視 REST API 端點。 例如,us-south 中可用實例的公用端點如下:https://us-south.monitoring.cloud.ibm.com/api- 用來向 Monitoring 服務進行鑑別的
<TOKEN>API 記號。 您必須在記號中包含Bearer。 如需相關資訊,請參閱 使用 Monitoring API 記號。 <STREAMING_CONFIG_ID>代表串流配置的 UUID。
範例 streaming-config.json 檔案如下所示:
{
"dataStreamConfig": {
"uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"enabled": true,
"name": "Streaming metrics - demo",
"emitterType": "kafka",
"emitterProperties": {
"bootstrap.servers": "kafka-0.mh-svc1.eu-de.containers.appdomain.cloud:9093, kafka-2.mh-svc2-0000.eu-de.containers.appdomain.cloud:9093,kafka-1.mh-svc3.eu-de.containers.appdomain.cloud:9093",
"topic.name": "my-monitoring-topic",
"compression.type": "lz4",
"security.protocol": "SASL_SSL",
"sasl.mechanism": "PLAIN",
"sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"token\" password=\"xxxxxxxxxxxxx\";","ssl.truststore.base64.content":""}},"dataStreamRules":[{"uuid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","enabled":true,"metrics":["kube_daemonset_labels","kube_node_status_condition"],"aggregation":"avg","aggregationSec":10,"scope":"kubernetes.cluster.name = \"mycluster\"",
"dataStreamConfigUuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
]
}
刪除串流配置
使用此方法來刪除 1 個串流配置,該配置會將一組度量值轉遞至 Event Streams。
curl --request DELETE https://<ENDPOINT>/api/v1/dataStream/configs/<STREAMING_CONFIG_ID>
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
其中
<ENDPOINT>代表 REST API 呼叫所設定的目標端點。 如需相關資訊,請參閱 監視 REST API 端點。 例如,us-south 中可用實例的公用端點如下:https://us-south.monitoring.cloud.ibm.com/api- 用來向 Monitoring 服務進行鑑別的
<TOKEN>API 記號。 您必須在記號中包含Bearer。 如需相關資訊,請參閱 使用 Monitoring API 記號。 <STREAMING_CONFIG_ID>代表串流配置的 UUID。
使用 IBM Cloud Monitoring 監視串流
Event Streams 已與 Monitoring 服務整合。Monitoring 提供預設範本,您可以自訂以監視 Event Streams 實例,如何從 Monitoring 串流資料並由訂閱 Event Streams的任何應用程式或服務使用。
請完成下列步驟,以監視 Event Streams 實例:
-
確認您在與 Event Streams 實例相同的地區中有 Monitoring 實例。 此實例必須配置為收集平台度量值。 如需詳細資訊,請參閱 啟用平台指標。
-
在 儀表板 區段中,移至 儀表板範本,然後選取範本 IBM Event Streams (企業)。
-
按一下 建立自訂儀表板來建立範本副本。
您可以使用度量值 Topic bytes in per second 來查看 Monitoring 如何將資料傳送至 Event Streams。
您可以使用度量值 Topic bytes out per second 來查看訂閱 Event Streams的任何應用程式或服務如何耗用資料。
-
(選用) 編輯畫面 主題每秒輸入位元組數。
「編輯」畫面 然後,自訂度量值以查看每個主題的資料。
自訂度量 檢查解析度是否設為 10M。