APM工具skywalking部署

一 整體架構

整體架構整個架構,分成上、下、左、右四部分:

  • 上部分 Agent :負責從應用中,收集鏈路信息,發送給 SkyWalking OAP 服務器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 數據信息。而我們目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 數據,傳遞給服務器。
  • 下部分 SkyWalking OAP :負責接收 Agent 發送的 Tracing 數據信息,然后進行分析(Analysis Core) ,存儲到外部存儲器( Storage ),最終提供查詢( Query )功能。
  • 右部分 Storage :Tracing 數據存儲。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多種存儲器。而我們目前采用的是 ES ,主要考慮是 SkyWalking 開發團隊自己的生產環境采用 ES 為主。
  • 左部分 SkyWalking UI :負責提供控臺,查看鏈路等等。

二 安裝

已驗證skywalking9.6.0,centos7.0, MySQL8.0.26

2.1 jdk安裝

  • Skywalking9.6.0需要jdk9+及以上

    • 下載解壓到/usr/local/java/jdk11
    • 配置環境變量
# 打開文件
vim /etc/profile
# 在文件最后加上
JAVA_HOME=/usr/local/java/jdk11
PATH=$PATH:$JAVA_HOME/bin
# 保存退出
# 應用修改
source /etc/profile
# 驗證:
java -version

2.2 安裝skywalking

  • 下載安裝包官網(慢),推薦清華源
  • 解壓放置路徑/usr/local/skywalking
2.2.1 運行
  1. 進入/usr/local/skywalking/bin目錄

    運行oapService

    ./oapService.sh &
    

    運行ui webappService,默認端口8080

    ./webappService.sh &
    
  2. 驗證運行結果

    [root@localhost bin]# jps
    6099 Jps
    18824 OAPServerStartUp
    9817 ApplicationStartUp
    # 查看訪問
    [root@localhost bin]# curl localhost:8080
    

    瀏覽器訪問IP:8080(防火墻開啟端口)

2.2.2 結果

在這里插入圖片描述

三 配置

3.1 數據庫

  1. skywalking 默認使用h2數據庫,基于內容的數據庫,重啟服務后數據重置,修改存儲,支持數據持久化

  2. 修改/usr/local/skywalking/config/application.yaml

    # line 159
    storage:selector: ${SW_STORAGE:h2}
    

    ?

  3. 修改為mysql ,我這里用的MySQL8.0.26

    # line 159
    storage:selector: ${SW_STORAGE:mysql}# line 191 變更自己的庫名,添加驅動包名mysql:properties:jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://yourIP:3306/swtest?rewriteBatchedStatements=true&allowMultiQueries=true"}dataSource.user: ${SW_DATA_SOURCE_USER:root}dataSource.password: ${SW_DATA_SOURCE_PASSWORD:your password}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}metadataQueryMaxSize: ${SW_STORAGE_MYSQL_QUERY_MAX_SIZE:5000}maxSizeOfBatchSql: ${SW_STORAGE_MAX_SIZE_OF_BATCH_SQL:2000}asyncBatchPersistentPoolSize: ${SW_STORAGE_ASYNC_BATCH_PERSISTENT_POOL_SIZE:4}driver: com.mysql.cj.jdbc.Driver# 保存退出,配置修改完成
    

    ?

  4. 添加MySQL8驅動包到路徑/usr/local/skywalking/oap-libs/下

  5. 重啟oapService服務驗證,是否正常運行

    1. jps
    2. kill -9 pid (oapService的)
    3. 重啟oapService

3.2 訪問端口修改

  1. 修改文件/usr/local/skywalking/webapp/application
  2. 重啟webappService服務
    1. jps
    2. kill -9 pid(webappService的)
    3. 重啟webappService

四 監控

在這里插入圖片描述

  1. Prometheus 節點導出器從虛擬機收集指標數據。
  2. OpenTelemetry Collector 通過 Prometheus Receiver 從 node-exporter 獲取指標,并通過 OpenTelemetry gRPC 導出器將指標推送到 SkyWalking OAP Server。
  3. SkyWalking OAP Server 使用 MAL 解析表達式,以過濾/計算/聚合和存儲結果。

