欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker搭建Skywalking的實現(xiàn)示例

 更新時間:2025年02月08日 09:16:10   作者:Dolphin_Home  
本文主要介紹了Docker搭建Skywalking的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

Docker搭建Skywalking

  • 虛擬機IP192.168.0.109
  • Nacos服務地址http://192.168.0.109:8848/nacos
  • MySQL服務
    • IP:192.168.0.109
    • 端口:3306
    • 用戶名:root
    • 密碼:root
  • ElasticSearch服務:
    • IP:192.168.0.109
    • 端口:9200
    • 用戶名:elastic
    • 密碼:123456
    • 容器使用的Docker網(wǎng)絡:docker network create elastic-net
    • 容器名稱: elasticsearch
  • Kibana服務:
    • IP:192.168.0.109
    • 端口:5601
    • 用戶名:elastic
    • 密碼:123456
    • 測試地址:http://192.168.0.109:5601

準備工作

  • 先準備配置目錄和持久化目錄,舉個栗子:mkdir -p /opt/module/skywalking/{config,data,logs}
  • 解決 SkyWalking 容器 Permission denied(權限被拒絕)的錯誤,chmod -R 777 /opt/module/skywalking

拉取官方Skywalking鏡像

# 拉取 OAP 服務鏡像
docker pull apache/skywalking-oap-server:8.9.0

# 拉取 UI 服務鏡像
docker pull apache/skywalking-ui:8.9.0
  • 注意:oap版本和agent版本需要適配,版本不適配可能會出現(xiàn)頁面無法訪問、agent上報不到頁面等問題。

部署 SkyWalking OAP 服務器

0. 啟動臨時容器【通過創(chuàng)建一個臨時的測試容器來復制配置文件,反推配置】

docker run \
  -d -p 11800:11800 -p 12800:12800  \
  --name skywalking-oap \
  --restart always \
  apache/skywalking-oap-server:8.9.0

說明

  • 11800:OAP 服務端口。
  • 12800:SkyWalking UI 服務端口。
  • --restart always:容器自動重啟策略。

目錄結(jié)構(gòu)說明

路徑說明
/skywalking/config配置文件目錄
/skywalking/logs日志文件目錄
/skywalking/data數(shù)據(jù)存儲目錄

復制 SkyWalking 配置文件到宿主機

docker cp skywalking-oap:/skywalking/config     /opt/module/skywalking
docker cp skywalking-oap:/skywalking/logs       /opt/module/skywalking
docker cp skywalking-oap:/skywalking/data       /opt/module/skywalking

# 如果需要導出所有文件
docker cp skywalking-oap:/skywalking     /opt/module

移除臨時容器

docker stop skywalking-oap
docker rm skywalking-oap

1. 使用默認存儲(H2 數(shù)據(jù)庫)

啟動 SkyWalking OAP 容器,使用 H2 數(shù)據(jù)庫作為存儲:

docker run \
  -d -p 11800:11800 -p 12800:12800  \
  --name skywalking-oap \
  --restart always \
  apache/skywalking-oap-server:8.9.0

說明:如果不指定存儲類型,默認使用 H2 數(shù)據(jù)庫。

容器內(nèi)主要目錄和文件說明

目錄/文件名說明
bin啟動腳本及其他可執(zhí)行工具,如 startup.sh 和 stop.sh。
config配置文件目錄,包含關鍵配置文件,如 application.yml(OAP 核心配置)。
config-examples配置示例目錄,包含模板配置,便于用戶參考。
docker-entrypoint.sh容器啟動腳本,用于初始化和啟動 SkyWalking OAP 服務。
ext-config擴展配置文件目錄,用于自定義擴展配置。
ext-libs擴展庫目錄,用于添加插件或依賴庫。
LICENSESkyWalking 項目的開源許可證文件。
licenses項目中使用的所有依賴庫的許可證集合。
oap-libsOAP 組件所需的依賴庫文件夾。
README.txt項目介紹文件,包含操作指南。
tools工具目錄,包含與 SkyWalking 相關的實用工具。
zipkin-LICENSEZipkin 集成相關的許可證信息。

核心目錄說明

  • config
    • 包含 application.yml,用于配置存儲后端、服務等。
  • oap-libs
    • SkyWalking OAP 的運行時依賴庫,一般不需要手動修改。
  • logs
    • 日志目錄,存儲運行日志,便于排查問題。
  • ext-libs 和 ext-config
    • 可以添加插件或自定義擴展配置,靈活性高。

2. 使用 ElasticSearch 存儲

方式 1:通過 Docker 啟動 SkyWalking OAP 服務并使用 ElasticSearch 存儲

