Prometheus 监控云Mysql和自建Mysql(多实例)

news2025/3/26 20:56:28

本文您将了解到 Prometheus如何配置才能监控云Mysql(包括阿里云、腾讯云、华为云)和自建Mysql。

Prometheus 提供了很多种Exporter,用于监控第三方系统指标,如果没有提供也可以根据Exporter规范自定义Exporter。

本文将通过MySQL server exporter 来监控Mysql指标,最新版的exporter 支持Mysql >= 5.6或者MariaDB >= 10.3,如果是老的Mysql版本你可能需要选择较早版本,本文使用的版本为:v0.14.0(不支持一个Exporter多Mysql实例),支持多实例见本文扩展部分

部署MySQL Exporter

1、从https://prometheus.io/download/下载 最新版本的对应环境压缩包

在这里插入图片描述
2、Docker 部署

docker run -d -p 9104:9104 -e DATA_SOURCE_NAME="user:password@(mysql_address:3306)/database" prom/mysqld-exporter

配置文件

1、创建MySQL授权账号,用于Exporter连接MySQL

CREATE USER 'exporter'@'localhost' IDENTIFIED BY '密码' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';

建议给账号设置最大连接数,防止监控连接对MySQL造成过高负载

2、修改prometheus.yml,加入静态监控

  - job_name: 'mysql'
    scrape_interval: 5s
    static_configs:
      - targets: ['192.168.0.102:9104'] 

启动

1、启动MySQL Exporter
如果是压缩包,使用如下命令启动,如果用Docker 部署见上述说明

nohup ./mysqld_exporter --config.my-cnf=<path_to_cnf> &

启动后访问host:9104/metrics地址,正常会出现如下很多的mysql开头的指标:

在这里插入图片描述

2、启动 Prometheus
使用命令 或者 Docker 重启 或者 项reload地址发送POST请求重载配置文件(前提开启了--web.enable-lifecycle)

检查targets是否正确注册,如图:

在这里插入图片描述

导入Grafana

可以使用该开源面板https://grafana.com/grafana/dashboards/7362-mysql-overview/,在Grafana中进行导入,有部分指标没数据,可以进行适当调整,如图所示:
在这里插入图片描述

扩展

同一个Exporter监控多个Mysql实例

官方最新的main分支已经支持了监控多实例,但由于过去1年了还没发布,我们需要自己编译源码,并且ReadMe也有一些错误,不过在这里我已经踩过坑了。

1、下载编译文件
从该地址下载编译文件,打包自己的Docker镜像,或者直接运行
https://download.csdn.net/download/weixin_40972073/87529490

2、创建mysql.my.cnf文件

[client]
user = username
password = password
[client2]
user = username2
password = password2

3、配置prometheus

  - job_name: mysql1 
    metrics_path: /probe
    params:
      auth_module: [client]
    static_configs:
      - targets:
        - mysql_host:port
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: mysql_exporter_host:port

  - job_name: mysql2 
    metrics_path: /probe
    params:
      auth_module: [client2]
    static_configs:
      - targets:
        - mysql2_host:port
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: mysql_exporter_host:port

4、验证
查看是否正确注册,及指标是否正确读取

在这里插入图片描述

5、导入多实例Grafana面板

在这里插入图片描述

MySQL Exporter命令

v0.14.0 版本命令

NameDescription
config.my-cnfMySQL认证信息配置路径 (default: ~/.my.cnf)
log.level日志记录级别 (default: info)
exporter.lock_wait_timeout设置锁定超时等待时间,避免长时间锁定,秒为单位(default: 2)
exporter.log_slow_filter添加log_slow_filter以避免抓取时的慢查询日志记录。注意:Oracle MySQL不支持。
tls.insecure-skip-verify忽略tls的验证错误
web.config.fileweb配置文件路径配置
web.listen-addressweb页面监听地址
web.telemetry-path指标暴露地址
version打印的版本信息

总结

对于各大云厂商提供的MySQL,虽然云厂商已经自带了监控工具,如果有需要同样也可以通过该方式对MySQL监控。

  1. Prometheus 提供的 告警规则、Grafana大屏和告警通知 示例