4.1 self-observability自監控

4.1.1 節點導出器
  1. 修改配置文件/usr/local/skywalking/config/application.yaml

    # line 452
    telemetry:selector: ${SW_TELEMETRY:prometheus}none:prometheus:host: ${SW_TELEMETRY_PROMETHEUS_HOST:0.0.0.0}port: ${SW_TELEMETRY_PROMETHEUS_PORT:1234}sslEnabled: ${SW_TELEMETRY_PROMETHEUS_SSL_ENABLED:false}sslKeyPath: ${SW_TELEMETRY_PROMETHEUS_SSL_KEY_PATH:""}sslCertChainPath: ${SW_TELEMETRY_PROMETHEUS_SSL_CERT_CHAIN_PATH:""}
    

    ?

  2. 重啟oapService服務。

4.1.2 節點收集器
  1. 安裝OpenTelemetry Collector

    # RPM Installation
    sudo yum update
    sudo yum -y install wget systemctl
    wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.89.0/otelcol_0.89.0_linux_amd64.rpm
    sudo rpm -ivh otelcol_0.89.0_linux_amd64.rpm
    

    ?

  2. 修改OpenTelemetry Collector配置文件

    1. 創建自己的配置文件otel-collection-config.yaml (/etc/otelcol/)

      receivers:prometheus:config:scrape_configs:- job_name: "skywalking-so11y" scrape_interval: 10sstatic_configs:- targets: ["0.0.0.0:1234"]labels:host_name: vmlinuxservice: self-observability
      processors:batch:exporters:otlp:endpoint: "your IP:11800" # The OAP Server addresstls:insecure: truelogging:loglevel: debug
      service:pipelines:metrics:receivers: [prometheus]processors: [batch]exporters: [otlp, logging]
      

      ?

    2. 修改OpenTelemetry Collector啟動記載配置文件/etc/otelcol/otelcol.conf指向新建的otel-collection-config.yaml

      # Systemd environment file for the otelcol service
      # Command-line options for the otelcol service.
      # Run `/usr/bin/otelcol --help` to see all available options.
      # OTELCOL_OPTIONS="--config=/etc/otelcol/config.yaml"
      OTELCOL_OPTIONS="--config=/etc/otelcol/otel-collector-config.yaml"
      

      ?

    3. 重啟OpenTelemetry Collector

      systemctl restart otelcol
      
4.1.3 訪問查看

在這里插入圖片描述

4.2 基礎設施監控-Linux

4.2.1 節點導出器
  1. 安裝并運行節點導出器
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xvfz node_exporter-1.7.0.linux-amd64.tar.gz
mkdir /usr/local/skywalking/exporter
mv node_exporter-1.7.0.linux-amd6 /usr/local/skywalking/exporter/node_exporter
cd node_exporter
nohup ./node_exporter > /usr/local/skywalking/exporter/node_exporter/node_exporter.log 2>&1 &
# 驗證
curl 127.0.0.1:9100
4.2.2 節點收集器
  1. 修改OpenTelemetry Collector配置文件otel-collection-config.yaml
receivers:prometheus:config:scrape_configs:- job_name: "vm-monitoring"scrape_interval: 10sstatic_configs:- targets: ["0.0.0.0:9100"]labels:node_identifier_host_name: vm-machine- job_name: "skywalking-so11y"scrape_interval: 10sstatic_configs:- targets: ["0.0.0.0:1234"]labels:host_name: vmlinuxservice: self-observability
processors:batch:exporters:otlp:endpoint: "you IP:11800" # The OAP Server addresstls:insecure: truelogging:loglevel: debug
service:pipelines:metrics:receivers: [prometheus]processors: [batch]exporters: [otlp, logging]
  1. 重啟OpenTelemetry Collector
systemctl restart otelcol
4.2.3 查看訪問

在這里插入圖片描述

4.3 數據庫-Redis

