Skywalking APM监控系列(二、Mysql、Linux服务器与前端JS接入Skywalking监听)

skywalking,apm,监控,系列,mysql,linux,服务器,前端,js,接入,监听 · 浏览次数 : 54

小编点评

**Skywalking 在 MySQL 数据库监听和 Linux 服务器监听的步骤** **1. 安装工具** * **node_exporter**:用于从 MySQL 数据库中收集数据。 * **mysqld-exporter**:用于从 MySQL 数据库中收集数据。 **2. 创建配置文件** * **otel-collector-config.yaml**:用于配置 node_exporter。 * **mysql-config.yaml**:用于配置 mysqld-exporter。 **3. 启动 node_exporter 服务** ```bash # 创建系统服务 vim /etc/systemd/system/node_exporter.service # 将内容添加到服务文件 [Unit] Description=Node exporter service Documentation=https://prometheus.io After=network.target[Service] Type=simple User=rootGroup=rootExecStart=/home/skywalking/node_exporter-1.6.1.linux-amd64/node_exporter # 启动node_exporter服务 systemctl start node_exporter ``` **4. 配置 mysqld-exporter** * 将 `DATA_SOURCE_NAME` 环境变量设置为 `mysql_exporter:mysql_exporter@(mysql地址:3306)/`。 **5. 启动 mysqld-exporter 服务** ```bash # 启动mysqld-exporter服务 docker run -d -p 9104:9104 --name mysqld-exporte -e DATA_SOURCE_NAME=mysql_exporter:mysql_exporter@(mysql地址:3306)/ -e TZ=Asia/Shanghai prom/mysqld-exporter:v0.14.0 ``` **6. 配置 pentenlemetry-collector** * 创建文件 `otel-collector-config.yaml`。 * 在 `receivers` 中添加以下配置: * `prometheus`:用于从 prometheus 中收集数据。 * `prometheus/2`:用于从 prometheus/2 中收集数据。 * `gateway.docker.internal`:用于从主机服务器中收集数据。 * 修改 `scrape_configs` 中的 `targets` 值。 * 重新启动 pentenlemetry-collector 服务。 **7. 配置前端 JS** * 引入 `skywalking-client-js` 包。 * 在 `_Layout`母版页中添加 JS 引用的代码。 **8. 测试** 访问您的应用程序,应该能够正常连接到 MySQL 数据库和监控其运行状态。

正文

前言

上篇我们介绍了Skywalking的基本概念与如何接入.Net Core项目,感兴趣可以去看看:

Skywalking APM监控系列(一丶.NET5.0+接入Skywalking监听)

本篇我们主要讲解一下Skywalking如何接入mysql数据库监听与Linux服务器的监听

其实从Skywalking设计之初 应该只是单独的链路跟踪,发展到现在 已经成为了一个成熟的APM框架了.

既然是APM那我们当然需要监听到数据库情况和服务器的情况.

本篇就讲讲如何监听这些数据

 

Mysql接入Skywalking

 

mysql接入Skywalking需要两个工具:

mysqld-exporter

pentelemetry-collector

他们一个负责数据库的数据采集,一个负责将采集到的数据汇总后发送给Skywalking的OAP服务,并最终通过UI展示在界面上.

所以,我们需要先安装这两个工具,当然,他们也是支持容器化的,所以这里采用docker运行,如下:

1.部署mysqld-exporter

docker run -d -p 9104:9104 --name mysqld-exporte  -e DATA_SOURCE_NAME=mysql_exporter:mysql_exporter@(mysql地址:3306)/  -e TZ=Asia/Shanghai prom/mysqld-exporter:v0.14.0

这里,我们通过环境变量DATA_SOURCE_NAME,直接将数据库连接给赋予mysqld-exporter

 

2.部署pentelemetry-collector

首先我们需要创建pentelemetry-collector的yaml配置文件,创建文件otel-collector-config.yaml,输入内容如下:

receivers:
  prometheus:
    config:
     scrape_configs:
       - job_name: 'mysql-monitoring'
         scrape_interval: 5s
         static_configs:
           - targets: ['mysqld-exporter:9104'] #这里是mysqld-exporter的地址
             labels:
               host_name: showcase
processors:
  batch:

