您可使用Telegraf採集Java應用或Tomcat的監控資料,再通過Log ServiceLogtail將Telegraf資料上傳到MetricStore中,搭建Java應用或Tomcat可視化監控方案。本文以Java應用監控資料為例,介紹如何通過Log Service來完成Java應用資料的採集和可視化。
前提條件
已在伺服器上安裝Java 1.6或以上版本。
已建立Project和MetricStore。具體操作,請參見建立專案Project和建立MetricStore。
使用限制
只有Linux Logtail 0.16.48及以上版本的Logtail支援採集Java應用或Tomcat的監控資料。如果您已在伺服器上安裝舊版本的Logtail,需先升級。具體操作,請參見安裝Logtail(Linux系統)。
步驟一:建立Logtail採集配置
在接入資料地區的監控資料頁簽下,單擊Java應用監控。
此處以接入Java應用監控資料為例,如果您要接入Tomcat監控資料,請選擇Tomcat監控。
選擇目標Project和MetricStore,單擊下一步。
在建立機器組頁簽中。
如果已有可用的機器組,請單擊使用現有機器組。
如果您還沒有可用的機器組,請執行以下操作(以ECS為例)。
在ECS機器頁簽中,通過手動選擇執行個體方式選擇目標ECS執行個體,單擊建立。
具體操作,請參見安裝Logtail(ECS執行個體)。
重要如果您的伺服器是與Log Service屬於不同帳號的ECS、其他雲廠商的伺服器和自建IDC時,您需要手動安裝Logtail。具體操作,請參見安裝Logtail(Linux系統)。手動安裝Logtail後,您必須在該伺服器上手動設定使用者標識。具體操作,請參見配置使用者標識。
安裝完成後,單擊確認安裝完畢。
在建立機器組頁面,輸入名稱,單擊下一步。
Log Service支援建立IP地址機器組和使用者自訂標識機器組,詳細參數說明請參見建立IP地址機器組和建立使用者自訂標識機器組。
確認目標機器組已在應用機器組地區,單擊下一步。
重要建立機器組後立刻應用,可能因為串連未生效,導致心跳為FAIL,您可單擊自動重試。如果還未解決,請參見Logtail機器組無心跳進行排查。
在資料來源設定頁簽中,配置如下參數。
參數名稱
說明
配置名稱
自訂設定Logtail採集配置的名稱。
叢集名稱
自訂設定Tomcat叢集的名稱。
設定該參數後,Simple Log Service會為通過該Logtail採集配置採集到的Tomcat監控資料添加
cluster=叢集名稱
的標籤。重要請確保該叢集名稱唯一,否則可能出現資料衝突。
應用程式名稱
自訂設定應用的名稱。
伺服器列表
添加Tomcat伺服器的資訊,具體配置項說明如下:
地址:Tomcat伺服器的地址。
連接埠:Tomcat伺服器的連接埠號碼,預設為7777。
您可以根據業務需求,添加多台伺服器資訊。
自訂標籤
為採集到的Tomcat監控資料添加自訂標籤,該標籤為索引值對形式。
設定該參數後,Log Service會為通過該Logtail採集配置採集到的Tomcat監控資料添加標籤。
步驟二:配置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中。
如果是普通Java應用,需在Java啟動參數中添加
-javaagent:/etc/ilogtail/telegraf/javaagent/jolokia-jvm.jar=port=7777
。如果是Tomcat,需設定
JAVA_OPTS
環境變數,例如export JAVA_OPTS="-javaagent:/etc/ilogtail/telegraf/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查詢分析頁面進行查詢分析操作,詳情請參見查詢和分析時序資料。
可視化
完成Java應用監控相關配置後,Log Service自動在對應Project中產生名為Java應用監控_叢集名稱的儀錶盤,您可以直接使用該儀錶盤,還可以進行警示設定等操作。
完成Tomcat監控相關配置後,Log Service自動在對應Project中產生名為Tomcat監控_叢集名稱的儀錶盤,您可以直接使用該儀錶盤,還可以進行警示設定等操作。