如何基于docker 部署Skywalking
創(chuàng)建網(wǎng)絡
docker network create skywalking-network
docker compose 安裝SkyWalking
docker-compose.yaml文件
version: "3"
services:
# SkyWalking OAP server with Elasticsearch storage
skywalking-oap:
image: apache/skywalking-oap-server:8.9.0
container_name: skywalking-oap
ports:
- "12800:12800"
- "11800:11800"
networks:
- skywalking-network
depends_on:
skywalking-elasticsearch:
condition: service_healthy # 等待ES健康檢查
environment:
- SW_STORAGE=elasticsearch
- TZ=Asia/Shanghai
- SW_STORAGE_ES_CLUSTER_NODES=skywalking-elasticsearch:9200
#volumes:
# - ./oap-config:/skywalking/config # 掛載本地目錄到容器中
# Elasticsearch
skywalking-elasticsearch:
image: elasticsearch:7.16.3
container_name: skywalking-elasticsearch
ports:
- "19200:9200"
- "19300:9300"
networks:
- skywalking-network
environment:
- discovery.type=single-node
- TZ=Asia/Shanghai
- ingest.geoip.downloader.enabled=false # 禁用GeoIP下載
healthcheck: # 添加健康檢查
test: [ "CMD-SHELL", "curl -s http://localhost:9200/_cluster/health | grep -q '\"status\":\"green\"'" ]
interval: 10s
timeout: 10s
retries: 20
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
mem_limit: 2g
#volumes:
# - ./es-data:/usr/share/elasticsearch/data/nodes # 掛載本地目錄到容器中
# SkyWalking UI
skywalking-ui:
image: apache/skywalking-ui:8.9.0
container_name: skywalking-ui
ports:
- "18080:8080"
networks:
- skywalking-network
environment:
- SW_OAP_ADDRESS=http://skywalking-oap:12800
- TZ=Asia/Shanghai
volumes:
- ./ui-config:/app/config # 掛載本地目錄到容器中
networks:
skywalking-network:
external:
name: skywalking-network詳細說明
- Elasticsearch 服務
- 使用
elasticsearch:7.14.0鏡像。 - 啟用單節(jié)點模式,設置 JVM 參數(shù)以優(yōu)化內存使用。
- 啟用安全功能,設置
elastic用戶的密碼。 - 掛載卷
elasticsearch-data以持久化數(shù)據(jù)。 - 映射端口 19200 和 19300。
- 使用
- SkyWalking OAP Server 服務
- 使用
apache/skywalking-oap-server:8.6.0-es7鏡像。 - 配置 Elasticsearch 作為存儲,設置集群節(jié)點地址、用戶名和密碼。
- 映射端口 11800 和 12800。
- 依賴于 Elasticsearch 服務。
- 使用
- SkyWalking UI 服務
- 使用
apache/skywalking-ui:8.6.0鏡像。 - 配置 OAP Server 的地址。
- 映射端口 18080。
- 依賴于 OAP Server 服務。
- 使用
- 網(wǎng)絡和卷
- 定義了一個名為
skywalking-net的橋接網(wǎng)絡,確保所有服務在同一網(wǎng)絡中。 - 定義了一個卷
elasticsearch-data,用于持久化 Elasticsearch 的數(shù)據(jù)。
- 定義了一個名為
啟動服務
在包含 docker-compose.yml 文件的目錄中運行以下命令啟動服務:
docker compose up -d
驗證
檢查 Elasticsearch 是否正常運行
curl -u elastic:elastic http://127.0.0.1:19200
檢查 OAP Server 是否正常運行
查看 OAP Server 的日志,確認它是否成功連接到 Elasticsearch:
docker logs skywalking-oap
訪問 SkyWalking UI
打開瀏覽器,訪問 http://172.30.112.19:18080,您應該能夠看到 SkyWalking 的界面。
2. 客戶端代碼集成
2.1 下載 SkyWalking Agent
從 SkyWalking 官方網(wǎng)站下載對應版本的 Agent。
wget https://archive.apache.org/dist/skywalking/8.6.0/apache-skywalking-apm-8.6.0.tar.gz tar -xvzf apache-skywalking-apm-8.6.0.tar.gz cd apache-skywalking-apm-bin
2.2 配置 SkyWalking Agent
編輯 agent/config/agent.config 文件,配置以下參數(shù):
# SkyWalking Agent 名稱 SW_AGENT_NAME=springboot-skywalking-demo # Collector 服務地址 SW_AGENT_COLLECTOR_BACKEND_SERVICES=172.30.112.19:11800 # 鏈路的最大 Span 數(shù)量 SW_AGENT_SPAN_LIMIT=2000
2.3 啟動應用
在啟動 Spring Boot 應用時,通過 -javaagent 參數(shù)指定 SkyWalking Agent 的路徑。
java -javaagent:/path/to/skywalking-agent.jar \ -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=172.30.112.19:11800 \ -DSW_AGENT_NAME=springboot-skywalking-demo \ -jar your-springboot-app.jar
jar包地址(官網(wǎng)):https://skywalking.apache.org/downloads/
阿里云:https://mirrors.aliyun.com/apache/skywalking/

