全部產品
Search
文件中心

Simple Log Service:接入Kafka監控資料

更新時間:Jul 22, 2024

您可使用Telegraf採集Kafka監控資料,再通過Log ServiceLogtail將Telegraf資料上傳到MetricStore中,搭建Kafka可視化監控方案。本文介紹如何通過Log Service來完成Kafka監控資料的採集和可視化。

前提條件

使用限制

只有Linux Logtail 0.16.48及以上版本的Logtail支援採集Kafka監控資料。如果您已在伺服器上安裝舊版本的Logtail,需先升級。具體操作,請參見安裝Logtail(Linux系統)

步驟一:建立Logtail採集配置

  1. 登入Log Service控制台

  2. 接入資料地區的監控資料頁簽下,單擊Kafka監控

  3. 選擇目標Project和MetricStore,單擊下一步

  4. 建立機器組頁簽中。

    • 如果已有可用的機器組,請單擊使用現有機器組

    • 如果您還沒有可用的機器組,請執行以下操作(以ECS為例)。

      1. ECS機器頁簽中,通過手動選擇執行個體方式選擇目標ECS執行個體,單擊建立

        具體操作,請參見安裝Logtail(ECS執行個體)

        重要

        如果您的伺服器是與Log Service屬於不同帳號的ECS、其他雲廠商的伺服器和自建IDC時,您需要手動安裝Logtail。具體操作,請參見安裝Logtail(Linux系統)。手動安裝Logtail後,您必須在該伺服器上手動設定使用者標識。具體操作,請參見配置使用者標識

      2. 安裝完成後,單擊確認安裝完畢

      3. 建立機器組頁面,輸入名稱,單擊下一步

        Log Service支援建立IP地址機器組和使用者自訂標識機器組,詳細參數說明請參見建立IP地址機器組建立使用者自訂標識機器組

  5. 確認目標機器組已在應用機器組地區,單擊下一步

    重要

    建立機器組後立刻應用,可能因為串連未生效,導致心跳為FAIL,您可單擊自動重試。如果還未解決,請參見Logtail機器組無心跳進行排查。

  6. 資料來源設定頁簽中,配置如下參數。

    參數名稱

    說明

    配置名稱

    自訂設定Logtail採集配置的名稱。

    叢集名稱

    自訂設定Kafka叢集的名稱。

    設定該參數後,Log Service會為通過該Logtail採集配置採集到的Kafka監控資料添加cluster=叢集名稱的標籤。

    重要

    請確保該叢集名稱唯一,否則可能出現資料衝突。

    伺服器列表

    設定Kafka伺服器資訊,具體配置項說明如下:

    • 地址:Kafka伺服器的地址,支援IP地址、主機名稱或網域名稱。

    • 連接埠:Kafka伺服器的連接埠號碼,預設為7777。

    您可以根據業務需求,添加多台Kafka伺服器的資訊。

    自訂標籤

    為採集到的Kafka監控資料添加自訂標籤,該標籤為索引值對形式。

    設定該參數後,Log Service會為通過該Logtail採集配置採集到的Kafka監控資料添加標籤。

    設定完成後,Simple Log Service將自動產生Metricstore等資產。更多資訊,請參見資產說明

步驟二:配置JavaAgent

完成Logtail採集配置後,您還需要將JMX協議轉換為HTTP協議。Log Service支援使用Jolokia將JMX協議轉換為HTTP協議。您可以按照Jolokia官方文檔下載及載入Jolokia,也可以使用Log ServiceLogtail內建的Jolokia JavaAgent。Logtail內建的Jolokia JavaAgent位於/etc/ilogtail/telegraf/javaagent/jolokia-jvm.jar中。

您需要在kafka所在機器上設定KAFKA_JVM_PERFORMANCE_OPTS環境變數,例如export KAFKA_JVM_PERFORMANCE_OPTS=-javaagent:/etc/ilogtail/telegraf/javaagent/jolokia-jvm.jar=port=7777,其中7777為伺服器的連接埠號碼,與步驟一:建立Logtail採集配置中配置的連接埠號碼保持一致。

說明

預設Jolokia JavaAgent只在127.0.0.1上監聽,即只允許本機請求。如果您的Logtail和被監控的應用不在相同的機器上,您可以在添加的指令碼中補充host=欄位,使其可監聽其他IP地址。如果設定為host=0.0.0.0,則表示監聽所有IP地址。相關命令如下所示:

-javaagent:/tmp/jolokia-jvm.jar=port=7777,host=0.0.0.0

設定完成後,需重啟應用。如果您暫時無法重啟應用,可使用如下命令將Jolokia JavaAgent串連到指定的Java進程,實現即時生效。其中進程PID請根據實際值替換。

說明

該操作僅用於測試,請確保按照上述操作完成配置,否則重啟後將失效。

java -jar /etc/ilogtail/telegraf/javaagent/jolokia-jvm.jar --port 7777 start 進程PID

如果返回如下資訊則表示串連成功。

Jolokia is already attached to PID 752
http://127.0.0.1:7777/jolokia/

串連成功後,您可以訪問該URL,驗證串連是否正常。

curl http://127.0.0.1:7777/jolokia/
# 返回參考
{"request":{"type":"version"},"value":{"agent":"1.6.2","protocol":"7.2","config":{"listenForHttpService":"true","maxCollectionSize":"0","authIgnoreCerts":"false","agentId":"30.**.**.186-752-5b091b5d-jvm","debug":"false","agentType":"jvm","policyLocation":"classpath:\/jolokia-access.xml","agentContext":"\/jolokia","serializeException":"false","mimeType":"text\/plain","maxDepth":"15","authMode":"basic","authMatch":"any","discoveryEnabled":"true","streaming":"true","canonicalNaming":"true","historyMaxEntries":"10","allowErrorDetails":"true","allowDnsReverseLookup":"true","realm":"jolokia","includeStackTrace":"true","maxObjects":"0","useRestrictorService":"false","debugMaxEntries":"100"},"info":{"product":"tomcat","vendor":"Apache","version":"8.5.57"}},"timestamp":1602663330,"status":200}⏎

常見問題

如何查看Telegraf採集是否正常?

您可以在伺服器上查看/etc/ilogtail/telegraf/telegraf.log檔案中記錄的日誌進行判斷,還可以將該日誌採集到Log Service中進行查詢。

後續步驟

  • 查詢分析

    配置完成後,Telegraf將採集到的監控資料通過Logtail上傳到Log ServiceMetricStore中。您可以在MetricStore查詢分析頁面進行查詢分析操作,詳情請參見查詢和分析時序資料

  • 可視化

    配置完成後,Log Service自動在對應Project中產生名為kafka監控_叢集名稱的儀錶盤,您可以直接使用該儀錶盤,還可以進行警示設定等操作。