APM工具skywalking部署

news2024/11/17 8:24:06

一 整体架构

整体架构整个架构,分成上、下、左、右四部分:

  • 上部分 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: 10s
                static_configs:
                  - targets: ["0.0.0.0:1234"]
                    labels:
                      host_name: vmlinux
                      service: self-observability
      processors:
        batch:
      
      exporters:
        otlp:
          endpoint: "your IP:11800" # The OAP Server address
          tls:
            insecure: true
        logging:
          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: 10s
          static_configs:
            - targets: ["0.0.0.0:9100"]
              labels:
                node_identifier_host_name: vm-machine
        - job_name: "skywalking-so11y"
          scrape_interval: 10s
          static_configs:
            - targets: ["0.0.0.0:1234"]
              labels:
                host_name: vmlinux
                service: self-observability
processors:
  batch:

exporters:
  otlp:
    endpoint: "you IP:11800" # The OAP Server address
    tls:
      insecure: true
  logging:
    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: 10s
              static_configs:
                - targets: ["0.0.0.0:9100"]
                  labels:
                    node_identifier_host_name: vm-machine
            - job_name: "skywalking-so11y"
              scrape_interval: 10s
              static_configs:
                - targets: ["0.0.0.0:1234"]
                  labels:
                    host_name: vmlinux
                    service: self-observability
            - job_name: "redis-monitoring"
              scrape_interval: 10s
              static_configs:
                - targets: ["0.0.0.0:9121"]
                  labels:
                    host_name: redis
    processors:
      batch:
    
    exporters:
      otlp:
        endpoint: "your IP:11800" # The OAP Server address
        tls:
          insecure: true
      logging:
        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: 10s
              static_configs:
                - targets: ["0.0.0.0:9100"]
                  labels:
                    node_identifier_host_name: vm-machine
            - job_name: "skywalking-so11y"
              scrape_interval: 10s
              static_configs:
                - targets: ["0.0.0.0:1234"]
                  labels:
                    host_name: vmlinux
                    service: self-observability
            - job_name: "mysql-monitoring"
              scrape_interval: 10s
              static_configs:
                - targets: ["0.0.0.0:9104"]
                  labels:
                    host_name: mysql8
            - job_name: "redis-monitoring"
              scrape_interval: 10s
              static_configs:
                - targets: ["0.0.0.0:9121"]
                  labels:
                    host_name: redis
    
    processors:
      batch:
    
    exporters:
      otlp:
        endpoint: "your IP:11800" # The OAP Server address
        tls:
          insecure: true
      logging:
        loglevel: debug
    service:
      pipelines:
        metrics:
          receivers: [prometheus]
          processors: [batch]
          exporters: [otlp, logging]
    
    1. 重启OpenTelemetry Collector

      systemctl restart otelcol
      

4.4.3 访问查看

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1242669.html

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

相关文章

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

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

mongo DB -- aggregate分组查询后字段展示

一、分组查询 在mongoDB中可以使用aggregate中的$group操作对集合中的文档进行分组,但是查询后的数据不显示其他字段,只显示分组字段 aggregate进行分组示例 db.collection.aggregate([{$group: {_id: "$field"}},]) 查询后显示 展开只显示两个字段 二、显示所有字段…

10.分组循环练习题

分组循环 https://leetcode.cn/problems/longest-even-odd-subarray-with-threshold/solutions/2528771/jiao-ni-yi-ci-xing-ba-dai-ma-xie-dui-on-zuspx/?envTypedaily-question&envId2023-11-16 分组循环 适用场景: 按照题目要求,数组会被分割成若…

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

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

邻趣连接力:如何无代码集成CRM、电商平台和营销系统,提升广告推广效率

连接即服务:邻趣无代码集成方法 传统的电商系统集成过程需要大量的时间和资源进行API开发,这不仅耗时耗力,还需要专业的技术团队支持。然而,邻趣通过提供一种无需API开发的连接方法,极大地简化了整个集成过程。商家只…

3D人脸扫描设备助力企业家数字人复刻,打破商业边界

京都薇薇推出数字人VN,以京都薇薇董事长为原型制作,赋能品牌直播、短片宣传、线上面诊等活动,进一步增强消费者对品牌的交互体验,把元宇宙与品牌相融合,推动品牌线上服务与线下服务实现数字一体化,打造一个…

【C/C++】排序算法代码实现

这里&#xff0c;汇总了常见的排序算法具体代码实现。使用C语言编写。 排序算法实现 插入排序冒泡排序选择排序快速排序希尔排序归并排序 插入排序 #include <stdio.h> #include <stdlib.h>void InsertSort(int arr[],int n){int i,j,temp;for(i 1;i < n;i){ …

捷诚管理信息系统 SQL注入漏洞