運行起來就是這樣

自己可以進行調用,然后記得修改時間(有的版本在下面):

使用文檔
SkyWalking UI 使用文檔
SkyWalking UI 提供了豐富的功能,用于監(jiān)控和分析分布式系統(tǒng)的性能和調用鏈路。以下是 SkyWalking UI 的主要功能和使用方法:
1.儀表盤 (Dashboard)
儀表盤提供了全局和當前服務的運行狀態(tài)和監(jiān)控指標,包括:
- 調用熱力圖 (Calls HeatMap):顯示請求數(shù)量和響應時間。
- 應用平均告警 (Avg Application Alarm):顯示應用的告警信息。
- 慢服務 (Slow Service):顯示響應時間最長的服務。
- 應用吞吐量 (Application Throughput):顯示每分鐘的調用次數(shù) (CPM)。
2.拓撲圖 (Topology)
拓撲圖以圖形化方式展示服務之間的依賴關系和調用鏈路,包括:
- 拓撲結構圖 (Topology Map):顯示服務之間的調用關系。
- 概覽 (Overview):顯示服務的總體運行狀態(tài)。
- SLA (Service Level Agreement):顯示服務的可用率。
- 每分鐘調用 (Calls Per Minute):顯示每分鐘的調用次數(shù)。
- 平均響應時間 (Avg Response Time):顯示服務的平均響應時間。
3.服務 (Service)
服務頁面提供了特定服務的詳細信息,包括:
- 平均吞吐量 (Avg Throughput):顯示服務的平均吞吐量。
- 平均響應時間 (Avg Response Time):顯示服務的平均響應時間。
- 平均可用率 (Avg SLA):顯示服務的平均可用率。
- 依賴圖 (Dependency Map):顯示服務的依賴關系。
4.端點 (Endpoint)
端點頁面提供了特定端點的詳細調用數(shù)據(jù),包括:
- 調用次數(shù) (Call Count):顯示端點的調用次數(shù)。
- 平均響應時間 (Avg Response Time):顯示端點的平均響應時間。
- 錯誤率 (Error Rate):顯示端點的錯誤率。
- 調用鏈路 (Trace):顯示端點的調用鏈路。
5.追蹤 (Trace)
追蹤頁面提供了具體的調用鏈路數(shù)據(jù),包括:
- Trace ID:唯一標識一次調用的 ID。
- 調用鏈路:顯示每次調用的詳細鏈路,包括每個節(jié)點的響應時間、調用順序等。
6.性能剖析 (Performance Analysis)
性能剖析頁面提供了對特定端點的性能分析,包括:
- 采樣分析:對端點進行采樣分析,查看詳細的堆棧信息。
- 任務列表:顯示當前的性能分析任務。
- 任務詳情:查看任務的詳細信息,包括實例信息、操作類型、操作時間等。
7.日志 (Log)
日志頁面提供了服務的日志信息,包括:
- 服務日志:顯示服務的日志信息。
- 瀏覽器日志:顯示瀏覽器的日志信息。
- 追蹤 ID:通過追蹤 ID 查看跨服務的整體流程日志。
8.告警 (Alarm)
告警頁面展示了觸發(fā)告警的列表,包括:
- 實例告警:顯示實例相關的告警信息。
- 請求超時:顯示請求超時相關的告警信息。
9.事件 (Event)
事件頁面展示了服務實例的啟動和端點的調用等事件信息。
10.時間選擇器 (Time Selector)
時間選擇器用于設定統(tǒng)計指標的時間范圍,所有指標數(shù)據(jù)展示都依賴于這個時間范圍。
官方文檔
SkyWalking 的官方文檔提供了詳細的使用指南和配置說明,建議參考以下鏈接:
通過這些功能和文檔,您可以全面監(jiān)控和分析分布式系統(tǒng)的性能和調用鏈路,快速定位和解決性能問題。
到此這篇關于如何基于docker 部署Skywalking的文章就介紹到這了,更多相關docker 部署Skywalking內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用Docker部署Filestash文件管理器的實現(xiàn)步驟
Filestash是一款功能強大的網(wǎng)絡文件管理工具,它允許用戶在單一界面下管理分布于不同地點和平臺的數(shù)據(jù),本文就來介紹一下Docker部署Filestash文件管理器的實現(xiàn)步驟,感興趣的可以了解一下2025-07-07
docker-compose部署mysql數(shù)據(jù)庫完整步驟
Docker-Compose項目是Docker官方的開源項目,負責實現(xiàn)對Docker容器集群的快速編排,這篇文章主要給大家介紹了關于docker-compose部署mysql數(shù)據(jù)庫的完整步驟,需要的朋友可以參考下2024-05-05

