prometheus-operator监控mysql

Prometheus MySQL 性能监控 Prometheus 是一种开源的监控系统和时序数据库,旨在收集和处理大量数据并提供可视化、监控警报等功能。它支持多种语言、多种部署方式,并且非常灵活,而且社区支持非常活跃,为用户提供了很多优秀的解决方案。MySQL 是一种流行的关系型数据库管理系统,用于存储和管理结构化数据。MySQL 数据库对于 web 应用程序、企业级应用程序和数据仓库等应用场景都非常适用。 阅读详情

之前有一个是使用docker-compose部署的exporter服务.这篇文章使用deploy部署服务.

先看下配置信息

直接上yaml文件,这里为了简单,将所有的配置都写到了一个文件中,这里只是做了配置,后面才是创建相关信息,以及展开说明了下各个项目的配置

[root@prometheus-operator /zpf/prometheus/exporter]$cat deploy-all.yaml
---
# ConfigMap 配置:存储 MySQL Exporter 的连接配置
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-exporter-config  # ConfigMap 名称
  namespace: monitoring       # 部署在 monitoring 命名空间
data:
  my.cnf: |                   # 配置文件内容,会被挂载到容器中
    [client]
    host=192.168.59.21        # MySQL 服务器地址
    user=app                  # 连接用户名
    password=mysql            # 连接密码
    port=3306                 # MySQL 端口

# Deployment 配置:定义 MySQL Exporter 的部署方式
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql-exporter        # Deployment 名称
  namespace: monitoring       # 部署在 monitoring 命名空间
  labels:
    app: mysql-exporter       # 标签,用于 Service 和 ServiceMonitor 选择
spec:
  replicas: 1                 # 副本数量
  selector:
    matchLabels:
      app: mysql-exporter     # 选择器,匹配 Pod 标签
  template:
    metadata:
      labels:
        app: mysql-exporter   # Pod 标签,与 selector 匹配
    spec:
      imagePullSecrets:
        - name: aliyun-docker-images-registry  # 私有镜像拉取密钥
      containers:
      - name: mysql-exporter
        image: registry.cn-beijing.aliyuncs.com/scorpio/mysqld-exporter:0.17.2  # 镜像地址
        args:                   # 启动参数
          - "--collect.info_schema.processlist"    # 启用各种收集器
          - "--collect.info_schema.innodb_metrics"
          - "--collect.info_schema.tablestats"
          - "--collect.info_schema.tables"
          - "--collect.info_schema.userstats"
          - "--collect.engine_innodb_status"
          - "--config.my-cnf=/etc/mysql/my.cnf"    # 指定配置文件路径
        ports:
        - containerPort: 9104   # 容器暴露的端口
        volumeMounts:
        - name: config-volume   # 挂载 ConfigMap 到容器
          mountPath: /etc/mysql
      volumes:
      - name: config-volume     # 定义 volume,来源是 ConfigMap
        configMap:
          name: mysql-exporter-config  # 引用上面定义的 ConfigMap

# Service 配置:为 MySQL Exporter 创建服务端点
---
apiVersion: v1
kind: Service
metadata:
  name: mysql-exporter        # Service 名称
  namespace: monitoring       # 部署在 monitoring 命名空间
  labels:
    app: mysql-exporter       # 标签,用于 ServiceMonitor 选择
spec:
  selector:                   # 选择器,关联到 Deployment 的 Pod
    app: mysql-exporter       # 匹配 Deployment 中定义的 Pod 标签
  ports:
    - name: http-metrics      # 端口名称,被 ServiceMonitor 引用
      port: 9104              # Service 端口
      targetPort: 9104        # 目标容器端口
      protocol: TCP
  type: ClusterIP             # 服务类型,集群内部访问

# ServiceMonitor 配置:告诉 Prometheus 如何发现和抓取指标
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: mysql-exporter        # ServiceMonitor 名称
  namespace: monitoring       # 部署在 monitoring 命名空间
spec:
  endpoints:
  - port: http-metrics        # 引用 Service 中定义的端口名称
    interval: 15s             # 抓取间隔
  selector:
    matchLabels:
      app: mysql-exporter     # 选择器,匹配 Service 的标签
  namespaceSelector:
    matchNames:
    - monitoring              # 只监控 monitoring 命名空间中的服务

说明一下各部分的作用:

部署ConfigMap

用于后面deploy文件的挂载,实现mysql-client的配置持久化

