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.mzph.cn/news/163524.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL基础理论篇(九):存储过程

文章目录 简介存储过程的形式定义一个存储过程使用delimiter定义语句结束符存储过程中的三种参数类型流控制语句 存储过程的优缺点参考文献 简介 存储过程Stored Procedure,SQL中的另一个重要应用。 前面说的视图,只能勉强跟编程中的函数相似&#xff…

小程序订阅消息

wx.requestSubscribeMessage({tmplIds: [2IdqlWrqSbjAurzIuW8imeK-ftS8gbhYdZ0icdE],success(res) {console.log(res);// 处理用户授权结果},fail(err) {console.error(err);// 处理授权请求失败}});

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

期刊动态:2023年11月SCI、SSCI期刊目录更新 2023年11月20日,科睿唯安更新了WOS期刊目录,继上次10月WOS期刊目录剔除7本SCIE&SSCI期刊之后,此次11月更新又有5本期刊发生变动,其中有4本SCIE期刊被剔除,1…

微信运营神器:从群发到批量添加,让你的微信营销更轻松

在这个数字化时代,微信已经成为了我们生活中不可或缺的一部分。对于许多企业和个人来说,微信营销也是非常重要的一部分。但是,微信营销并不是一件容易的事情,需要花费大量的时间和精力。为了解决这个问题,今天我们将向…

Linux本地MinIO存储服务远程调用上传文件

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,…

淘宝返利APP草柴如何绑定淘宝账号?

草柴APP是一款淘宝、天猫、京东大额优惠券领取及购物返利省钱工具。通过草柴APP绑定淘宝账号,可领取淘宝大额内部隐藏优惠券,领取成功再购物可享券后价优惠,确认收货后可获得淘宝返利。 淘宝返利APP草柴如何绑定淘宝账号? 1、手…

Docker 快速搭建 Gitlab 服务

linux环境: 使用 vim 编辑 hosts 文件: vim /etc/hosts按 I 进入编辑模式,在文件末行追加上虚拟机的 IP 和要设置的域名: 192.168.1.17 gitlab.kunwu.toplwindows环境: Windows 系统的 hosts 文件位于 C:\Windows\S…

万宾科技智能井盖传感器效果,特点有哪些?

现在城市发展越来越好,对基础设施的改造越来越多,比如修路搭桥、整改生态等都是为民服务的好工程。平时走在路上我们享受着平整的路面,井然有序的交通也为我们带来很大的方便。但是一个又一个的井盖看起来无关紧要,实际上如果路上…

投标文件的注意事项

一、检查标书 1.1有时候标书需要从别的地方复制黏贴文件,记住复制内容可以,但是不要复制“落款和时间”的格式,落款和时间的格式借鉴你的招标文件中给响应文件格式的落款和时间,切记! 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报错

问题: 启动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/ 进入官网后,下拉找到 Download RAPTOR,windows系统的选择Windows Users 下载完成后打开,选择“next” 修改一下路径,不要放到C: 继续next 完结撒花

vue3的单组件的编写(三)【响应式 API 之 toRef 与 toRefs】

响应式 API 之 toRef 与 toRefs 前面讲了 ref 和 reactive 这两种响应式API ,为了方便开发者使用,vue3 还出了两个用来 reactive 转换为 ref 的API,分别是 toRef 和 toRefs 。 🌈什么是toRef 与 toRefs 这两个API看拼写能猜到&…

css渐变详解(重复性线性渐变、径向渐变、重复性径向渐变的使用)

目录 线性渐变 重复性线性渐变 径向渐变 重复性径向渐变的使用 线性渐变 线性渐变是向下、向上、向左、向右、对角方向的颜色渐变。 其语法格式为: background-image: linear-gradient(side-or-corner|angle, linear-color-stop); 参数说明如下: …

Linux 安装显卡驱动

Linux 安装显卡驱动

scrapy框架流程

1、Scrapy从Spider子类中提取start_url,然后构造为request请求对象 2、将request请求对象传递给爬虫中间件 3、将request请求对象传递给Scrapy引擎(核心代码) 4、将request请求对象传递给调度器(它负责对多个request安排,好比交…

Python计算DICOM图像两点真实距离

Python计算DICOM图像两点真实距离 对比测量结果图Code对比测量结果图 DICOM阅读器(小赛看看)测量结果 python测量结果 Code import numpy as np import cv2 import math import pydicom from pydicom.pixel_data_handlers.util import convert_color_spaceds = pydicom.dc…

高通Camera HAL3: CamX、Chi-CDK要点

目录 一、概述 二、目录 三、CamX组件之前的关系 一、概述 高通CamX架构是高通实现的相机HAL3架构,被各OEM厂商广泛采用。 二、目录 代码位于vendor/qcom/proprietary下: camx:通用功能性接口的代码实现集合chi-cdk:可定制化…

如何正确接入API接口通过淘宝商品ID和sku ID获取到淘宝商品SKU信息接口,可获取sku价格,sku销量,sku图片及sku库存参数等

接入API接口的正确方式可能因API的具体要求而有所不同,但一般来说,以下是一些通用的步骤: 获取API文档:API文档通常包括API的请求方式、请求参数、响应格式等信息。您需要仔细阅读文档,了解API的具体要求和使用方式。…

MDK AC5和AC6是什么?在KEIL5中添加和选择ARMCC版本

前言 看视频有UP主提到“AC5”“AC6”这样的词,一开始有些不理解,原来他说的是ARMCC版本。 keil自带的是ARMCC5,由于ARMCC5已经停止维护了,很多开发者会选择ARMCC6。 在维护公司“成年往事”项目可能就会遇到新KEIL旧版本编译器…