Kube-Prometheus Stack监控mysql

2023-05-16

准备环境

mysql 环境可以搭建2个或者一个来进行监控
我这个是搭建了2个一个使用容器启动,一个二进制安装如图所示
在这里插入图片描述

配置mysql-exporter进行采集数据

apiVersion: apps/v1 # 版本号
kind: Deployment # 类型
metadata:
  name: mysql-exporter # 名称
  namespace: monitoring # 命名空间
spec:
  replicas: 1 # 副本书
  selector:
    matchLabels:
      k8s-app: mysql-exporter # deploy管理pod的标签
  template:
    metadata:
      labels:
        k8s-app: mysql-exporter # pod的标签
    spec:
      containers:
      - image:  prom/mysqld-exporter # 镜像地址
        name: mysqld # 名称
        env:
          - name: DATA_SOURCE_NAME # 
            value: "exporter:exporter@(mysql.default:3306)/" # mysql主机容器的地址,此容器是在默认命名空间下使用deploy启动的
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9104 # 默认端口9104
      - image:  prom/mysqld-exporter # 镜像地址
        name: mysqld-exporter # 名称
        command: [ "sh","-c","/bin/mysqld_exporter --web.listen-address=':9003'"] # 这个命令相当于修改默认端口修改成9003 官网没有找到现场的环境变量的方式进行修改,有人知道请私聊,谢谢
        env:
          - name: DATA_SOURCE_NAME # 
            value: "exporter:exporter@(172.17.0.7:3306)/" # 外部mysql地址和端口
        imagePullPolicy: IfNotPresent # 拉镜像的策略
        ports:
        - containerPort: 9003  # 修改后的端口好

查看是否安装成功

kubectl get deployments.apps -n monitoring
kubectl get po -n monitoring

在这里插入图片描述

通过sercice来进行暴漏端口

apiVersion: v1 # 可以理解成版本
kind: Service # 资源类型
metadata:
  name: mysql-exporter # service的名字
  namespace: monitoring # 命名空间
  labels:
    k8s-app: mysql-exporter # 标签后期需要用,
    mingcheng: dnsxmu # 这个标签相当于作为查看使用
spec:
  ports:
  - port: 9104  # svc中暴漏的端口
    protocol: TCP # 协议
    name: api-mysql # 可以api-mysql访问
  - port: 9003 # 同理
    protocol: TCP
    name: api
  selector:
    k8s-app: mysql-exporter # deploy中的标签
  type: ClusterIP # 端口暴漏的方式

查看是否安装成功

kubectl get svc -n monitoring # 如下图所示,svc安装成功,可以进行访问测试是否有采集到的数据
curl 10.97.126.45:9104/metrics |tail -2 # 此ip地址和svc里面的要对应上
curl 10.97.126.45:9003/metrics |tail -2 # 此ip地址和svc里面的要对应上

在这里插入图片描述

配置监控ServiceMonitor收集

ServiceMonitor相当于是把之前采集好的数据自动可以让普罗米修斯自动识别

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: mysql-exporter # 名称
  namespace: monitoring # 命名空间
  labels:
    k8s-app: mysql-exporter # 标签
spec:
  # jobLabel: example-app  # 
  endpoints:
    - interval: 10s  # 10s获取一次
      port: api-mysql # 这个 port 对应 Service.spec.ports.name
      relabelings:
      - action: replace
        regex: (.*)
        replacement: $1
        sourceLabels: [__meta_kubernetes_endpoints_label_xiangming] # 这个相当于使用刚刚配置的自定义便签
        targetLabel: xingming # key值
      scheme: http # 协议
    - interval: 10s  # 10s获取一次
      port: api # 这个 port 对应 Service.spec.ports.name 也可以是端口号
      scheme: http # 协议
  selector:
    matchLabels:
      k8s-app: mysql-exporter # 跟 svc 的 lables 保持一致
  namespaceSelector:
    matchNames:
    - monitoring # svc的命名空间

验证是否配置成功ServiceMonitor

 kubectl get servicemonitors.monitoring.coreos.com -n monitoring 

在这里插入图片描述

整体的yaml

apiVersion: apps/v1 # 版本号
kind: Deployment # 类型
metadata:
  name: mysql-exporter # 名称
  namespace: monitoring # 命名空间