#配置一个Configmap,将mysql-client需要的配置信息,后面会以configmap的形式挂载到deploy中,
# ConfigMap 配置:存储 MySQL Exporter 的连接配置
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-exporter-config  # ConfigMap 名称
  namespace: monitoring       # 部署在 monitoring 命名空间
data:
  my.cnf: |                   # 配置文件内容,会被挂载到容器中
    [client]
    host=192.168.59.21        # MySQL 服务器地址
    user=app                  # 连接用户名
    password=mysql            # 连接密码
    port=3306                 # MySQL 端口

创建DeployMent,是mysqld-exporter的工作容器主体
# Deployment 配置:定义 MySQL Exporter 的部署方式
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql-exporter        # Deployment 名称
  namespace: monitoring       # 部署在 monitoring 命名空间
  labels:
    app: mysql-exporter       # 标签,用于 Service 和 ServiceMonitor 选择
spec:
  replicas: 1                 # 副本数量
  selector:
    matchLabels:
      app: mysql-exporter     # 选择器,匹配 Pod 标签
  template:
    metadata:
      labels:
        app: mysql-exporter   # Pod 标签,与 selector 匹配
    spec:
      imagePullSecrets:
        - name: aliyun-docker-images-registry  # 私有镜像拉取密钥
      containers:
      - name: mysql-exporter
        image: registry.cn-beijing.aliyuncs.com/scorpio/mysqld-exporter:0.17.2  # 镜像地址
        args:                   # 启动参数
          - "--collect.info_schema.processlist"    # 启用各种收集器
          - "--collect.info_schema.innodb_metrics"
          - "--collect.info_schema.tablestats"
          - "--collect.info_schema.tables"
          - "--collect.info_schema.userstats"
          - "--collect.engine_innodb_status"
          - "--config.my-cnf=/etc/mysql/my.cnf"    # 指定配置文件路径
        ports:
        - containerPort: 9104   # 容器暴露的端口
        volumeMounts:
        - name: config-volume   # 挂载 ConfigMap 到容器
          mountPath: /etc/mysql
      volumes:
      - name: config-volume     # 定义 volume,来源是 ConfigMap
        configMap:
          name: mysql-exporter-config  # 引用上面定义的 ConfigMap
创建Service,用于代理上面创建的deploy服务对外提供访问用

# Service 配置:为 MySQL Exporter 创建服务端点
---
apiVersion: v1
kind: Service
metadata:
  name: mysql-exporter        # Service 名称
  namespace: monitoring       # 部署在 monitoring 命名空间
  labels:
    app: mysql-exporter       # 标签,用于 ServiceMonitor 选择
spec:
  selector:                   # 选择器,关联到 Deployment 的 Pod
    app: mysql-exporter       # 匹配 Deployment 中定义的 Pod 标签
  ports:
    - name: http-metrics      # 端口名称,被 ServiceMonitor 引用
      port: 9104              # Service 端口
      targetPort: 9104        # 目标容器端口
      protocol: TCP
  type: ClusterIP             # 服务类型,集群内部访问
创建operator使用的Monitoring资源,

创建这个资源服务的作用是将已经对外提供的服务让prometheus-operator读取到.

也就是prometheus知道从哪里拉取监控数据


# ServiceMonitor 配置:告诉 Prometheus 如何发现和抓取指标
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: mysql-exporter        # ServiceMonitor 名称
  namespace: monitoring       # 部署在 monitoring 命名空间
spec:
  endpoints:
  - port: http-metrics        # 引用 Service 中定义的端口名称
    interval: 15s             # 抓取间隔
  selector:
    matchLabels:
      app: mysql-exporter     # 选择器,匹配 Service 的标签
  namespaceSelector:
    matchNames:
    - monitoring              # 只监控 monitoring 命名空间中的服务

创建上面的各项服务

创建资源
#创建资源
[root@prometheus-operator /zpf/prometheus/exporter]$kubectl  create -f deploy-all.yaml
service/mysql-exporter created
servicemonitor.monitoring.coreos.com/mysql-exporter created
configmap/mysql-exporter-config created
deployment.apps/mysql-exporter created
查看各部分创建结果
#查看ConfigMap创建结果
[root@prometheus-operator /zpf/prometheus/exporter]$kubectl get cm -A|grep mysql
monitoring                        mysql-exporter-config                                  1      67s
#查看创建详细信息
[root@prometheus-operator /zpf/prometheus/exporter]$kubectl get cm -n monitoring                        mysql-exporter-config -o yaml
apiVersion: v1
data:
  my.cnf: |
    [client]
    host=192.168.59.21
    user=app
    password=mysql
    port=3306