4.3.1 節點導出器
wget https://github.com/oliver006/redis_exporter/releases/download/v1.55.0/redis_exporter-v1.55.0.linux-amd64.tar.gz
tar xvfz redis_exporter-v1.55.0.linux-amd64.tar.gz
mv node_exporter-1.7.0.linux-amd6 /usr/local/skywalking/exporter/redis_exporter
cd redis_exporter
nohup ./redis_exporter -redis.password="your password" > /usr/local/skywalking/exporter/redis_exporter/redis_exporter.log 2>&1 &
# 驗證
curl 127.0.0.1:9100
4.3.2 節點導入器
  1. 修改OpenTelemetry Collector配置文件otel-collection-config.yaml

    receivers:prometheus:config:scrape_configs:- job_name: "vm-monitoring"scrape_interval: 10sstatic_configs:- targets: ["0.0.0.0:9100"]labels:node_identifier_host_name: vm-machine- job_name: "skywalking-so11y"scrape_interval: 10sstatic_configs:- targets: ["0.0.0.0:1234"]labels:host_name: vmlinuxservice: self-observability- job_name: "redis-monitoring"scrape_interval: 10sstatic_configs:- targets: ["0.0.0.0:9121"]labels:host_name: redis
    processors:batch:exporters:otlp:endpoint: "your IP:11800" # The OAP Server addresstls:insecure: truelogging:loglevel: debug
    service:pipelines:metrics:receivers: [prometheus]processors: [batch]exporters: [otlp, logging]
    

    ?

  2. 重啟OpenTelemetry Collector

    systemctl restart otelcol
    

    ?

4.3.3 訪問查看

在這里插入圖片描述

4.4 數據庫-MySQL

4.4.1 節點導出器
  1. 創建MySQL監控賬號并授權
CREATE USER 'mysql_exporter'@'%' IDENTIFIED BY 'your password' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysql_exporter'@'%';
FLUSH PRIVILEGES;
  1. mysqld_exporter.conf
[client]
user=mysql_exporter
password=your password
  1. 啟動mysql_exporter
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.0/mysqld_exporter-0.15.0.linux-amd64.tar.gz
tar xvfz mysqld_exporter-0.15.0.linux-amd64.tar.gz
mv mysqld_exporter-0.15.0.linux-amd64 /usr/local/skywalking/exporter/mysqld_exporter
cd mysqld_exporter
# 創建配置MySQL監控賬號的文件/usr/local/skywalking/exporter/mysqld_exporter/mysqld_exporter.conf
nohup ./mysqld_exporter --config.my-cnf="mysqld_exporter.conf" > /usr/local/skywalking/exporter/mysql_exporter/mysql_exporter.log 2>&1 &
# 驗證
curl 127.0.0.1:9104
4.4.2 節點接收器
  1. 修改OpenTelemetry Collector配置文件otel-collection-config.yaml

    receivers:prometheus:config:scrape_configs:- job_name: "vm-monitoring"scrape_interval: 10sstatic_configs:- targets: ["0.0.0.0:9100"]labels:node_identifier_host_name: vm-machine- job_name: "skywalking-so11y"scrape_interval: 10sstatic_configs:- targets: ["0.0.0.0:1234"]labels:host_name: vmlinuxservice: self-observability- job_name: "mysql-monitoring"scrape_interval: 10sstatic_configs:- targets: ["0.0.0.0:9104"]labels:host_name: mysql8- job_name: "redis-monitoring"scrape_interval: 10sstatic_configs:- targets: ["0.0.0.0:9121"]labels:host_name: redisprocessors:batch:exporters:otlp:endpoint: "your IP:11800" # The OAP Server addresstls:insecure: truelogging:loglevel: debug
    service:pipelines:metrics:receivers: [prometheus]processors: [batch]exporters: [otlp, logging]
    
    1. 重啟OpenTelemetry Collector

      systemctl restart otelcol
      

      ?

4.4.3 訪問查看

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/163524.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/163524.shtml
英文地址,請注明出處:http://en.pswp.cn/news/163524.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Rust - cargo項目里多個二進制binary crate的編譯運行