exporters:
  otlp:
    endpoint: SkyWalking OAP 地址:11800
    tls:
      insecure: true
service:
  pipelines:
    metrics:
      receivers:
      - prometheus
      processors:
      - batch
      exporters:
      - otlp

这里解释一下含义:

1)receivers 用于配置 Collector 的数据来源,这里是从 prometheus 的 mysqld_exporter 抓取数据;

2)exporters 用于配置要将接收到的数据发送到哪里,这里是发送到 SkyWalking OAP ;

3)processors 指定如何处理接收到的数据;

4)service 配置将整个 pipelines 串起来。

然后我们运行pentelemetry-collector容器,命令如下:

docker run -d -p 55678:55678--name otel-collector  -v /home/otel-collector-config.yaml:/etc/otel-collector-config.yaml  -e TZ=Asia/Shanghai otel/opentelemetry-collector:0.86.0 --config=/etc/otel-collector-config.yaml

这里将我们刚写好的otel-collector-config.yaml文件映射至容器内,并通过这个配置运行pentelemetry-collector.

这样就完成了整个部署工作

3.效果预览

 

 

 

 

Linux服务器接入Skywalking

Linux服务器接入Skywalking也需要两个工具:

node_exporter

pentelemetry-collector

他们一个负责数据库的数据采集,一个负责将采集到的数据汇总后发送给Skywalking的OAP服务,并最终通过UI展示在界面上.

所以,我们需要先安装这两个工具,虽然node_exporter支持容器化运行,但是需要额外配置一些其他的东西,所以我们采取直接运行在linux主机上.(官网的最佳实践也是建议直接跑在服务器中)

1.我们需要先安装node_exporter,下载地址如下:

Release 1.6.1 / 2023-06-17 · prometheus/node_exporter (github.com)

各位根据需要,自行下载,(需小技巧上网)

然后我们将下好的压缩包复制到服务器上

通过命令解压,如下:

tar -xvf node_exporter-1.6.1.linux-amd64.tar.gz

然后,我们需要创建一个系统服务,让node_exporter能够开机自启并通过系统管控,执行命令如下:

vim /etc/systemd/system/node_exporter.service

复制如下内容:

[Unit]
Description=node exporter service
Documentation=https://prometheus.io
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/home/skywalking/node_exporter-1.6.1.linux-amd64/node_exporter #这里是node_exporter的解压地址
Restart=on-failure

[Install]
WantedBy=multi-user.target

执行命令刷新系统服务命令:

systemctl daemon-reload

开启node_exporter服务命令:

systemctl start node_exporter

这里服务默认监听9100端口,请勿占用,如需变更,可以自行百度...

这样就完成了node_exporter的安装

 

2.修改pentelemetry-collector的配置

我们直接修改otel-collector-config.yaml如下:

receivers:
  prometheus:
    config:
      scrape_configs:
        - job_name: "vm-monitoring" # make sure to use this in the vm.yaml to filter only VM metrics
          scrape_interval: 10s
          static_configs:
            - targets: ['gateway.docker.internal:9100'] # 这里是主机服务器的采集地址
  prometheus/2:
    config:
     scrape_configs:
       - job_name: 'mysql-monitoring'
         scrape_interval: 5s
         static_configs:
           - targets: ['gateway.docker.internal:9104']  # 这里是主机mysql的采集地址
             labels:
               host_name: showcase

processors:
  batch:
  batch/2:

exporters:
  otlp:
    endpoint: gateway.docker.internal:11800 # 这里是OAP Server address

    tls:
      insecure: true
  otlp/2:
    endpoint: gateway.docker.internal:11800  # 这里是OAP Server address
    tls:
      insecure: true
    #insecure: true

service:
  pipelines:
    metrics:
      receivers: [prometheus]
      processors: [batch]
      exporters: [otlp]
    metrics/2:
      receivers: [prometheus/2]
      processors: [batch/2]
      exporters: [otlp/2]

改好配置后,我们重启上面的pentelemetry-collector服务即可

3.效果预览

 

 

 

 

前端JS如何接入Skywalking

Skywalking同时是可以支持监听整个前端的错误信息与运行情况的

相对来说也比较简单引入skywalking-client-js 这个包就可以了.