kind: ConfigMap
metadata:
  creationTimestamp: "2025-04-22T03:09:31Z"
  name: mysql-exporter-config
  namespace: monitoring
  resourceVersion: "8080337"
  uid: 3829a17f-ab58-451f-bffb-614212e9811d

#查看deploy创建结果
[root@prometheus-operator /zpf/prometheus/exporter]$kubectl get deploy -A|grep mysql
monitoring                     mysql-exporter                    1/1     1            1           76s

#查看service创建结果
[root@prometheus-operator /zpf/prometheus/exporter]$kubectl get svc -A|grep mysql
monitoring                     mysql-exporter                            ClusterIP   10.233.37.86    <none>        9104/TCP                        82s
#查看ServiceMonitor创建结果
[root@prometheus-operator /zpf/prometheus/exporter]$kubectl get ServiceMonitor -A|grep mysql
monitoring   mysql-exporter            2m1s
验证页面是否已经抓取到exporter的相关信息

页面已经可以展示mysql-exporter的相关信息.

Prometheus+Grafana监控Mysql数据库 使用Prometheus + Grafana对mysql数据库进行监测 阅读详情

相关推荐

Prometheus实战教程:监控mysql数据库

使用prometheus+Grafana+mysql_exporter实现监控mysql数据库各项指标数据。 mysql_exporter:采集mysql数据库各项指标数据 prometheus:获取mysql_exporter数据 Grafana:展示prometheus采集的数据

guting18893110463的博客 1442

prometheus 监控mysql数据库

prometheus 监控mysql数据库

bearboy80的专栏 1万+

将 MySQL 通过 bitpoke/mysql-operator 部署到 k8s 内部

目前 openbayes 的几乎所有组件都部署在 k8s 内部,但 mysql 作为核心的数据存储节点对其要求都蛮高的,通常来说是需要独立部署的,对于目前的业务场景,其要求主要包含以下几点: 需要持久化存储,一旦数据丢失问题非常严重 对性能有要求,不然会拖垮依赖它的一切服务 需要一些额外的备份机制,可以快速的从一个备份做恢复 需要对应的监控体系 mysql 需要可以比较容易的通过各种客户端访问,方便不同的角色对数据做分析或者做 debug 在规模比较大的时候可能会做读写分离 之所以希望将 mysql 部

eisen 的博客 1197

用Prometheus全面监控MySQL服务:一篇文章搞定

在现代应用中,MySQL数据库的性能和稳定性对业务至关重要。有效的监控可以帮助预防问题并优化性能。Prometheus作为一款强大的开源监控系统,结合Grafana的可视化能力,可以提供全面的MySQL监控方案。上述执行的命令当初我尝试是在同一个网络组之下运行,如果你也想尝试一定要先建立好网络组不然会报错,不知道如何配置的可以看我另外一篇文章直达链接最后说一句(求关注,别白嫖我)如果这篇文章对您有所帮助,或者有所启发的话,帮忙扫描下发二维码关注一下,您的支持是我坚持写作最大的动力。

舒一笑的博客 7222

手把手教你用VM实现欧姆龙PLC数据采集(含Fins协议配置详解)

本文详细介绍了如何使用VM(VisionMaster)实现与欧姆龙PLC的数据采集,重点解析了Fins协议(包括Fins TCP/UDP)的配置步骤。从网络环境搭建、PLC的IP地址设置,到VM端Fins通讯通道的详细配置与数据点映射,提供了完整的实战指南。文章还涵盖了数据收发解析、常见问题排查清单,帮助工程师快速完成视觉系统与PLC的稳定集成。

weixin_29171087的博客 189

搞定汽车座椅电机EMC超标:一个PCB滤波板的实战设计与避坑心得

本文详细介绍了汽车座椅电机EMC超标问题的解决方案,通过PCB滤波板的实战设计,解决了传导发射测试超标问题。文章分享了在空间受限条件下的滤波电路架构设计、接地系统优化及迭代验证过程,为汽车直流电机的EMC整改提供了实用方法论。

weixin_30336061的博客 379

Prometheus Operator终极指南:如何高效监控MySQL主从复制与性能指标

