將度量值串流至 Kafka 服務

您可以使用 IBM Cloud® Monitoring,將一組選取的度量值推送至 Kafka 服務,例如 Event Streams。

您需要配置:

  • 要在已定義範圍內匯出的度量值。

    度量名稱和範圍以 PromQL 格式指定。

  • 資料的精度。

    例如,10 秒 (10s) 或 1 分鐘 (1m)。 建議的聚集為 1m。

  • 供 IBM Cloud Monitoring 用來匯出資料的 Kafka 主題。

先決條件

在管理串流之前,請先檢查下列必備項目:

  • 建立 Event Streams 實例。

  • 請檢查服務方案的限制。 如需相關資訊,請參閱 限制和配額

  • 確保您有適當的權限。

    • 您必須具有 管理員 角色才能配置串流。

    • 當您配置串流時,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 主題:

  1. 登入 IBM Cloud 帳戶

    在使用您的使用者 ID 和密碼登入之後,IBM Cloud 儀表板即會開啟。

  2. 按一下功能表圖示功能表圖示 > 資源清單

  3. 尋找您計劃使用的 Event Streams 實例,並選取它。

  4. 在 Event Streams 實例主控台中,按一下 管理 > 啟動儀表板

  5. 按一下建立主題

    建立主題
    建立主題

  6. 輸入主題名稱,然後按 下一步

    建立主題第 2 部分。
    輸入主題名稱

  7. 輸入分割區數目,然後按 下一步

    主題由一個以上分割區構成。 分割區是訊息的排序清單。 分割區分佈在分配管理系統之間,以提高主題的可調整性。 您也可以使用這些分割區,在消費者群組的成員之間配送訊息。

    建立主題第 3 部分。
    輸入分割區數目

  8. 選取 訊息保留,然後按一下 建立主題

    訊息保留時間定義訊息被刪除前的保留時間。 如果消耗者未在此時間內讀取訊息,則會遺失這些訊息。

步驟 2. 建立認證以向 Event Streams 鑑別監視實例

您需要下列資訊,才能將 Monitoring 實例連接至 Event Streams 實例:

  • 用來呼叫 API 的端點 URL
  • 鑑別用的認證

完成下列步驟,以建立 Monitoring 實例與 Event Streams 實例通訊所需的服務認證:

  1. 在 IBM Cloud中,按一下 功能表 圖示 「功能表」圖示 > 資源清單

  2. 尋找您計劃使用的 Event Streams 實例,並選取它。

  3. 在 Event Streams 主控台中,按一下 服務認證

  4. 選擇 New credential(新增憑證 )。

  5. 輸入名稱並選取 writer 角色。

    建立認證
    建立認證

  6. 按一下新增

若要限制存取 1 個主題,請完成下列步驟:

  1. 從功能表列,按一下管理 > 存取 (IAM),然後選擇服務 ID

    服務 ID
    選取服務 ID

  2. 選取服務 ID。

  3. 選取 存取原則

  4. 選取原則並修改它以指定主題。

    編輯原則
    編輯原則

    修改原則
    修改原則

  5. 使用 IBM Cloud CLI 取得憑證,並記下 api key 和 broker URL 值。

步驟 3. 在 Monitoring 中配置與 Event Streams 的連線

若要配置 IBM Cloud Monitoring 度量資料串流,請執行下列動作:

  1. 以具有管理者權限的使用者身分啟動 Web 使用者介面。 如需如何啟動 Web 使用者介面的相關資訊,請參閱導覽至 Web 使用者介面

  2. 按一下使用者圖示。 這是具有已登入使用者首字母的圖示。 然後按一下 設定

  3. 選取 度量資料串流

  4. 按一下新增整合。 即會顯示「新建 Metric Streaming 整合」畫面。

    「度量串流整合」畫面
    「度量串流整合」畫面

  5. 指定下列資訊:

    整合名稱
    串流設定的名稱。
    主題
    接收度量值的 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 編碼憑證。

    認證選項
    認證選項

    壓縮
    選擇壓縮類型。 有效選項為: LZ4SnappyGzipZstandard。 如需相關資訊,請參閱 Apache Kafka
  6. 按一下 測試連線,以驗證 IBM Cloud Monitoring 與 Kafka 之間的連線已順利配置。

    您必須先測試連線,然後再儲存並啟用配置。

  7. 選取 範圍,並定義要匯出的 度量

    對於 範圍,選取一或多個標籤來過濾已定義的度量值。

    指標必須使用指定完整的指標名稱PromQL。

  8. 按一下儲存

儲存配置之後,您必須至少等待 30 分鐘,然後串流才會處於作用中狀態。

透過使用者介面啟用或停止串流

您可以從 度量資料串流 頁面啟動及停止度量值串流:

  1. 以具有管理者權限的使用者身分啟動 Web 使用者介面。 如需如何啟動 Web 使用者介面的相關資訊,請參閱導覽至 Web 使用者介面

  2. 按一下使用者圖示。 這是具有已登入使用者首字母的圖示。 然後按一下 設定

  3. 選取 度量資料串流。 即會顯示串流配置清單。

    串流配置清單
    串流配置

  4. 透過切換來啟用或停用串流配置。

使用 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 實例:

  1. 確認您在與 Event Streams 實例相同的地區中有 Monitoring 實例。 此實例必須配置為收集平台度量值。 如需詳細資訊,請參閱 啟用平台指標

  2. 啟動 Monitoring 使用者介面

  3. 儀表板 區段中,移至 儀表板範本,然後選取範本 IBM Event Streams (企業)

  4. 按一下 建立自訂儀表板來建立範本副本。

    您可以使用度量值 Topic bytes in per second 來查看 Monitoring 如何將資料傳送至 Event Streams。

    您可以使用度量值 Topic bytes out per second 來查看訂閱 Event Streams的任何應用程式或服務如何耗用資料。

  5. (選用) 編輯畫面 主題每秒輸入位元組數

    「編輯」畫面
    「編輯」畫面

    然後,自訂度量值以查看每個主題的資料。

    自訂度量
    自訂度量

    檢查解析度是否設為 10M