docker run -d \
  -p 11800:11800 \
  -p 12800:12800 \
  -e SW_STORAGE=elasticsearch \
  -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 \
  -e SW_ES_USER=elastic \
  -e SW_ES_PASSWORD="\"123456\"" \
  --link elasticsearch:elasticsearch \
  --name skywalking-oap \
  --restart always \
  apache/skywalking-oap-server:8.9.0

方式 2:通過 Docker 啟動 SkyWalking OAP 服務并使用 ElasticSearch 存儲【這里直接使用之前ES容器的網(wǎng)絡es-net

docker run -d \
  -p 11800:11800 \
  -p 12800:12800 \
  -e SW_STORAGE=elasticsearch \
  -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 \
  -e SW_ES_USER=elastic \
  -e SW_ES_PASSWORD="\"123456\"" \
  --net es-net \
  --name skywalking-oap \
  --restart always \
  apache/skywalking-oap-server:8.9.0

注意:

  • -e SW_ES_PASSWORD這里的密碼值 "\"123456\"",額外的引號確保其被正確解析為字符串。

方式 3:直接指定 ElasticSearch 服務的 IP 地址

docker run \
  -d -p 11800:11800 -p 12800:12800 \
  -e TZ=Asia/Shanghai \
  -e SW_STORAGE=elasticsearch \
  -e SW_STORAGE_ES_CLUSTER_NODES=[ES的IP]:9200 \
  -e SW_ES_USER=elastic \
  -e SW_ES_PASSWORD="\"123456\"" \
  --name skywalking-oap \
  --restart always \
  apache/skywalking-oap-server:8.9.0

說明:

  • SW_STORAGE=elasticsearch:指定使用 ElasticSearch 存儲。
  • SW_STORAGE_ES_CLUSTER_NODES:指定 ElasticSearch 服務地址,可以是容器內(nèi)的服務名(例如 elasticsearch:9200)或外部服務的 IP 地址(例如 [ES的IP]:9200)。
  • SW_ES_USER 和 SW_ES_PASSWORD:用于連接 ElasticSearch 的認證信息。

方式 4:使用掛載配置文件啟動(自定義 application.yml 配置)

如果您希望使用自定義配置文件 application.yml,可以將其掛載到容器中:

docker run -d \
  -p 11800:11800 \
  -p 12800:12800 \
  -v /opt/module/skywalking/config/application.yml:/skywalking/config/application.yml \
  -e SW_STORAGE=elasticsearch \
  -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 \
  -e SW_ES_USER=elastic \
  -e SW_ES_PASSWORD="\"123456\"" \
  --link elasticsearch:elasticsearch \
  --name skywalking-oap \
  --restart always \
  apache/skywalking-oap-server:8.9.0

環(huán)境變量:

  • 可以使用 SW_STORAGE_ES_CLUSTER_NODES 來指定 ElasticSearch 集群的節(jié)點地址。如果是使用容器內(nèi)部網(wǎng)絡,可以用容器的名稱代替 IP 地址(例如 elasticsearch:9200)。
  • SW_ES_USER 和 SW_ES_PASSWORD 用于認證信息。如果在生產(chǎn)環(huán)境中使用,請確保密碼存儲方式安全,避免通過環(huán)境變量暴露敏感信息。

掛載配置文件:

  • 使用 -v 選項將本地的 application.yml 配置文件掛載到容器中,這樣可以靈活配置 SkyWalking 的各項參數(shù),避免每次修改環(huán)境變量。

網(wǎng)絡連接:

  • 使用 --link elasticsearch:elasticsearch 來連接 Docker 容器間的網(wǎng)絡。但建議使用 Docker 網(wǎng)絡來替代 --link,因為 --link 已被棄用??梢酝ㄟ^創(chuàng)建自定義網(wǎng)絡來進行容器間的連接。

3. 使用 MySQL 存儲(推薦?)

  • 在 MySQL 創(chuàng)建 SkyWalking 數(shù)據(jù)庫

    CREATE DATABASE skywalking CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    
  • 配置 MySQL 驅(qū)動

    SkyWalking 需要 MySQL JDBC 驅(qū)動來連接 MySQL 數(shù)據(jù)庫。如果您使用的是 MySQL 8,可能需要手動將 mysql-connector 驅(qū)動文件導入到 skywalking-oap 容器中。

    準備驅(qū)動文件將 mysql-connector-java-8.0.18.jar 文件放到服務器的任意位置,例如 /root;

    拷貝到 Docker 容器使用 docker cp 命令將驅(qū)動文件傳入 SkyWalking OAP 容器:

    docker cp /root/mysql-connector-java-8.0.18.jar skywalking-oap:/skywalking/oap-libs
    

    注意要查看一下你使用的skywalking-oap容器中是否有 MySQL8的jar包, 如果有mysql-connector-java-8.0.X.jar那么就跳過這個步驟

    # 檢查是否有適配的驅(qū)動
    docker exec -it skywalking-oap ls -l /skywalking/oap-libs
    
  • 啟動 SkyWalking OAP 服務,使用 MySQL 存儲數(shù)據(jù)

    docker run \
      -d -p 11800:11800 -p 12800:12800 \
      -e SW_STORAGE=mysql \
      -e "SW_JDBC_URL=jdbc:mysql://mysql:3306/skywalking?useUnicode=true&characterEncoding=UTF-8&useSSL=false" \
      -e SW_DATA_SOURCE_USER=root \
      -e SW_DATA_SOURCE_PASSWORD=root \
      -v /opt/module/skywalking/config:/skywalking/config \
      -v /opt/module/skywalking/oap-libs:/skywalking/oap-libs \
      --link mysql:mysql \
      --name skywalking-oap \
      --restart always \
      apache/skywalking-oap-server:8.9.0
    

