Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Skywalking APM监控系列(二、Mysql、Linux服务器与前端JS接入Skywalking监听)

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

作者头像
GuZhenYin
发布于 2023-10-19 10:22:13
发布于 2023-10-19 10:22:13
1.4K00
代码可运行
举报
文章被收录于专栏:GuZhenYinGuZhenYin
运行总次数:0
代码可运行

前言

上篇我们介绍了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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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,输入内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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容器,命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)

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

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

通过命令解压,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar -xvf node_exporter-1.6.1.linux-amd64.tar.gz

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/systemd/system/node_exporter.service

复制如下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl daemon-reload

开启node_exporter服务命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start node_exporter

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

这样就完成了node_exporter的安装

2.修改pentelemetry-collector的配置

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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引用代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <script src="~/scripts/skywalking-client-js/lib/index.js"></script>

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 ClientMonitor.register({
     // 基础配置
     collector: GetService("skyaop"), //这里填写skywalkingapo的地址
     service: 'SPD_Web',
     serviceVersion: '@JSConfig.Version',
     pagePath: window.location.href,
     useFmp: true
 })

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Kubernetes运维-使用Skywalking进行链路追踪
目前监控k8s集群指标是SkyWalking v9版本新特性,配置的时候网上一篇文章没有,搞了很久,记录一下,经验之谈就是多番找GitHub中 Issues 和阅读官方文档。
王先森sec
2024/01/25
9550
Kubernetes运维-使用Skywalking进行链路追踪
架构解析系列-OTeL &amp; Micrometer 在 Spring Boot 中的应用与分析
之前在 聊聊 SpringBoot3 的 Micrometer Tracing 这篇文章中我介绍了 SpringBoot3 使用 Micrometer Tracing 来作为分布式链路组件的来龙去脉,在那篇文章中也提及了 SpringBoot 在 可观测性部分官方默认使用的是 Micrometer 来实现。
磊叔的技术博客
2025/06/09
710
架构解析系列-OTeL &amp; Micrometer 在 Spring Boot 中的应用与分析
OpenTelemetry 实战:从零实现应用指标监控
在上一篇文章:OpenTelemetry 实战:从零实现分布式链路追踪讲解了链路相关的实战,本次我们继续跟进如何使用 OpenTelemetry 集成 metrics 监控。
crossoverJie
2024/09/30
3460
Opentelemetry Collector的配置和使用
collector通过pipeline处理service中启用的数据。pipeline由接收遥测数据的组件构成,包括:
charlieroro
2020/10/30
6.1K0
Opentelemetry Collector的配置和使用
使用 OpenTelemetry Collector 采集 Kubernetes 指标数据
Kubernetes 已成为一个被广泛采用的行业工具,对可观测性工具的需求也在不断增加。为此,OpenTelemetry 创建了许多不同的工具,来帮助 Kubernetes 用户观察他们的集群和服务。
我是阳明
2023/09/11
2.3K0
使用 OpenTelemetry Collector 采集 Kubernetes 指标数据
利用Prometheus与Grafana对Mysql服务器的性能监控详解
Prometheus是源于 Google Borgmon的一个开源监控系统,用 Golang开发。被很多人称为下一代监控系统。Grafana是一个开源的图表可视化系统,简单说图表配置比较方便、生成的图表比较漂亮。下面就介绍了利用Prometheus与Grafana对Mysql服务器性能监控的方法。
拓荒者
2019/03/11
1.1K0
利用Prometheus与Grafana对Mysql服务器的性能监控详解
实操 OpenTelemetry:通过 Demo 掌握微服务监控的艺术
在上一篇文章 OpenTelemetry 实践指南:历史、架构与基本概念中回顾了可观测性的历史以及介绍了一些 OpenTelemetry 的基础概念,同时也介绍了 OpenTelemetry 社区常用的开源项目。
crossoverJie
2024/07/07
6520
5.Prometheus监控入门之企业监控实战采集展示
描述: 本章主要讲解和实践Prometheus在企业中的应用场景的复现,采用了docker-compose的资源清单进行快速构建prometheus_server、prometheus_pushgateway、prometheus_alertmanager、grafana等环境。
全栈工程师修炼指南
2022/09/29
9400
5.Prometheus监控入门之企业监控实战采集展示
【实践】6.Prometheus-exporter原理和监控MySQL,Redis,主机实践
本文介绍Prometheus的Exporter组件的作用,原理,已经使用该组件对主机,MySQL,Redis等实施监控的实践。
辉哥
2021/04/01
1.4K0
【实践】6.Prometheus-exporter原理和监控MySQL,Redis,主机实践
OpenObserve 指标和链路追踪方面的支持
前面我们讲到了 OpenObserve 的基本使用,使用 Fluentd 将日志采集后输出到了 OpenObserve,此外 OpenObserve 还支持指标和链路追踪。
我是阳明
2023/08/21
1.4K0
OpenObserve 指标和链路追踪方面的支持
使用OpenTelemetry监控Nginx指标和日志
Nginx 指标和日志的监控对于确保 Nginx 的性能符合预期以及快速识别和解决问题至关重要。在本教程中,您将安装 OpenTelemetry Collector 来收集 Nginx 指标和日志,然后将收集的数据发送到 SigNoz 进行监控和可视化分析。
云云众生s
2024/03/28
1.1K0
使用OpenTelemetry监控Nginx指标和日志
Language APIs & SDKs-C++-Exporters
Send telemetry to the OpenTelemetry Collector to make sure it’s exported correctly. Using the Collector in production environments is a best practice. To visualize your telemetry, export it to a backend such as Jaeger , Zipkin , Prometheus , or a vendor-specific backend. 将遥测数据发送到OpenTelemetry Collector以确保其导出正确。在生产环境中使用收集器是最佳实践。要可视化您的遥测数据,请将其导出到后端,例如 Jaeger、Zipkin、 Prometheus或特定于供应商的后端。
方亮
2024/05/24
1070
Prometheus+Grafana监控MySQL
$ yum install go $  go version go1.6.3 linux/amd64
拓荒者
2019/03/11
1.5K0
Elastic APM 和 OpenTelemetry 集成 (使用otel collector)
OpenTelemetry是一个云原生计算基金会 (CNCF) 沙盒项目,它提供了供应商中立的、特定于语言的代理、SDK 和 API,您可以使用它们从所有受监控的应用程序中收集分布式跟踪、指标和日志数据。OpenTelemetry 代理能够自动检测应用程序代码以显示性能数据,这些数据对于帮助您了解服务的健康状况非常重要——为应用程序开发人员提供了选择和选择哪些代理监控其应用程序的灵活性。
点火三周
2022/05/30
5K3
基于OpenTelemetry实现Java微服务调用链跟踪
随着业务的发展,所有的系统都会走向微服务化体系,微服务进行拆分后,服务的依赖关系变得复杂,如果出现了错误和异常,定位的过程将会变得复杂,一个请求可能需要调用很多个服务,所以微服务架构中,分布式链路跟踪的实现至关重要,去跟进一个请求到底有哪些服务参与,参与的顺序又是怎样的,从而达到每个请求的步骤清晰可见。如何快速查询整个请求链路上的信息并呈现出来是解决排查问题复杂度的根本方法。
用户1107783
2024/04/11
2740
基于OpenTelemetry实现Java微服务调用链跟踪
Prometheus 监控mysql容器
这里我们演示中,prometheus以及mysqld_exporter都使用容器进行运行。这里我的服务器配置为阿里云2h4g
abcdocker
2020/06/15
1.6K0
Prometheus 监控mysql容器
手把手教你使用 Prometheus 监控 MySQL 与 MariaDB
roc,腾讯高级工程师,Kubernetes Contributor,热爱开源,专注云原生领域。目前主要负责腾讯云TKE 的售中、售后的技术支持,根据客户需求输出合理技术方案与最佳实践,为客户业务保驾护航。 概述 MySQL 是常用的关系型数据库,MariaDB 作为 MySQL 的分支版本,兼容 MySQL 协议,也越来越流行。在 Kubernetes 环境中如何使用 Prometheus 来对它们进行监控呢?通常是借助开源的 mysqld-exporter 来实现,本文将围绕这个主题展开详细介绍下。
腾讯云原生
2020/11/02
9940
Kubernetes 集群监控 kube-prometheus 自动发现
前面我们一起配置了如何在 kube-prometheus 下面新增一个监控项 Kubernetes 集群监控 ETCD 组件。如果我们在 Kubernetes 集群中有了很多的 Service 和 Pod,那么我们都得一个一个的去建立一个对应的 ServiceMonitor 对象来进行监控吗?这样岂不是又变得很繁琐起来了?
高楼Zee
2021/03/16
7.1K0
Kubernetes 集群监控 kube-prometheus 自动发现
使用OpenTelemetry监控Docker容器
监控 Docker 容器指标对于理解容器的性能和健康情况至关重要。OpenTelemetry Collector 可以收集 Docker 容器指标,并将其发送到您选择的后端。在本教程中,您将安装一个 OpenTelemetry Collector 来收集 Docker 容器指标,并将其发送到 SigNoz,这是一个用于监控和可视化的 OpenTelemetry 原生 APM。
云云众生s
2024/03/28
4380
使用OpenTelemetry监控Docker容器
云服务器指标采集
● 选择Node_exporter作为指标采集器,因其成熟社区以及腾讯云云监控默认指标维度、粒度都不够;
tinkerli
2024/06/25
5300
云服务器指标采集
推荐阅读
相关推荐
Kubernetes运维-使用Skywalking进行链路追踪
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档