Skywalking 搭建 nacos 注冊中心及mysql 存儲的集群架構


本文為博主原創,未經允許不得轉載

  Skywalking 集群是將skywalking oap作為一個服務注冊到nacos上,只要skywalking oap服務沒有全部宕機,保證有一個skywalking oap在運行,就能進行跟蹤。

  Skywalking 集群搭建支持多種注冊中心,如常用的 nacos, zookeeper ,etcd 等,並支持多種數據存儲方式,如 Elasticsearch6, Elasticsearch7,mysql, h2 內存等等。

  在本地調試過程中,選擇搭建一個 nacos 做注冊中心,mysql 做數據存儲的 skywalking 集群搭建。搭建 skywalking 集群至少一個 nacos,兩個 skywalking oap 服務,1 個ui界面。其搭建過程如下:

1. 修改 config/application.yml 文件,使用nacos 做注冊中心,並配置 mysql 數據庫存儲

  修改后的主要配置如下:

cluster:
  selector: ${SW_CLUSTER:nacos}
  nacos:
    serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
    hostPort: ${SW_CLUSTER_NACOS_HOST_PORT:112.125.26.68:8848}
    # Nacos Configuration namespace
    namespace: ${SW_CLUSTER_NACOS_NAMESPACE:"public"}
    # Nacos auth username
    username: ${SW_CLUSTER_NACOS_USERNAME:""}
    password: ${SW_CLUSTER_NACOS_PASSWORD:""}
    # Nacos auth accessKey
    accessKey: ${SW_CLUSTER_NACOS_ACCESSKEY:""}
    secretKey: ${SW_CLUSTER_NACOS_SECRETKEY:""}

core:
  selector: ${SW_CORE:default}
  default:
    restHost: ${SW_CORE_REST_HOST:112.125.26.68}
    restPort: ${SW_CORE_REST_PORT:12800}
    gRPCHost: ${SW_CORE_GRPC_HOST:112.125.26.68}
    gRPCPort: ${SW_CORE_GRPC_PORT:11800}
  
storage:
  selector: ${SW_STORAGE:mysql}
  mysql:
    properties:
      jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://112.125.26.68:3306/swtest"}
      dataSource.user: ${SW_DATA_SOURCE_USER:root}
      dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root}
      dataSource.cachePrepStmts: ${SW_DATA_SOURCE_CACHE_PREP_STMTS:true}
      dataSource.prepStmtCacheSize: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250}
      dataSource.prepStmtCacheSqlLimit: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048}
      dataSource.useServerPrepStmts: ${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}

  其中需要注意的是,需要將core 配置中的restHost與gRPCHost 修改為本地的ip,默認配置的ip為 0.0.0.0,但如果不修改該ip的話,會導致多個skywalking 注冊到nacos 上時,從nacos 管理台界面查看只出現一個skywalking 注冊成功。

  數據存儲若選擇使用mysql 時,只需要提前創建好數據庫名稱就可以,skywalking 啟動時,會自動創建需要的所有數據庫表。

  當數據存儲使用mysql 時,需要手動將mysql 的連接jar 包放到 oap-libs 目錄中,若選擇ES 日志存儲時,則不需要其余的jar 。

2. 配置ui服務webapp.yml文件的listOfServers,寫兩個地址

server:
  port: 8080

collector:
  path: /graphql
  ribbon:
    ReadTimeout: 10000
    listOfServers: 112.125.26.68:12800,112.125.26.69:12800

  

3. 啟動服務指定 skywalking 的 collector 服務和端口

-javaagent:D:\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=consumer
-Dskywalking.collector.backend_service=112.125.26.68:11800,112.125.26.69:11800

#解釋一下上面這三個參數的意思
#
-javaagent:填的是skywalking-agent.jar的本地磁盤的路徑
#
-Dskywalking.agent.service_name:在skywalking上顯示的服務名
#
-Dskywalking.collector.backend_service:skywalking的collector服務的IP及端口

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM