sykwalking8.2和mysql5.7快速部署

1.SkyWalking 是什么?

分布式系統的應用程序性能監視工具,專為微服務、云原生架構和基于容器(Docker、K8s、Mesos)架構而設計。

提供分布式追蹤、服務網格遙測分析、度量聚合和可視化一體化解決方案。

2.SkyWalking 有哪些功能?

  • 多種監控手段。可以通過語言探針和 service mesh 獲得監控是數據。
  • 多個語言自動探針。包括 Java,.NET Core 和 Node.JS。
  • 輕量高效。無需大數據平臺,和大量的服務器資源。
  • 模塊化。UI、存儲、集群管理都有多種機制可選。
  • 支持告警。
  • 優秀的可視化解決方案。

3.整體架構

架構圖

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

考慮到讓描述更簡單,我們舍棄掉 Metric 指標相關,而著重在 Tracing 鏈路相關功能。

  • 上部分?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?:負責提供控臺,查看鏈路等等。

4.搭建 SkyWalking 單機環境

4.1使用各種數據庫作為skywalking數據存儲的地方,可以是es,mysql,h2等

4.2在官網下載skywalking?

Index of /dist/skywalkingicon-default.png?t=N6B9https://archive.apache.org/dist/skywalking/

?

?將下載好的包上傳至服務器,并解壓

mkdir -p /Users/yunai/skywalking
cd /Users/yunai/skywalking
tar -zxvf 文件名

$ ls -ls4 drwxr-xr-x 8 root root  4096 Sep  9 15:09 agent # SkyWalking Agent4 drwxr-xr-x 2 root root  4096 Sep  9 15:44 bin # 執行腳本4 drwxr-xr-x 2 root root  4096 Sep  9 15:44 config # SkyWalking OAP Server 配置文件
32 -rwxr-xr-x 1 root root 28903 Sep  9 14:32 LICENSE4 drwxr-xr-x 3 root root  4096 Sep  9 15:44 licenses
32 -rwxr-xr-x 1 root root 31850 Sep  9 14:32 NOTICE
16 drwxr-xr-x 2 root root 16384 Sep  9 15:22 oap-libs # SkyWalking OAP Server4 -rw-r--r-- 1 root root  1978 Sep  9 14:32 README.txt4 drwxr-xr-x 2 root root  4096 Sep  9 15:44 webapp # SkyWalking UI

?4.3 啟動步驟

正文

Skywalking整體分為 3 個部分:agent,backend,UI

  • agent?代理,應用啟動的時候后,通過該agent收集數據并上報backend
  • backend?數據收集器,agent收集的數據會發送給backend,然后數據處理后入庫。
  • ui也就是提供可視化服務的界面。

在安裝前,請在官方網址進行下載:下載地址,下載的時候,請一定注意了不是第一行的Source Code而是第二行的Binary Distribution

backend

如上所述:backend的目的是收集agent的上報的數據,然后持久化到存儲中,起到承上啟下的功能,所以首先安裝backend

前置知識

與之先關的目錄和文件主要是如下幾個:

  • bin目錄下的oapService.sh,它就是?backend?的啟動腳本
  • config目錄下的application.yml,它是backend的配置信息
  • oap-libsbackend啟動需要的所有jar
  • logs目錄下的skywalking-oap-server.log是啟動后的日志文件。

啟動步驟

以下內容是 基于MySQL作為存儲來講解的。

第一步:修改config下的配置文件application.yml

  • storage.selector修改為mysql,默認是用于演示的h2,你也可以選擇自己的存儲介質。
  • 然后找到store下的?mysql節點
  • 修改mysql.properties中基本信息:jdbcUrl/dataSource.user/dataSource.password

2020年08月10日 補充

低估了 skywalking 使用數據空間的能力,差點導致了生產事故,幸好收到了短信提示,及時處理。這里補充下注意事項

在 該配置文件下還有:recordDataTTLmetricsDataTTL,表示的數據數據保存的時間,單位是天,分別為 3天 和 7天。

我這個服務有 3 個服務節點,12 個小時就占用了18G 的內存空間,這樣算下來,基本上一個節點一小時最起碼就占用了 0.5G 的空間。

所以請大家一定要注意評估你數據庫的存儲空間!

第二步:將mysql的驅動包,拷貝到opa-libs目錄中。官方可沒有自帶mysql的驅動包,所以請自行下載后拷貝到這個目錄。

  • mysql8一定要找對應的mysql8的?jar?包,不要找mysql5.7的驅動包,MySql8驅動
  • mysql5.7的數據庫,最好也是5.7的(理論上 8 的也是兼容),MySQL5.7驅動

如果上述流程完成后,嘗試運行bin目錄下的oapService.sh

sh oapService.sh

然后查看logs/skywalking-oap-server.log的日志,如果失敗會有日志,接下來你就見招拆招吧。

啟動后,你可以通過如下幾種方式觀察是否成功。

第一就是可以通過查看端口運行情況判定:

lsof -i:12800 #數據上報端口,很重要的端口
lsof -i:11800

如果端口被占用,日志又沒有錯誤保存,那么基本啟動成功了。