Prometheus 系列文章

  1. Prometheus 的介绍和安装
  2. 直观感受PromQL及其数据类型
  3. PromQL之选择器和运算符
  4. PromQL之函数
  5. Prometheus 告警机制介绍及命令解读
  6. Prometheus 告警模块配置深度解析
  7. Prometheus 配置身份认证
  8. Prometheus 动态拉取监控服务
  9. Prometheus 监控云Mysql和自建Mysql
  10. Prometheus 监控服务器
  11. Prometheus 监控Redis
  12. Prometheus 监控消息队列
  13. Prometheus 监控ES
  14. Prometheus 自定义监控
  15. Prometheus 告警接入钉钉、邮箱、飞书
  16. Prometheus 高可用部署

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/386817.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通达信波段主图指标公式,源码简洁原理却不简单

通达信波段主图指标公式的核心语句也就4句&#xff0c;后面的语句都是为了画图的。公式看起来比较简单&#xff0c;原理也比较巧妙&#xff0c;但是理解起来有些困难。 直接上源码&#xff1a; HH:HHV(H,5); LL:LLV(L,5); TH:BARSLAST(H>REF(HH,1)); TL:BARSLAST(L<REF(…

K8s(v1.25.1) 高可用集群(3 Master + 5 Node) Ansible 剧本部署(CRI使用docker,cri-docker)

写在前面 分享一个 k8s 高可用集群部署的 Ansible 剧本以及涉及到的一些工具的安装博文内容涉及&#xff1a;从零开始 一个 k8s 高可用 集群部署 Ansible剧本编写&#xff0c;编写后搭建 k8s 高可用 集群一些集群常用的 监控&#xff0c;备份工具安装&#xff0c;包括&#xff…

边缘计算:万字长文详解高通SNPE inception_v3推理实战

本文主要讲解利用高通SNPE进行神经网络推理&#xff0c;主要参考&#xff1a; 上手SNPE&#xff0d;推理inception_v3 - 知乎 文中是容器做的&#xff0c;在conda环境下做一样的&#xff0c;没问题&#xff0c;已跑通。 在anaconda环境中使用conda命令安装cuda、cudnn、tens…

数据结构与算法系列之单链表

&#x1f497; &#x1f497; 博客:小怡同学 &#x1f497; &#x1f497; 个人简介:编程小萌新 &#x1f497; &#x1f497; 如果博客对大家有用的话&#xff0c;请点赞关注再收藏 &#x1f31e; 这里写目录标题test.hSList.h注意事项一级指针与二级指针的使用assert的使用空…

内大892复试真题19年

内大892复试真题19年 1. 统计低于平均分的人数2. 输出数组中最大值3. 一元二次方程求根4. 字符串数组平移(反转法)5. 矩阵乘法(分治+strassen思想)1. 统计低于平均分的人数 问题 代码 #include <iostream>using namespace std;// 函数声明 double avgFunc

0098 Mysql01

1.登录Mysql mysql -uroot -p密码 2.Mysql常用命令 退出:exit 查看mysql有哪些数据库&#xff1a;show databases;(以分号结尾) 选择使用某个数据库&#xff1a;use sys; (表示正在使用一个名叫sys得数据库) 创建数据库&#xff1a;create database bjpowernode; 查看某个数…

FFmpeg入门 - 格式转换