Prometheus Operator是一款强大的工具,能够帮助用户在Kubernetes环境中轻松部署和管理Prometheus监控系统,实现对MySQL主从复制与性能指标的高效监控。 ## 一、Prometheus Operator架构解析 Prometheus Operator的架构设计清晰,能够实现对监控对象的有效管理。其核心组件包括Operator、Prometheus Server

gitblog_00114的博客 755

Wonderware Intouch 2014R2 SP1 安装教程

下载Wonderware System Platform 2014R2 SP1 and Intouch 2014R2 SP1的安装压缩包,如下 软件的下载连接地址如下: https://pan.baidu.com/s/1a2GnI_nfT3vK1l49B94FIQ, 提取码:6ec6 或者直接微信扫描下面的二维码 管理员运行下面的setup.exe可执行程序, 进入安装,选择Product Based Selection, 自定义选择需要安装的程序,如下: 普通的Into

工控先生 3万+

Prometheus Operator监控数据库:MySQL与PostgreSQL最佳实践

你是否还在为数据库性能问题排查头疼?当业务高峰期遇到MySQL连接数暴增或PostgreSQL查询延迟时,是否因为缺乏实时监控而错失最佳处理时机?本文将带你通过Prometheus Operator(普罗米修斯运营商)实现对MySQL和PostgreSQL数据库的零侵入监控,无需复杂配置即可掌握关键指标,读完你将获得: - 3分钟部署数据库监控的实操指南 - 12个核心性能指标的解读方法 - 开箱...

gitblog_00337的博客 844

OrCAD Capture CIS 17.4 原理图绘制

OrCAD Capture CIS 17.4 原理图绘制

qq_38960013的博客 7633

水下机器人仿真平台选型指南:从AirSim到Unity3D的深度对比

本文深入对比了AirSim+UE和Unity3D两大水下机器人仿真平台的核心架构、传感器仿真能力和水下环境建模特点。AirSim+UE凭借高精度物理仿真和丰富传感器支持成为专业研发首选,而Unity3D则以快速开发和灵活扩展见长。文章为研发团队提供了全面的选型指南,帮助优化水下实验的仿真效率与成本。

weixin_29009669的博客 451

使用prometheus operator监控部署在k8s集群外的mysql实例

问题背景 平台使用了mysql,部署在k8s集群之外,但是prometheus operator部署在集群内部,涉及如何监控外部的mysql实例问题。 问题调研 MySQL的监控可以使用prometheus的mysql-exporter暴露metrics;对于mysql处在k8s集群外场景,使用手工创建k8s的endpoint对象,创建时指定endpoint对...

V 云原生实践课堂 1795

Python 爬虫实战:从零搭建第一个爬虫程序(附完整代码)

本文介绍了Python网络爬虫的入门实战,以豆瓣Top250电影榜单为例,详细讲解爬虫开发全流程。内容包括爬虫基础原理、环境搭建、请求发送与响应处理、数据解析与保存等核心环节,并提供了可直接运行的完整代码示例。文章还分析了常见问题解决方案,并强调了爬虫开发的合规注意事项。通过本教程,读者可快速掌握Python爬虫的基本思路和实操技巧,为后续深入学习BeautifulSoup、XPath等进阶技术打下基础。

2503_91057718的博客 2316

Prometheus Operator实战—— Prometheus、Alertmanager、Grafana 监控mysql

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下的产品。MySQL是最流行的关系型数据库管理系统之一。数据库的稳定运行是保证业务可用性的关键因素之一。本文将介绍如何使用Prometheus提供的MySQLD Exporter实现对MySQL数据库性能以及资源利用率的监控和度量。

LoveSummer 4万+

RK3588芯片CAN总线调试秘籍:SocketCAN与错误帧攻略

RK3588芯片在嵌入式领域凭借8nm工艺和强大性能成为核心控制器。本文详细介绍了其CAN总线配置流程,包括硬件连接、内核驱动配置及SocketCAN命令操作,并深入解析了CAN通信中的错误帧机制及分析方法。通过智能工厂案例,展示了从问题定位到解决方案的全过程,强调了稳定通信对工业应用的重要性。文章为RK3588的CAN总线应用提供了实用技术参考,并对未来智能诊断技术在该领域的应用进行了展望。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 514

2023年电工杯 | 2023年电工杯数学建模竞赛思路(A题、B题)

2023年电工杯 | 2023年电工杯数学建模竞赛思路(A题、B题)