第二就是查看jdbcUrl對應的數據庫是否已經默認創建好了數據表。

Bug1

我在本文的時候,發現日志報錯了一個錯誤,提示:Data too long for column 'statement' at row 1

簡單查了下應該是Segment表的字段statement,原本是?200的長度,我將其改為 2000,該問題目前為止沒有再輸出。

還有就是top_n_database_staement有這個字段,我暫時也將其修改到了2000

同時提了issue官方也很快做出了響應,建議修改為2000。直達地址

Bug2

提示:Specified key was too long; max key length is 767 bytes

最簡單的方法就是將參數:innodb_large_prefix修改為ON,其他方法請自行百度了解

ui

該組件將數據可視化出來,供大家更直觀的查看數據。

前置知識

與之關聯的目錄和文件大體如下:

  • bin下的webappService.shUI的啟動腳本
  • webapp目錄,其中包括了 2 個重要的東西
    • webapp.yml,包括?UI啟動的端口和上報地址
    • skywalking-webapp.jar,啟動 jar包
  • logs下的文件webapp.log

啟動步驟

第一步:修改webapp.yml,其默認的端口是經典的8080,所以還是修改為一個特殊點的端口,避免啟動出錯。

第二部:修改collecotr.ribbon.listofServers的?ip實際運行的?ip

第三步:通過 bin 下的webappService.sh啟動

sh webappService.sh

不要看到控制臺輸出SkyWalking Web Application started successfully!就認為 OK 了。

還是要自己看看日志webapp.log有沒有報錯內容。、

agent

agent?的作用是同應用一起啟動,將應用的指標數據上傳。agent?我記得是可以共享的,就是所有的應用都用同一個?agent,但是為了安全,還是建議每個應用一個?agent

與之相關的目錄為agent,其中最關鍵的就是agent/config/agent.config這個配置文件

以下是使用步驟:

  1. 拷貝一份agent到任意一個你喜歡的地方,我喜歡放在 jar包的同級目錄。
  2. 修改agent.config中的參數
    1. agent.service_name修改實際的,同一個應用多個實例,其?service_name相同
    2. agent.instance_name每個實例都應該是唯一的,建議自行修改,這樣UI上可視化后,更有意義。
    3. collector.backend_service修改為實際的backend所在主機的ip和端口。
  3. 在 jar包啟動腳本中添加如下命令-javaagent:/xxx/agent/skywalking-agent.jar

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

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

相關文章

Spring Task入門案例

Spring Task 是Spring框架提供的任務調度工具,可以按照約定的時間自動執行某個代碼邏輯。 定位:定時任務框架 作用:定時自動執行某段Java代碼 強調:只要是需要定時處理的場景都可以使用Spring Task 1. cron表達式 cron表達式…

Java多線程線程間的通信—wait及notify方法

線程間的相互作用 線程間的相互作用:線程之間需要一些協調通信,來共同完成一件任務。 Object類中相關的方法有兩個notify方法和三個wait方法: Object (Java Platform SE 7 ) 因為wait和notify方法定義在Object類中,因此會被所有的類所繼承。 這些方法都是final的,即它們…

樹形dp模板

285. 沒有上司的舞會 - AcWing題庫 #include<iostream> #include<cstdio> #include<cstdlib> #include<string> #include<cstring> #include<cmath> #include<ctime> #include<algorithm> #include<utility> #include&…

Visual Studio 與QT ui文件

對.ui文件鼠標右鍵&#xff0c;然后單擊 Open with…在彈出的窗口中&#xff0c;選中左側的 Qt Designer&#xff0c;然后單擊右側的 Add 按鈕&#xff0c;隨后會彈出一個窗口&#xff0c;在 Program: 輸入框中輸入 Qt Designer 的路徑&#xff0c;最后單擊 OK找到 Qt Designer…

內網ip與外網ip

一、關于IP地址 我們平時直接接觸最多的是內網IP。而且還可以自己手動修改ip地址。而外網ip&#xff0c;我們很少直接接觸&#xff0c;都是間接接觸、因為外網ip一般都是運營商管理&#xff0c;而且是全球唯一的&#xff0c;一般我們自己是無法修改的。 內網IP和外網IP是指在…

突破大模型 | Alluxio助力AI大模型訓練-成功案例(一)

更多詳細內容可見《Alluxio助力AI大模型訓練制勝寶典》 【案例一&#xff1a;知乎】多云緩存在知乎的探索:從UnionStore到Alluxio 作者&#xff1a;胡夢宇-知乎大數據基礎架構開發工程師&#xff08;內容轉載自InfoQ&#xff09; 一、背景 隨著云原生技術的飛速發展&#xff…

零基礎看懂免費開源的Stable Diffusion

文章目錄 前言Diffusion模型推理過程訓練過程 Stable Diffusion模型參考 前言 前面一篇文章主要講了擴散模型的理論基礎&#xff0c;還沒看過上篇的小伙伴可以點擊查看&#xff1a;DDPM理論基礎。這篇我們主要講一下一經推出&#xff0c;就火爆全網的Stable Diffusion模型。St…

django中使用ajax發送請求

