博客 / 詳情

返回

本地快速搭建Kibana集成OpenTelemetry實現分佈式日誌追蹤

本文基於windows 11系統進行組件實例的部署(非fleet),Elasticsearch、Kibana版本均採用目前最新的版本8.13.0。

*注意:Elastic的OpenTelemetry Collector Exporter在 7.13 中被棄用,取而代之的是Elastic Observability(OTLP)中對OpenTelemetry Line Protocol的原生支持。這導致一些配置項的不同,具體版本請查看官方文檔。

Step 1:部署Elasticsearch

啓動ES之前,先運行命令設置各組件的密碼,Kibana默認連接ES時需要用户名密碼,否則會閃退。

.\bin\elasticsearch-setup-passwords.bat interactive

這裏建議用PowerShell以終端的形式運行啓動腳本,這樣可以看到報錯日誌。

config目錄下的elasticsearch.yml配置文件無需其他更改,輸入.\bin\elasticsearch.bat啓動ES,可訪問http://localhost:9200查看是否啓動成功。

Step 2:部署Kibana

啓動Kibana之前,先在配置文件中修改ES的密碼:

elasticsearch.username: "kibana_system"
elasticsearch.password: "password"

輸入命令 .\bin\kibana.bat啓動Kibana,這時已經可以通過http://127.0.0.1:5601進入Kibana界面

Step 3:部署apm-server

首先,在Kibana上添加集成APM:Add integrations > Elastic APM,按照提示步驟操作即可。

通過.\install-service.ps1安裝apm-server,如果因為權限問題報錯,可嘗試:

PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service.ps1

配置文件apm-server.yml

apm-server:
  host: "127.0.0.1:8200"
output.elasticsearch:
  hosts: ["localhost:9200"]
  username: "elastic"
  password: "password"

運行./apm-server -e啓動apm-server,-e可以顯示運行日誌。

在Kibana的APM頁面也可以檢測APM是否啓動成功:Check APM Server status

Step 4:Java項目集成APM Agent和OpenTelemetry

只需要下載elastic-apm-agent-1.48.1.jar和opentelemetry-javaagent-1.28.0.jar到本地,添加以下VM options

-javaagent:path/to/opentelemetry-javaagent-1.28.0.jar
-Dotel.traces.exporter=otlp
-Dotel.exporter.otlp.endpoint=http://127.0.0.1:8200
-Dotel.resource.attributes=service.name=service-name,env=local
-javaagent:path/to/elastic-apm-agent-1.48.1.jar
-Delastic.apm.service_name=local-apm-service
-Delastic.apm.application_packages=local-package
-Delastic.apm.server_url=http://127.0.0.1:8200

otel.traces.exporter:表示traces跟蹤日誌的協議

otel.exporter.otlp.endpoint:日誌收集器的地址端口

elastic.apm.server_url:日誌收集器APM的地址端口

啓動後可以在Kibana的APM頁面最下面檢測APM Agent是否啓動成功。

此時,調用項目接口,就可以在Kibana上看到traces記錄。

總結

整個搭建過程,Elasticsearch提供了數據的存儲,Kibana作為數據頁面的展示,Kibana集成APM後可以收集APM agent作為數據收集器提供的數據,而OpenTelemetry則負責在項目系統內生成數據。

參考文檔

https://www.elastic.co/guide/en/observability/current/apm-ins...

user avatar an_653b347d1d3da 頭像 codingdgsun 頭像 cunyu1943 頭像
3 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.