前程算法屋的博客 5593

prometheus mysql http_prometheus operator监控外部应用mysql

mysqld_exporter官方文档:https://github.com/prometheus/mysqld_exporter下载exporter:wgethttps://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz设置expo...

weixin_33998152的博客 328

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

prometheus-operator部署服务监控其他节点mysql服务

创建本地my.cnf文件,用户挂载到docker-compose中就,进行配置文件持久化。这里我使用的是单节点部署k8s服务仅作为测试使用,生产环境根据实际情况做修改.prometheus监控页面成功显示mysql相关信息。用于exporter到mysql服务上进行数据采集.所以通过页面应该是可以看到mysql的相关指标信息.创建docker-compose文件,部署。

crontab_e的博客 581

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

k8s容器内部通过Prometheus Operator部署MySQL Exporter监控k8s集群外部的MySQL

k8s容器内部通过Prometheus Operator部署MySQL Exporter监控k8s集群外部的MySQL在按照下面步骤操作之前,请先确保服务器已经部署k8s,prometheus,prometheus operator,关于这些环境的部署,可以自行查找相关资料安装部署,本文档便不在此赘述。关于prometheus监控这部分,大致的系统架构图如下,感兴趣的同学可以自行研究一下,这里就不再具体说明。

qq_39287495的博客 1275

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

监控mysql数据变化_Kubernetes kubeprometheus中添加自定义监控项监控MySQL

以前传统方式去监控一个mysql服务,首先需要安装mysql-exporter,获取mysql metrics,并且暴露一个Port端口,等待prometheus服务来拉取监控信息,然后去Prometheus Server的prometheus.yaml文件中在scarpe_config中添加mysql-exporter的job,配置mysql-exporter的地址和端口等信息,再然后...

weixin_39892565的博客 1402

【K8S使用Helm部署MySQL一主多从并集成Prometheus监控】

本文基于 K8s 实验环境,采用 Helm 工具完成 MySQL 集群自动化部署。文中依次完成 Helm 安装、配置文件自定义、集群部署与状态校验等操作,保障集群稳定运行。同时结合 Prometheus 与 Grafana 组件搭建监控体系,完成监控实例接入与可视化面板配置,实现对 MySQL 集群运行状态、各项性能指标的实时观测。整套方案流程清晰、可落地性强,不仅提升了数据库部署与运维效率,也为云原生架构下 MySQL 集群的搭建、日常运维与故障排查提供了完整的实践参考

m0_63756214的博客 238

云原生环境 Prometheus 企业级监控实战

node-exporter + prometheus + grafana是一套非常流行的 Kubernetes 监控方案。它们的功能如下:

zlyyljlckx的博客 1438

实战指南:5分钟在Kubernetes上部署高可用MySQL集群的秘诀

还在为Kubernetes环境中的MySQL高可用部署而烦恼吗?传统的数据库部署方式在容器化环境中显得力不从心,手动配置复制、故障转移和备份不仅耗时耗力,还容易出错。MySQL Operator正是为了解决这一痛点而生,它让数据库管理员和开发者在Kubernetes上获得"一键式"的MySQL高可用体验。 ## 为什么MySQL Operator是Kubernetes数据库管理的革命性工具?

gitblog_01098的博客 631

3个技术突破让你轻松管理Kubernetes上的MySQL集群:解决高可用与自动化运维难题

在云原生时代,数据库的高可用性和自动化运维一直是技术团队面临的重大挑战。传统的MySQL部署在Kubernetes环境中常常面临故障切换延迟、备份恢复复杂、扩缩容困难等问题。MySQL Operator的出现,正是为了解决这些痛点,让MySQL在Kubernetes上的管理变得简单而可靠。 ## 场景挑战:当MySQL遇上Kubernetes的困境 许多团队在将MySQL迁移到Kubernet

gitblog_00770的博客 409

基于Prometheus Operator的Kubernetes监控体系实战部署

本文详细介绍了基于Prometheus Operator在Kubernetes中构建自动化监控体系的实战部署过程。通过Operator模式,将Prometheus从手动配置的‘宠物’转变为声明式管理的‘牲畜’,利用ServiceMonitor等CRD实现动态服务发现,大幅简化了k8s监控环境的构建与维护。

sky77的博客 450
上一篇: prometheus-operator部署服务监控其他节点mysql服务
下一篇: jenkins授权管理.
被一米六支配的恐惧
博客等级 码龄9年 246粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值