1、音频分⽚(plane)与打包(packed)解码出来的AVFrame,它的data字段放的是视频像素数据或者音频的PCM裸流数据,linesize字段放的是对齐后的画面行长度或者音频的分片长度:/*** For video, size in bytes of each picture line.* For audio, size in bytes of each plane.** For …

Python3 入门教程||Python3 条件控制||Python3 循环

Python3 条件控制 if语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 Python 中 if 语句的一般形式如下所示&#xff1a; if condition_1:statement_block_1 流程图如下所示&#xff1a; 这种if语句只有在符合条件的时候才会执行代…

华大Flash檫写导致重启异常问题

一、华大Flash写入注意事项由Flash操作说明我们可以看出重要一点&#xff0c;就是檫写Flash函数地址需要定义在32K之前&#xff08;即0x8000之前&#xff09;&#xff0c;否则将写入失败。二、先上的错误的源代码这个代码是我应用中导致硬件卡死重启的&#xff0c;其实也不算错…

FreeSWITCH 呼入系统的简要设计

文章目录1. 呼入处理方案2. 细节处理1. a-leg 的拨号计划2. originate 呼叫坐席1. 呼入处理方案 使用 FreeSWICTH 的 ESL 模块&#xff0c;一个简单的呼入处理时序如下图所示&#xff0c;关键步骤做如下补充: 用户呼入到 FreeSWITCH 实例&#xff0c;a-leg 创建FreeSWITCH 根据…

DC真实数据都有哪些?Filecoin为DC数据存储的解决方案又是什么?

对于生活在数字时代的我们而言&#xff0c;数据或许就和平日呼吸的空气一样&#xff0c;已经不需要我们再去思考其概念。我们的日常生活中无时无刻都有数据的身影&#xff0c;日常的购物消费、出行、学习、记录&#xff0c;当我们每天生活有数字化加持的小区里&#xff0c;工作…

网上图书资料管理系统

技术&#xff1a;Java、JSP等摘要&#xff1a;Internet带给我们的不仅是无穷的信息&#xff0c;更为我们带来了很多的便利。在这个科技高速发展的时代&#xff0c;网络应用十分广泛&#xff0c;所以许多人愿意通过网络来使他们的生活变得更加的方便。网上图书资料管理系统的出现…

Spring Cloud(微服务)学习篇(五)

Spring Cloud(微服务)学习篇(五) 1 nacos配置文件的读取 1.1 访问localhost:8848/index.html并输入账户密码后进入nacos界面并点击配置列表 1.2 点击右侧的号 1.3 点击加号后,进入新建配置界面,并做好如下配置 1.4 往下翻动,点击发布按钮 1.5 发布成功后的界面 1.6 在pom.xml…

ChatGPT解答:PYQT5 的mwindow源码文件里面写了很多的函数方法,随着时间的推移越来越多,代码行数太多,影响了性能,如何解决

ChatGPT解答&#xff1a; PYQT5 的mwindow源码文件里面写了很多的函数方法&#xff0c;随着时间的推移越来越多&#xff0c;代码行数太多&#xff0c;影响了性能&#xff0c;如何解决 以下为可复制的内容与实例&#xff1a; PYQT5 的mwindow源码文件里面写了很多的函数方法&a…

第一道pwn栈溢出题

代码和解题思路来自启明星辰的《ctf安全竞赛入门》&#xff0c;当然还有好多热心的师傅们的指导。1.代码&#xff1a;#include "stdio.h" void shell() {system("/bin/sh"); } void vuln() {printf("Please input your name:\n");char s[8];gets…

实现pdf文件预览

前言 工作上接到的一个任务&#xff0c;实现pdf的在线预览&#xff0c;其实uniapp中已经有对应的api&#xff1a;uni.openDocument(OBJECT)&#xff08;新开页面打开文档&#xff0c;支持格式&#xff1a;doc, xls, ppt, pdf, docx, xlsx, pptx。&#xff09;**实现了相关功能…

冬奥会信息管理系统

摘 要伴随着社会以及科学技术的发展&#xff0c;互联网已经渗透在人们的身边&#xff0c;网络慢慢的变成了人们的生活必不可少的一部分&#xff0c;紧接着网络飞速的发展&#xff0c;系统管理这一名词已不陌生&#xff0c;越来越多的体育馆等机构都会定制一款属于自己个性化的管…

【小程序】盒模型笔记

边框样式参数border中solid是实线&#xff0c;dotted是点状&#xff0c;dashed是虚线。还有其它一些&#xff0c;double(双边框)&#xff0c;groove,ridge,inset,outset等3D边框。可单独拎出来定义边框宽度&#xff0c;border-width由前篇可知&#xff0c;padding\margin上下左…

Python 元类编程实现一个简单的 ORM

概述 什么是ORM?    ORM全称“Object Relational Mapping”&#xff0c;即对象-关系映射&#xff0c;就是把关系数据库的一行映射为一个对象&#xff0c;也就是一个类对应一个表&#xff0c;这样&#xff0c;写代码更简单&#xff0c;不用直接操作SQL语句。 现在我们就要实…

白盒测试重点复习内容

白盒测试白盒测试之逻辑覆盖法逻辑覆盖用例设计方法1.语句覆盖2.判定覆盖(分支覆盖)3.条件覆盖4.判定条件覆盖5.条件组合覆盖6.路径覆盖白盒测试之基本路径测试法基本路径测试方法的步骤1.根据程序流程图画控制流图2.计算圈复杂度3.导出测试用例4.准备测试用例5.例题白盒测试总…