說明

  • SW_STORAGE=mysql:指定使用 MySQL 存儲。

  • SW_JDBC_URL:MySQL JDBC 連接 URL,格式為:

    jdbc:mysql://<MySQL服務地址>:<端口>/<數(shù)據(jù)庫名>?useUnicode=true&characterEncoding=UTF-8&useSSL=false
    

    示例中 mysql 是 Docker 服務名,3306 是默認端口。

  • SW_DATA_SOURCE_USER 和 SW_DATA_SOURCE_PASSWORD:MySQL 數(shù)據(jù)庫的用戶名和密碼。

  • --link mysql:mysql:通過 Docker 的 --link 參數(shù)連接 MySQL 服務(需確保 MySQL 服務已啟動且可訪問)。

注意事項

  • MySQL 地址和端口:確保替換 mysql:3306 為實際的 MySQL 地址和端口。如果 MySQL 服務在本地運行,可以替換為 localhost:3306,如果是遠程數(shù)據(jù)庫,則替換為對應的遠程地址。
  • 提前創(chuàng)建數(shù)據(jù)庫:在執(zhí)行啟動命令之前,確保 MySQL 數(shù)據(jù)庫中已經(jīng)創(chuàng)建了 skywalking 數(shù)據(jù)庫。你可以根據(jù)需要調(diào)整數(shù)據(jù)庫名稱和字符集。
  • MySQL 版本兼容性:確保你使用的 MySQL 版本與 SkyWalking OAP 兼容,建議使用 MySQL 5.7 以上版本。

4. 可選配置:自定義參數(shù)或掛載配置文件

  • 修改JVM堆內(nèi)存大小

    docker run \
      -d -p 11800:11800 -p 12800:12800 \
      -e JAVA_OPTS="-Xmx2g" \
      --name skywalking-oap \
      --restart always \
      apache/skywalking-oap-server:8.9.0
    
  • 掛載本地配置文件

    將配置文件放在/opt/module/skywalking/config/application.yml路徑,啟動命令如下:

    docker run \
      -d -p 11800:11800 -p 12800:12800 \
      -v /opt/module/skywalking/config/application.yml:/skywalking/config/application.yml \
      --name skywalking-oap \
      --restart always \
      apache/skywalking-oap-server:8.9.0
    

    注意:確保掛載路徑和配置文件內(nèi)容正確無誤。

部署 SkyWalking UI

SkyWalking UI 提供了一個基于 Web 的界面,用于可視化 OAP 服務器收集的遙測數(shù)據(jù)。

方式 1:通過 Docker 啟動 SkyWalking UI 服務

docker run \
  -d -p 8080:8080 \
  -e SW_OAP_ADDRESS=http://skywalking-oap:12800 \
  --link skywalking-oap:skywalking-oap \
  --name skywalking-ui \
  --restart always \
  apache/skywalking-ui:8.9.0

瀏覽器訪問:http://<主機IP>:8080。

說明

  • UI 服務默認訪問地址為 http://<主機IP>:8080
  • UI 可監(jiān)控 SkyWalking OAP 服務的運行狀態(tài)及指標數(shù)據(jù)。
  • 啟動后左側(cè)菜單可能較少,需等待上報數(shù)據(jù)后才能顯示完整菜單。
  • 查詢數(shù)據(jù)時,請確認右上角的時間區(qū)間是否正確。

如果8080端口被占用,這里可以替換成其他的端口 例如: -p 28080:8080