1、ajax簡單介紹 瀏覽器向網站發送請求時 是以URL和表單的形式提交的post 或get 請求&#xff0c;特點是&#xff1a;頁面刷新 除此之外&#xff0c;也可以基于ajax向后臺發送請求&#xff08;異步&#xff09; 依賴jQuery 編寫ajax代碼 $.ajax({url: "發送的地址"…

filebeat多實例運行,kibana組件的基本使用

filebeat多實例運行: 1)需求 一臺服務器上&#xff0c;需要運行多個filebeat實例 2)啟動filebeat實例1 cat > config/11-log_tcp-to-console.yaml <<EOF filebeat.inputs: - type: log paths: - /tmp/oldboyedu-linux82/*.log # 監聽TCP的參數 - type:…

centos 安裝docker

1.更新你的系統: sudo yum update -y2.安裝必需的軟件包: Docker 需要 yum-utils, device-mapper-persistent-data 和 lvm2 軟件包來運行。安裝它們&#xff1a; sudo yum install -y yum-utils device-mapper-persistent-data lvm23.設置 Docker 的倉庫: 使用以下命令添加 D…

關于Redis,你需要學習了解的知識

關于 Redis &#xff0c;涵蓋多個方面&#xff0c;從基礎概念到高級應用&#xff0c;以及最佳實踐等。比如以下內容&#xff1a; 認識 Redis&#xff1a; Redis 是什么&#xff1f;它的特點和優勢是什么&#xff1f;Redis 的數據結構&#xff1a;字符串、哈希、列表、集合、有序…

Kafka的下載安裝以及使用

一、Kafka下載 下載地址&#xff1a;https://kafka.apache.org/downloads 二、Kafka安裝 因為選擇下載的是 .zip 文件&#xff0c;直接跳過安裝&#xff0c;一步到位。 選擇在任一磁盤創建空文件夾&#xff08;不要使用中文路徑&#xff09;&#xff0c;解壓之后把文件夾內容…

Redis 持久化

一、RDB 1.1 RDB持久化流程 fork子進程是阻塞的&#xff0c;如果同時開啟RDB和AOF&#xff0c;默認使用AOF。 1、Redis父進程首先判斷: 當前是否在執行save&#xff0c;或bgsave/bgrewriteaof (aof文件重寫命令)的子進程&#xff0c;如果在執行則bgsave命令直接返回。 2、父進…

劍指offer專題2:隊列和棧

用兩個棧模擬隊列 class CQueue {stack<int> stack1;stack<int> stack2; public:CQueue() {}void appendTail(int value) {stack1.push(value);}int deleteHead() {int val-1;if(!stack2.empty()){val stack2.top();stack2.pop();}else if(!stack1.empty()){while…

【左神算法刷題班】第18節:漢諾塔問題、島嶼問題、最大路徑和問題

第18節 題目1&#xff1a;漢諾塔問題&#xff08;變體&#xff09; 體系學習班18節有講暴力遞歸的漢諾塔原題。 給定一個數組arr&#xff0c;長度為N&#xff0c;arr中的值只有1&#xff0c;2&#xff0c;3三種 arr[i] 1&#xff0c;代表漢諾塔問題中&#xff0c;從上往下第…

Terraform 系列-批量創建資源時如何根據某個字段判斷是否創建

系列文章 Terraform 系列文章Grafana 系列文章 概述 前文 Grafana 系列 - Grafana Terraform Provider 基礎 介紹了使用 Grafana Terraform Provider 創建 Datasource. 這幾天碰到這么一個現實需求&#xff1a; 使用 Terraform 批量創建日志數據源時, 有的數據源類型是 El…

MongoDB 數據庫詳細介紹

MongoDB 數據庫詳細介紹 MongoDB&#xff08;來自“Humongous”&#xff0c;意為巨大的&#xff09;是一個開源、高性能、無模式&#xff08;NoSQL&#xff09;、文檔導向的分布式數據庫。它以其靈活性、可擴展性和強大的查詢功能而聞名于世。MongoDB 使用 JSON 格式的文檔來存…

主從同步介紹、主從同步原理、主從同步結構、構建思路、配置一主一從、配置一主多從、讀寫分離介紹、工作原理、配置mycat服務、添加數據源、創建集群、指定主機角

Top NSD DBA DAY07 案例1&#xff1a;MySQL一主一從案例2&#xff1a;配置一主多從結構案例3&#xff1a;數據讀寫分離 1 案例1&#xff1a;MySQL一主一從 1.1 問題 數據庫服務器192.168.88.53配置為主數據庫服務器數據庫服務器192.168.88.54配置為從數據庫服務器客戶端192…

網絡編程(8.14)TCP并發服務器模型

作業&#xff1a; 1. 多線程中的newfd&#xff0c;能否修改成全局&#xff0c;不行&#xff0c;為什么&#xff1f; 2. 多線程中分支線程的newfd能否不另存&#xff0c;直接用指針間接訪問主線程中的newfd,不行&#xff0c;為什么&#xff1f; 多線程并發服務器模型原代碼&…

排查docker無法啟動問題

查看Linux系統操作日志(最后200行就可以排查)&#xff1a; tail -200f /var/log/messages