目錄 foo - Cargo.toml - src - - main.rs - - bin - - - other-bin.rs將除默認入口文件外待作為二進制crate處理的文件放在src/bin目錄下 方法一: 命令行增加配置項 --bin xxx cargo run --bin foo // 注意! 這里是包名,不是main cargo run --bin o…

SQL基礎理論篇(九):存儲過程

文章目錄 簡介存儲過程的形式定義一個存儲過程使用delimiter定義語句結束符存儲過程中的三種參數類型流控制語句 存儲過程的優缺點參考文獻 簡介 存儲過程Stored Procedure,SQL中的另一個重要應用。 前面說的視圖,只能勉強跟編程中的函數相似&#xff…

MySQL -- JDBC

1、JDBC是什么: 是SUN公司制定的一套接口(interface)。接口都有調用者和實現者。面向接口調用、面向接口寫實現類,這都屬于面向接口編程。 2、在使用JDBC的六個步驟: 1.注冊驅動(告訴Java程序,即將連接的是哪個品牌…

業務系統上云后,如何滿足員工移動辦公快速訪問業務系統的需求?

在企業業務上云的大趨勢下,SaaS應用、云端辦公協同工具等多種遠程辦公應用系統開始大規模普及,企業員工可以隨時隨地訪問云上業務數據。然而現實情況卻十分“打臉”,企業隨時隨地要訪問云上業務的需求越迫切,問題就越大。由于多種…

算法通關村第十二關|白銀|字符串經典基礎面試題

1.反轉問題 1.1 反轉字符串 原題&#xff1a;力扣344. 要求原地修改。 public void reverseString(char[] s) {if (s null || s.length() 0) {return;}int n s.length;for (int left 0, right n - 1; left < right; left, right--) {char temp s[left];s[left] s…

小程序訂閱消息

wx.requestSubscribeMessage({tmplIds: [2IdqlWrqSbjAurzIuW8imeK-ftS8gbhYdZ0icdE],success(res) {console.log(res);// 處理用戶授權結果},fail(err) {console.error(err);// 處理授權請求失敗}});

白楊SEO:2B企業營銷是什么?當下主流的短視頻直播平臺有哪些?企業營銷要做短視頻直播選哪個平臺更好?

今天白楊SEO就正式來講講2B企業營銷選擇哪個短視頻直播平臺更好&#xff1f; 圖片在公眾號&#xff1a;白楊SEO上看。 文章大綱提前看&#xff1a; 1、先說說2B企業營銷是什么&#xff1f; 2、當下主流的短視頻直播平臺有哪些&#xff1f; 3、2B企業營銷要做短視頻直播選哪…

重磅!1區、60年老牌期刊被踢?共5本被剔除!11月SCIE/SSCI期刊目錄更新!

期刊動態&#xff1a;2023年11月SCI、SSCI期刊目錄更新 2023年11月20日&#xff0c;科睿唯安更新了WOS期刊目錄&#xff0c;繼上次10月WOS期刊目錄剔除7本SCIE&SSCI期刊之后&#xff0c;此次11月更新又有5本期刊發生變動&#xff0c;其中有4本SCIE期刊被剔除&#xff0c;1…

Postgresql根據兩表相同字段更新其中一個表的其他數據

有兩個表 table1&#xff08;id,pcode,pname,type&#xff09; 初始數據只有id、pcode&#xff0c;pname、type為空table2&#xff08;id,pcode,pname,type&#xff09; 根據table1和table的相同字段pcode&#xff0c;用table2的數據更新table1的pname和type字段。 例如&…

微信運營神器:從群發到批量添加,讓你的微信營銷更輕松

在這個數字化時代&#xff0c;微信已經成為了我們生活中不可或缺的一部分。對于許多企業和個人來說&#xff0c;微信營銷也是非常重要的一部分。但是&#xff0c;微信營銷并不是一件容易的事情&#xff0c;需要花費大量的時間和精力。為了解決這個問題&#xff0c;今天我們將向…

Linux本地MinIO存儲服務遠程調用上傳文件

&#x1f525;博客主頁&#xff1a; 小羊失眠啦. &#x1f3a5;系列專欄&#xff1a;《C語言》 《數據結構》 《Linux》《Cpolar》 ??感謝大家點贊&#x1f44d;收藏?評論?? 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;…

淘寶返利APP草柴如何綁定淘寶賬號?

草柴APP是一款淘寶、天貓、京東大額優惠券領取及購物返利省錢工具。通過草柴APP綁定淘寶賬號&#xff0c;可領取淘寶大額內部隱藏優惠券&#xff0c;領取成功再購物可享券后價優惠&#xff0c;確認收貨后可獲得淘寶返利。 淘寶返利APP草柴如何綁定淘寶賬號&#xff1f; 1、手…

Docker 快速搭建 Gitlab 服務

linux環境&#xff1a; 使用 vim 編輯 hosts 文件&#xff1a; vim /etc/hosts按 I 進入編輯模式&#xff0c;在文件末行追加上虛擬機的 IP 和要設置的域名&#xff1a; 192.168.1.17 gitlab.kunwu.toplwindows環境&#xff1a; Windows 系統的 hosts 文件位于 C:\Windows\S…

萬賓科技智能井蓋傳感器效果,特點有哪些?

現在城市發展越來越好&#xff0c;對基礎設施的改造越來越多&#xff0c;比如修路搭橋、整改生態等都是為民服務的好工程。平時走在路上我們享受著平整的路面&#xff0c;井然有序的交通也為我們帶來很大的方便。但是一個又一個的井蓋看起來無關緊要&#xff0c;實際上如果路上…

Doris的編譯與安裝(二)

安裝 Doris&#xff0c;需要先通過源碼編譯&#xff0c;主要有兩種方式&#xff1a; 使用 Docker 開發鏡像編譯&#xff08;推薦&#xff09;、直接編譯。 直接編譯的方式&#xff0c;可以參考官網&#xff1a;https://doris.apache.org/zh-CN/installing/compilation.html …

投標文件的注意事項

一、檢查標書 1.1有時候標書需要從別的地方復制黏貼文件&#xff0c;記住復制內容可以&#xff0c;但是不要復制“落款和時間”的格式&#xff0c;落款和時間的格式借鑒你的招標文件中給響應文件格式的落款和時間&#xff0c;切記&#xff01; 1.2檢查標書是否有空頁&#xf…

數據科學導論——數據預處理

第1關:引言-根深之樹不怯風折,泉深之水不會涸竭 第2關:數據清理-查漏補缺 import numpy as np import pandas as pd import matplotlib.pyplot as plt def student():train = pd.read_csv(Task1/diabetes_null.csv, na_values=[#NAME?])train[Insulin] = train[Insulin].f…

maxwell采集數據到kafka報錯

問題&#xff1a; 啟動maxwell后出現數據更新后就出現以下報錯。 13:29:14,727 ERROR MaxwellKafkaProducer - TimeoutException Position[BinlogPosition[binlog.000002:12215591], lastHeartbeat1700717043797] -- maxWellData: medical:consultation:[(id,212)] 13:29:14,7…

Raptor安裝

Raptor官網:https://raptor.martincarlisle.com/ 進入官網后&#xff0c;下拉找到 Download RAPTOR&#xff0c;windows系統的選擇Windows Users 下載完成后打開&#xff0c;選擇“next” 修改一下路徑&#xff0c;不要放到C: 繼續next 完結撒花

vue3的單組件的編寫(三)【響應式 API 之 toRef 與 toRefs】

響應式 API 之 toRef 與 toRefs 前面講了 ref 和 reactive 這兩種響應式API &#xff0c;為了方便開發者使用&#xff0c;vue3 還出了兩個用來 reactive 轉換為 ref 的API&#xff0c;分別是 toRef 和 toRefs 。 &#x1f308;什么是toRef 與 toRefs 這兩個API看拼寫能猜到&…