声明 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 一、产品介绍 捷诚管理信息系统是一款功能全面&#xff0c;可以支持自…

【独家发布】抖音半蓝V官方免费认证技术

先在巨量引擎升级dou账号 随后上传资料进行验证即可 逐步操作 全程实操保姆及教程 后续0粉点亮蓝v技术教程 来自&#xff1a;人类小徐-分享有价值的资源

构建个性化预约服务:预约上门服务系统源码解读与实战

随着社会的发展&#xff0c;预约上门服务系统在满足用户需求、提升服务效率方面发挥着越来越重要的作用。在本文中&#xff0c;我们将深入研究预约上门服务系统的源码&#xff0c;通过实际的技术代码示例&#xff0c;揭示系统内部的关键机制&#xff0c;以及如何在实际项目中应…

数据治理技术:研究现状与数据规范

随着信息技术的迅速发展,数据规模逐渐扩大&#xff0c;与此同时&#xff0c;劣质数据也随之而来&#xff0c;极大地降低了数据挖掘的质量&#xff0c;对信息社会造成了严重的困扰&#xff0c;劣质数据大量存在于很多领域和机构&#xff0c;国外权威机构的统计表明&#xff1a;美…

OpenSearch开发环境安装Docker和Docker-Compose两种方式

文章目录 简介常用请求创建映射写入数据查询数据其他 安装Docker方式安装OpenSearch安装OpenSearchDashboard Docker-Compose方式Docker-Compose安装1.设置主机环境2.下载docker-compose.yml文件3.启动docker-compose4.验证 问题问题1&#xff1a;IPv4 forwarding is disabled.…

完美解决:在Ubuntu18.04下ROS Melodic基于python3的cv_bridge的一点子歪门邪道

由于在Ubuntu18.04下ROS Melodic是运行在python 2.7环境下&#xff0c;而我的程序需要运行在anaconda创建的python 3.x环境里&#xff0c;这就需要用到cv_bridge这个库&#xff0c;而不出意外的&#xff0c;各种报错&#xff0c;比如&#xff1a; from cv_bridge.boost.cv_bri…

竞赛选题 题目:垃圾邮件(短信)分类 算法实现 机器学习 深度学习 开题

文章目录 1 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器 3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于机器学习的垃圾邮件分类 该项目…

【RtpRtcp】3: webrtc m79:video 相关创建及切片、发送

m79 的 客户端代码流程。 对于视频帧: CreateRtpStreamSenders 管理一组RtpStreamSender ,每一个RtpStreamSender 都进行rtp包的发送: 具体发送是RTPSenderVideo 处理,RTPSenderVideo 对收到的h264 帧,进行帧分片rtp,然后一组包一起使用LogAndSendToNetwork 发送的。 Rtp…

解决vue中引入天地图显示不全问题,设置setTimeout即可解决!

index.html中引入天地图api <script type"text/javascript" src"https://api.tianditu.gov.cn/api?v4.0&tk你的key"></script>map.vue中初始化天地图 //初始化天地图 initTMap() {const T window.T;// 3.初始化地图对象this.tMap new…

探索WebStorm 2023 Mac/win:最强大的JavaScript开发工具

在当今的软件开发领域&#xff0c;JavaScript已经成为了一种不可或缺的编程语言。而在众多的JavaScript开发工具中&#xff0c;WebStorm一直以其强大的功能和友好的用户界面脱颖而出。现在&#xff0c;我们迎来了全新的WebStorm 2023版本&#xff0c;它将带给开发者们更加出色的…

Vue中使用Echarts实现数据可视化

文章目录 引言一、安装Echarts二、引入Echarts三、创建图表容器四、初始化Echarts实例五、配置图表选项和数据六、实现图表更新七、Vue实例代码结语我是将军&#xff0c;我一直都在&#xff0c;。&#xff01; 引言 接着上一篇内容&#xff0c;我将继续分享有关数据可视化的相…

VM CentOS7安装ffmpeg

项目中涉及给视频添加水印&#xff0c;使用到了ffmpeg&#xff0c;windows系统可直接使用&#xff0c;Linux需要手动编译完成ffmpeg后才可正常使用。 配置yum源: 备份原repo文件 cd /etc/yum.repos.d/mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.r…

从制造/金融/教育/医疗行业实战场景里,了解如何基于亚马逊云科技LLM相关工具打造知识库

背景 本篇将为大家阐述亚马逊云科技大语言模型下沉到具体行业进行场景以及实施案例的介绍&#xff0c;是亚马逊云科技官方《基于智能搜索和大模型打造企业下一代知识库》系列的第四篇博客。感兴趣的小伙伴可以进入官网深入了解其核心组件、快速部署指南以及LangChain集成及其在…