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.hqwc.cn/news/210869.html

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

相关文章

S71200通过PROFINET协议和岛电数字控制器通讯

项目要求 西门子S71200PLC需要通过PROFINET协议和岛电数字控制器(型号:SRS13A)通讯,读取温度的测量值PV和设定值SV。 项目实施 采用NET90-PN-MBT(以下简称“网关”),它是一款将Modbus TCP/RT…

mybatis 基本操作 删除 插入 更新 查询

根据主键删除数据 插入数据 -- 插入 insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time) values (tom,塔姆,tom,1 , 1.png ,now(),1,now(),now() Options(keyProperty "id",useGeneratedKeys true) Insert(&quo…

小黑子—Maven高级

Maven高级篇 二 小黑子的Maven高级篇学习1. 分模块开发1.1 分模块开发设计1.2 分模块开发实现1.2.1 抽取domain层1.2.2 抽取dao层 2. 依赖管理2.1 依赖传递2.2 可选依赖2.3 排除依赖 3. 继承与聚合3.1 聚合3.2 继承3.3 总结 4. 属性4.1 配置文件加载属性4.2 版本管理 5. 多环境…

《实现领域驱动设计》笔记——上下文映射图

一个项目的上下文映射图可以用方式来表示。比较容易的一种是画一个简单的框图表示两个或多个限界上下文之间的映射关系。该框图表示了不同的限界上下文在解决方案空间中是如何通过集成相互关联的。另一种更详细的方式是通过限界上下文集成的源代码实现来表示。 上下文映射图为什…

Selenium(12):层级定位_通过父元素找到子元素

层级定位 在实际的项目测试中,经常会遇到无法直接定位到需要选取的元素,但是其父元素比较容易定位,通过定位父元素再遍历其子元素选择需要的目标元素,或者需要定位某个元素下所有的子元素。 层级定位的思想是先定位父对象&#xf…

Delphi读写IC卡数据、修改IC卡认证密钥源码

本示例使用的设备:Android Linux RFID读写器NFC发卡器WEB可编程NDEF文本/智能海报/-淘宝网 (taobao.com) 函数声明 unit declaredll;interface//读卡函数声明function piccreadex(ctrlword:byte;pserial:pbyte;area:byte;keyA1B0:byte;picckey:pbyte;piccdata0_2:…

uni-app开发小程序,利用scroll-view实现自动滚动至对应数据

uniapp scroll-view 官网 vue文件内容&#xff1a;dom: <scroll-view scroll-y :scroll-into-view"seqToView"><view class"pop-scroll"><viewv-for"(item,index) in seqList":id"seq- item":key"index"cl…

性能测试你还不会做?看看这篇文章你就懂了!

性能测试的概述 性能&#xff1a;百度百科定义&#xff1a;器物的性质与效用。 生活中&#xff1a;买手机&#xff0c;买电脑&#xff0c;买车 –》 性能好&#xff1a;快&#xff08;时间短&#xff09;、资源 软件的性能&#xff1a;软件在允许的范围内使用过程中的反应的…

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

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

易涝积水点监测,内涝积水监测仪安装

城市内涝对人们来讲会有很多影响&#xff0c;比如出行需要绕远路或者家中涌入污水导致淤泥堆积&#xff0c;这还有可能让屋内的家具受到破坏&#xff0c;既影响正常生活也造成了经济损失。在街道上还可能对交通、通讯、电力等基础设施造成严重威胁。因此政府如果能实时监测路面…

2024消费行业数字化增长,从“盲人摸象”到“按图索骥”

自2015年“互联网”兴起以来&#xff0c;消费行业就面临着消费者、市场和数字化技术的碎片化挑战。在数字中台的推动下&#xff0c;消费企业开始“一路向C”&#xff0c;将各种企业资源平台化&#xff0c;期望用后端数字化推动前端的增长。而2023年大模型和生成式AI&#xff0c…

如何截留快手行业意向用户:10个合规方法大揭秘

先来看实操成果&#xff0c;↑↑需要的同学可看我名字↖↖↖↖↖&#xff0c;或评论888无偿分享 一、引言 随着互联网的发展&#xff0c;快手已成为一个巨大的流量池&#xff0c;吸引了无数用户。其中&#xff0c;不乏许多行业的意向用户。如何截留这些意向用户&#xff0c;成…