不过也要提一下,比如我们的前端可能托管在MVC.是通过视图来实现的前端,而不是各种前端脚手架.

那就需要单独引入一下.

我们通过npm引入skywalking-client-js 这个包

然后添加前端JS引用代码如下

    <script src="~/scripts/skywalking-client-js/lib/index.js"></script>

直接在_Layout母版页编写JS代码如下:

 ClientMonitor.register({
     // 基础配置
     collector: GetService("skyaop"), //这里填写skywalkingapo的地址
     service: 'SPD_Web',
     serviceVersion: '@JSConfig.Version',
     pagePath: window.location.href,
     useFmp: true
 })

这样,我们所有引用了母版页的前端界面 就都纳入到监听下了.

与Skywalking APM监控系列(二、Mysql、Linux服务器与前端JS接入Skywalking监听)相似的内容:

Skywalking APM监控系列(二、Mysql、Linux服务器与前端JS接入Skywalking监听)

前言 上篇我们介绍了Skywalking的基本概念与如何接入.Net Core项目,感兴趣可以去看看: Skywalking APM监控系列(一丶.NET5.0+接入Skywalking监听) 本篇我们主要讲解一下Skywalking如何接入mysql数据库监听与Linux服务器的监听 其实从Sky

Skywalking APM监控系列(一丶.NET5.0+接入Skywalking监听)

前言 新项目采用的abp vnext的微服务模块化架构,所以把应用的服务拆成了很多独立模块 在初期,我们通过日志还能跟踪到问题, 后期服务越来越多(大约扩充到了十几个),随着调用链路越来越深 ,问题也越来越能排查了. 往往入口报错之后,要跟好几个服务的日志 才能找到最终节点. 所以考虑引入Skywa

skywalking

-javaagent:skywalking-agent.jar -Dskywalking.agent.service_name=master5202 -Dskywalking.collector.backend_service=127.0.0.1:11800 export JAVA_HOME=/sk

[转帖]Skywalking介绍

https://www.jianshu.com/p/ffa7ddcda4ab 微服务架构已经是一个很通用的系统架构,常见的技术栈如下图所示,这张架构图基本涵括了当前微服务体系下的各种技术栈,可能不同的技术栈有不同的开源实现。 Screen Shot 2022-01-23 at 12.48.19 PM

[转帖]Skywalking学习及整合springboot

目录 1. Skywalking概述 2. Skywalking主要功能 3. Skywalking主要特性 4. Skywalking架构简介 5. Spring Cloud与Skywalking实战 5.1 Skywalking部署构建 5.3 Spring Cloud整合Skywalking实

[转帖]skywalking配置nacos集群模式

版本: nameversionnacos1.1.0skywalking6.2.0elasticsearch6.3.2 es集群管理工具 cerebro-0.8.3 https://github.com/lmenezes/cerebro 前置: es、nacos至少各有一个 1 开始: 1.将 apa

SkyWalking的学习之一

SkyWalking的学习之一 前言 最近在学习应用调优诊断等内容. 现在实际工作中实质上的拆分和微服务在售前阶段 所以真正用到链路的地方比较少. 但是人生都是要向前看的. 想着一方面提高自己. 一方面也是为了以后着想. 在一个看不到未来和光的地方, 要么离开,要么继续深入掘进. Skywalkin

[转帖]Skywalking介绍

https://www.jianshu.com/p/ffa7ddcda4ab/ 1.1 2022.01.23 17:23* 字数 1733 阅读 129682评论 0喜欢 16 微服务架构已经是一个很通用的系统架构,常见的技术栈如下图所示,这张架构图基本涵括了当前微服务体系下的各种技术栈,可能不同的

[转帖]SkyWalking集成logback

1.引入skywalking的jar包,导入的包和agent版本一致 org.apache.skywalking apm-toolkit-trace 8.12.0

[转帖]Skywalking介绍

https://www.jianshu.com/p/ffa7ddcda4ab 微服务架构已经是一个很通用的系统架构,常见的技术栈如下图所示,这张架构图基本涵括了当前微服务体系下的各种技术栈,可能不同的技术栈有不同的开源实现。 Screen Shot 2022-01-23 at 12.48.19 PM