spec:
  replicas: 1 # 副本书
  selector:
    matchLabels:
      k8s-app: mysql-exporter # deploy的标签
  template:
    metadata:
      labels:
        k8s-app: mysql-exporter # pod的标签
    spec:
      containers:
      - image: prom/mysqld-exporter # 镜像地址
        name: mysqld # 名称
        env:
          - name: DATA_SOURCE_NAME # 
            value: "exporter:exporter@(mysql.default:3306)/" # 如果是外部的mysql可以配置成主机如127.0.0.1
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9104
      - image: prom/mysqld-exporter # 镜像地址
        name: mysqld-exporter # 名称
        command: [ "sh","-c","/bin/mysqld_exporter --web.listen-address=':9003'"]
        env: 
          - name: DATA_SOURCE_NAME # 
            value: "exporter:exporter@(172.17.0.7:3306)/" # 如果是外部的mysql可以配置成主机如127.0.0.1
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9003
---
apiVersion: v1
kind: Service
metadata:
  name: mysql-exporter
  namespace: monitoring
  labels:
    k8s-app: mysql-exporter
spec:
  ports:
  - port: 9104
    protocol: TCP
    name: api-mysql
  - port: 9003
    protocol: TCP
    name: api
  selector:
    k8s-app: mysql-exporter
  type: ClusterIP
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: mysql-exporter # 名称
  namespace: monitoring # 命名空间
  labels:
    k8s-app: mysql-exporter # 标签
spec:
  # jobLabel: example-app  # 
  endpoints:
    - interval: 10s  # 30s获取一次
      port: api-mysql # 这个 port 对应 Service.spec.ports.name
      relabelings:
      - action: replace
        regex: (.*)
        replacement: $1
        sourceLabels: [__meta_kubernetes_endpoints_label_xiangming] # 这个相当于使用刚刚配置的自定义便签
        targetLabel: xingming # key值
      scheme: http # 协议
    - interval: 10s  # 30s获取一次
      port: api # 这个 port 对应 Service.spec.ports.name
      scheme: http # 协议
  selector:
    matchLabels:
      k8s-app: mysql-exporter # 跟 svc 的 lables 保持一致
  namespaceSelector:
    matchNames:
    - monitoring # svc的命名空间

开始进行验证

在这里插入图片描述

查看普罗米修斯是否自动发现刚刚配置的监控

在这里插入图片描述

查看是否可以看到自定义的便签:我这边使用其他的资源进行演示:

这个是我自定义的便签,配置到svc上就可以了
在这里插入图片描述
发现是可以展示出来的
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kube-Prometheus Stack监控mysql 的相关文章

  • 从 datagridview 选定的行更新 mysql 数据库

    我有一个 datagridview 它在表单加载事件上加载 mysql 数据库表 t pi clients 并且我有另一个选项卡 其中包含 t pi client 相应列的文本框 它能够从 fullrowselect 模式获取数据到这些文本
  • 优化mysql中日期类型字段的查询

    我目前准备了以下查询 select sum amount as total from incomes where YEAR date 2019 and MONTH date 07 and incomes deleted at is null
  • 是否可以在MYSQL中动态选择列名,其中列名是N个已知值中的1?

    我担心答案会是直接的 不 但我想知道是否可以在 MySQL 中执行如下操作 SELECT title label name FROM table 即选择单个列 可以称为title label or name from table 原因是 查
  • MYSQL 查询 WHERE IN 与 OR

    我开发了一个使用 OR 查询的系统 SELECT FROM tableA JOIN tableB ON idA idB WHERE idA 1 OR idA 2 OR idA 3 OR idA 4 OR idA 5 OR idA 100 与
  • 从 varchar(100) 类型获取时间(HH:MM AM/PM)格式

    如何将字符串 RD OT 07 30 转换为时间 我只知道如何将 07 30 AM 转换为时间 下面的代码给了我一个空白数据 id strtoupper POST id query mysql query SELECT STR TO DAT
  • 为什么涉及用户变量的表达式的求值顺序未定义?

    From MySQL手册 http dev mysql com doc refman 5 7 en user variables html以下查询的输出不保证始终相同 SET a 0 SELECT a AS first a a 1 AS s
  • grails/mysql 时区更改

    完成更改应用程序时区的最佳方法是什么 在我看来 必须发生以下情况 服务器 TZ 已被系统管理员更改 mysql必须重新启动 数据库中每个基于时间的列都必须使用convert tz 或等效方法更新所有值 因此 要么必须编写一个 mysql 脚
  • 将错误保存到 MySQL 数据库

    我有一个 php 查询来更新 MySQL 数据库 请参见下文 sql update hr payroll set payroll number payroll number tax code tax bacs ref bacs ref pa
  • 如何在 MySQL Insert 语句中添加 where 子句?

    这不起作用 INSERT INTO users username password VALUES Jack 123 WHERE id 1 有什么想法如何通过 id 将插入范围缩小到特定行吗 在插入语句中 您不会有现有行来执行 where 语
  • 如何使用MySqlCommand和prepare语句进行多行插入?(#C)

    Mysql 给出了如何使用准备语句和 NET 插入行的示例 http dev mysql com doc refman 5 5 en connector net programming prepared html http dev mysq
  • #1115 - 未知字符集:'utf8mb4'

    我的电脑上运行着一个本地网络服务器 用于本地开发 我现在正处于导出数据库并导入到我的托管 VPS 的阶段 导出然后导入时出现以下错误 1115 未知字符集 utf8mb4 有人能指出我正确的方向吗 该错误明确表明您没有utf8mb4您的阶段
  • 使用 DBCP 配置 Tomcat

    在闲置一段时间 几个小时 后 我们收到了 CommunicationsException 来自 DBCP 错误消息 在异常中 位于这个问题的末尾 但我没有看到任何配置文件中定义的 wait timeout 我们应该看哪里 在 tomcat
  • 无法删除数据库 mysql:错误 3664 (HY000)

    我的应用程序中有一个名为X Files 我想要drop它 但每当我运行命令时drop database X Files我收到以下错误 mysql gt drop database X Files ERROR 3664 HY000 Faile
  • 在 MySQL 中插入时检查并防止相似字符串

    简要信息 我有3张桌子 Set id name SetItem set id item id position TempSet id 我有一个函数可以生成新的随机组合Item桌子 基本上 总是在成功生成之后 我在中创建一个新行Set表 获取
  • mysql LIKE 查询时间太长

    SQL SELECT COUNT usr id as total results FROM users as usr LEFT JOIN profile as prof ON prof uid usr uid WHERE usr usern
  • MySQL 跨表计数(*) 查询帮助

    SELECT name COUNT AS count FROM t1 t2 WHERE t2 id t1 id GROUP BY t2 id 我想从 t1 获取名称以及 t2 中 id 与 t1 相同的行数 到目前为止我已经得到了上面的内容
  • 数据库级别的别名列名 [MySQL]

    别名 可能是错误的词 因为它是在将列 表名称作为查询中的其他名称引用的上下文中使用的 我感兴趣的是是否有一种方法可以在数据库中为列指定两个名称 如果我要打印这样的表格 它看起来会是这样的 mysql gt SELECT FROM User
  • 使用数据库进行日志记录

    大多数日志似乎都是纯文本形式 而不是放入 MySQL 其他类型的数据库中 这是否有原因 在我看来 将它们放入数据库将使分析变得非常非常容易 但这会以牺牲速度还是其他什么为代价 我不太关心可移植性 显然你会有数据库连接的文本日志 我能想到两大
  • 对于相同的查询,MySQL Workbench 比 Python 快得多

    MySQL Workbench 中的以下查询需要 0 156 秒才能完成 SELECT date time minute price id FROM minute prices WHERE contract id 673 AND TIMES
  • 如何使用 dql 从数据表中获取唯一值?

    我有一个表 其中有一列存储了各种值 我想使用 dql 从该表中检索唯一值 Doctrine Query create gt select rec school gt from Records rec gt where rec city ci

随机推荐

  • 03四旋翼无人机的组成和拼装(下)2020-08-01

    一 螺旋桨 螺旋桨是直接产生无人机运动所需力与力矩的部件合适的螺旋桨对提高无人机性能和效率 xff08 1 xff09 型号 桨距 xff08 Propeller Pitch xff09 xff1a 假设螺旋桨在一种不能流动的介质中旋转 x
  • 005-组装一台S500无人机的注意事项(附加添置FS-IA6B接收机)

    这一步主要是对上篇 xff1a 002 用pixhawk4飞控组装一台S500无人机 飞机搭建 部分内容的更正 xff0c 以及强调相关注意事项 另外 xff0c 在购买FS IA6B接收机之后 xff0c 将其组装到S500中 xff08
  • 05无人机动态模型(姿态表示与控制理论)2020-08-15

    本次课涉及的公式的推导详见全权 多旋翼飞行器设计与控制 和高翔等 视觉SLAM十四讲 作为一个准大三学生学起来下面的公式真的是很有难度 xff0c 线代很多东西都忘了已经 xff01 xff01 xff01 高翔等 视觉SLAM十四讲 目录
  • 树莓派4b安装 numpy1.18.5 opencv3.4.6.27 tensorflow1.13.1(或2.xx)

    下载这几个的软件的前提是 xff1a 1 网速好 2 有耐心 3 选对路 参考网站 xff1a 树莓派4b安装Python3的第三方库的一些想法 树莓派3B 43 43 系统安装 43 tensorflow1 9 0 43 opencv3
  • 第二章 STM32核心板介绍

    目录 一 学习目标 二 STM32芯片介绍 三 核心电路板 xff08 原理图 xff09 四 通讯 下载模块接口电路 五 电源转换电路 六 JTAG SWD调试接口电路 七 独立按键电路 八 OLED显示屏接口电路 九 晶振电路 十 LE
  • 第五/六章 立创EDA软件介绍/STM32核心板原理图设计

    目录 一 立创EDA软件介绍 二 学习目标 三 原理图设计流程 四 STM32核心板原理图 五 完成原理图的设计 六 常见问题及解决办法 一 立创EDA软件介绍 百度百科 xff1a PCB printed circuit board 即印
  • MediaCodec 编码解码踩坑记录

    概述 在MediaCodec的生命周期内存在三种状态 xff1a Stopped Executing or Released xff0c 其中 Stopped状态包含三种子状态 xff1a Uninitialized Configured
  • 第七章 STM32核心板PCB设计(布局布线+注意的疑难问题)

    目录 一 本章简介 二 学习目标 三 PCB设计流程 四 PCB规则设置 五 布局规则 六 布线注意事项 第一步 xff1a 创建 第二步 xff1a 布局 第三步 xff1a 布线 第四步 xff1a DRC检查 回答几个问题 xff1a
  • YoungTalk-STM32入门100步-总篇

    这个系列的笔记是为了学习单片机STM32而做的 xff01 来记录自己的学习路程 xff0c 解答一些自己的疑惑 xff01 xff08 本系列的所有内容都是以杜洋老师的视频为主线的 xff0c 再加上自己做的一些笔记 xff0c 网上找的
  • Python多线程编程(详细:适合小白入门)

    目录 前言 一 进程 1 多任务 2 进程 3 多进程完成多任务 3 1进程的创建步骤 3 2通过进程类创建进程对象 3 3创建进程和启动的代码 4 进程执行带有参数的任务 5 获取进程编号 6 进程的注意点 6 1主进程会等待所有的子进程
  • 关于深度学习中三维矩阵的理解(RGB图像的输入)

    usr bin env python coding utf 8 34 34 34 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 6
  • (目标检测)①数据集的建立(拍摄收集、数据集标注)

    目录 一 拍摄收集 xff08 一 xff09 视频拍摄 xff08 二 xff09 将MP4文件截取出图片 二 数据集标注 1 打开图片所在的文件夹 2 修改输出文件夹 3 图片标注 这一系列的博客将会帮助我自己 xff08 和大家 xf
  • myCobot pro 机械臂(4)正向运动学——改进DH表示法(开发环境:python)

    我只能说 xff0c 写这篇博客太艰难了 一定要沉住耐心 这个型号的机械臂与官方给的手册里面的参数是有出入的 感谢 台大机器人学课程 机器人学之运动学笔记 3 机械臂DH表示法 43 正向运动学 xff08 Forward Kinemati
  • myCobot pro 机械臂(5)Robotics Toolbox for MATLA(开发环境:matlab)

    感谢 机器人工程师进阶之路 xff1a matlab robotics toolbox安装方法 目录 一 matlab robotics toolbox安装方法 二 改进DH法对myCobot进行仿真 一 matlab robotics t
  • myCobot pro 机械臂(6)逆向运动学

    机械臂逆运动学求解常用的方法有几何法 解析法 数值法 从求解的方式和计算的效率上来看 xff0c 几何法和解析法会考虑机械臂结构不同而造成的差异 xff0c 因此对于不同结构的机械臂会有特定的求解方式 通常来说 xff0c 这两种方法具有速
  • STM32开发基础知识入门

    C语言基础 位操作 对基本类型变量可以在位级别进行操作 1 不改变其他位的值的状况下 xff0c 对某几个位进行设值 先对需要设置的位用 amp 操作符进行清零操作 xff0c 然后用 操作符设值 2 移位操作提高代码的可读性 3 取反操作
  • 蜂鸣器实验

    蜂鸣器介绍 这里采用的是有源蜂鸣器 xff0c 有源蜂鸣器自带了振荡电路 xff0c 一通电就会发声 xff1b 无源蜂鸣器则没有自带震荡电路 xff0c 必须外部提供 2 5Khz 左右的方波驱动 xff0c 才能发声 STM32的单个
  • CodeBlocks 20.03版的若干已知问题及其解决方法

    CodeBlocks 20 03在Win10上运行时会出现一些问题 xff0c 我通过搜索网络找到了解决办法 xff0c 下面分享给大家 一 改变编辑器的字体后引发 wxWidgets debug alert A debugging che
  • sumo的简单使用

    sumo简单教程 安装配置环境变量文件配置运行python文件生成真实路网python调用 如果你也对交通仿真感兴趣 xff0c 且是一个小白 xff0c 但是有python基础 xff0c 我想我可以帮到你 安装 首先安装为我们入门的第一
  • Kube-Prometheus Stack监控mysql

    准备环境 mysql 环境可以搭建2个或者一个来进行监控 我这个是搭建了2个一个使用容器启动 xff0c 一个二进制安装如图所示 配置mysql exporter进行采集数据 apiVersion apps v1 span class to