方式 2:通過 Docker 啟動 SkyWalking UI 服務(使用自定義網(wǎng)絡 es-net

docker run \
  -d -p 8080:8080 \
  -e SW_OAP_ADDRESS=http://skywalking-oap:12800 \
  --net es-net \
  --name skywalking-ui \
  --restart always \
  apache/skywalking-ui:8.9.0

查看啟動日志

docker logs -f skywalking-oap
docker logs -f skywalking-ui

# 查看最近 20 行日志
docker logs -f -t --tail 20 skywalking-oap
docker logs -f -t --tail 20 skywalking-ui

進入skywalking-oap、skywalking-ui容器內(nèi)部

docker ps     # 查看正在運行的容器,并得到 容器id

# 進入tomcat容器內(nèi)部
docker exec -it [容器id] /bin/bash  # 中間那個是容器id 就是 CONTAINER_ID
docker exec -it [容器id] /bin/sh
#  -it 表示進入
docker exec -it skywalking-oap /bin/sh
docker exec -it skywalking-ui  /bin/sh
# 使用 命令別名 開啟 ll命令
cat <<EOF >> /etc/profile
alias ll='ls -l --color=tty'
alias grep='grep --color=auto'
EOF

source /etc/profile

查看防火墻【開放端口】

# 查詢端口是否開放
firewall-cmd --query-port=8080/tcp
firewall-cmd --query-port=11800/tcp
firewall-cmd --query-port=12800/tcp

# 開放80、443端口
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=11800/tcp
firewall-cmd --permanent --add-port=12800/tcp

# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --permanent --remove-port=11800/tcp
firewall-cmd --permanent --remove-port=12800/tcp

# 重啟防火墻(修改配置后要重啟防火墻)
firewall-cmd --reload

# 查看已經(jīng)開發(fā)那些端口
firewall-cmd --list-ports
firewall-cmd --zone=public --list-ports

測試

#瀏覽器中服務器
http://虛擬機IP:8080

查看日志

查看 SkyWalking OAP 日志

docker logs -f skywalking-oap

查看 SkyWalking UI 日志

docker logs -f skywalking-ui

停止并刪除容器

停止并刪除 OAP 容器

docker stop skywalking-oap
docker rm skywalking-oap

停止并刪除 UI 容器

docker stop skywalking-ui
docker rm skywalking-ui

結(jié)論

以上步驟完成后,您已成功配置Apache SkyWalking的OAP服務器和UI。可以選擇使用H2、Elasticsearch或MySQL作為存儲,通過SkyWalking UI監(jiān)控系統(tǒng)運行情況。

到此這篇關于Docker搭建Skywalking的實現(xiàn)示例的文章就介紹到這了,更多相關Docker搭建Skywalking內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • docker內(nèi)服務訪問宿主機服務的實現(xiàn)

    docker內(nèi)服務訪問宿主機服務的實現(xiàn)

    本文主要介紹了docker內(nèi)服務訪問宿主機服務的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Docker 容器文件系統(tǒng)詳細介紹(圖文)

    Docker 容器文件系統(tǒng)詳細介紹(圖文)

    這篇文章主要介紹了Docker 容器文件系統(tǒng)詳細介紹(圖文)的相關資料,這里對Docker 容器文件系統(tǒng)進行了具體的分析詳解,需要的朋友可以參考下
    2016-12-12
  • Docker如何查看正在運行的容器目錄

    Docker如何查看正在運行的容器目錄

    這篇文章主要介紹了Docker如何查看正在運行的容器目錄問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Docker安裝ollama過程解讀

    Docker安裝ollama過程解讀

    Ollama是一個開源的LLM服務工具,用于簡化在本地運行大語言模型,本文介紹了如何使用Docker安裝Ollama并運行大語言模型,包括拉取鏡像、運行容器和加載模型,最后,還介紹了如何安裝OpenWebUI進行Web界面交互
    2025-02-02
  • 解決Docker容器下不能使用vim命令的問題

    解決Docker容器下不能使用vim命令的問題

    這篇文章介紹了解決Docker容器下不能使用vim命令的問題,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-03-03
  • Docker容器中文亂碼(修改docker容器編碼格式)的解決方案

    Docker容器中文亂碼(修改docker容器編碼格式)的解決方案

    這篇文章主要介紹了Docker容器中文亂碼(修改docker容器編碼格式)的解決方案的相關資料,需要的朋友可以參考下
    2016-12-12
  • 容器Docker入門詳解

    容器Docker入門詳解

    這篇文章主要介紹了容器Docker入門詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • IDEA中進行Docker項目部署的實現(xiàn)步驟

    IDEA中進行Docker項目部署的實現(xiàn)步驟

    這篇文章主要介紹了IDEA中進行Docker項目部署的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • 如何查看docker-compose.yml所在位置

    如何查看docker-compose.yml所在位置

    這篇文章主要介紹了如何查看docker-compose.yml所在位置問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Docker nacos集群部署的實現(xiàn)

    Docker nacos集群部署的實現(xiàn)

    本文將深入探討如何使用Docker來部署Nacos集群,從而實現(xiàn)服務的快速擴展、高可用性和可維護性,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01

最新評論