服务监控(六)之Prometheus接入mysqld_exporter使用Grafana监控MySQL

2023-05-16

在这里插入图片描述

需准备的前置内容:
1、Prometheus安装配置
直通车:https://blog.csdn.net/wdy_2099/article/details/124204720
2、Grafana安装配置
直通车:https://blog.csdn.net/wdy_2099/article/details/124211397

使用Prometheus监控MySQL需要用到mysqld_exporter
要求:

Prometheus exporter for MySQL server metrics.
Supported versions:
MySQL >= 5.6.
MariaDB >= 10.2

一、下载&配置&启动 mysqld_exporter

1.1 下载mysqld_exporter

在这里找对应的版本下载: https://github.com/prometheus/mysqld_exporter/releases

[root@VM-0-2-centos srv]# wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz
--2022-04-18 14:16:57--  https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/32075541/32c409af-b7bf-4f96-a811-72cf640f4ee4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220418%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220418T061657Z&X-Amz-Expires=300&X-Amz-Signature=a41a84aa2b30cc538ddf09aeef1f0ed6d305921e0e83bc416f81c07888cb014a&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=32075541&response-content-disposition=attachment%3B%20filename%3Dmysqld_exporter-0.14.0.linux-amd64.tar.gz&response-content-type=application%2Foctet-stream [following]
--2022-04-18 14:16:57--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/32075541/32c409af-b7bf-4f96-a811-72cf640f4ee4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220418%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220418T061657Z&X-Amz-Expires=300&X-Amz-Signature=a41a84aa2b30cc538ddf09aeef1f0ed6d305921e0e83bc416f81c07888cb014a&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=32075541&response-content-disposition=attachment%3B%20filename%3Dmysqld_exporter-0.14.0.linux-amd64.tar.gz&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.110.133, 185.199.111.133, 185.199.108.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.110.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7450991 (7.1M) [application/octet-stream]
Saving to: ‘mysqld_exporter-0.14.0.linux-amd64.tar.gz’

100%[=======================================>] 7,450,991   71.2KB/s   in 2m 44s 

2022-04-18 14:19:53 (44.5 KB/s) - ‘mysqld_exporter-0.14.0.linux-amd64.tar.gz’ saved [7450991/7450991]

下载后解压:

[root@VM-0-2-centos srv]# tar -zxvf mysqld_exporter-0.14.0.linux-amd64.tar.gz 
mysqld_exporter-0.14.0.linux-amd64/
mysqld_exporter-0.14.0.linux-amd64/LICENSE
mysqld_exporter-0.14.0.linux-amd64/NOTICE
mysqld_exporter-0.14.0.linux-amd64/mysqld_exporter
[root@VM-0-2-centos mysqld_exporter-0.14.0]# ls
LICENSE  mysqld_exporter  NOTICE

1.2 配置mysqld_exporter

在mysqld-exporter安装路径下,创建.my.cnf文件,内容如下:

[client]
host=127.0.0.1
user=mysqlexporter
password=mysqlexporter

在/lib/systemd/system目录下创建 mysqld_exporter.service
如下:/srv/mysqld_exporter-0.14.0/为mysqld_exporter的安装目录。

[Unit]
Descripton=mysqls_exporter server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target

[Service]
Restart=on-failure
ExecStart=/srv/mysqld_exporter-0.14.0/mysqld_exporter --config.my-cnf=/srv/mysqld_exporter-0.14.0/my.cnf

[Install]
WantedBy=multi-user.target

1.3 启动mysqld_exporter

将mysqld_exporter.service 设置开机启动:

[root@VM-0-2-centos system]# systemctl enable mysqld_exporter.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld_exporter.service to /usr/lib/systemd/system/mysqld_exporter.service.

启动:

systemctl start mysqld_exporter.service

查看启动状态:

[root@VM-0-2-centos system]# systemctl status mysqld_exporter.service 
● mysqld_exporter.service
   Loaded: loaded (/usr/lib/systemd/system/mysqld_exporter.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2022-04-18 14:29:38 CST; 13s ago
     Docs: https://prometheus.io/docs/introduction/overview/
 Main PID: 1255 (mysqld_exporter)
    Tasks: 5
   Memory: 1.9M
   CGroup: /system.slice/mysqld_exporter.service
           └─1255 /srv/mysqld_exporter-0.14.0/mysqld_exporter --config.my-cnf=/srv/mysqld_exporter-0.14.0/my.cnf

Apr 18 14:29:38 VM-0-2-centos mysqld_exporter[1255]: ts=2022-04-18T06:29:38.557Z caller=mysqld_exporter.go:277 level=info msg="Starting mysqld_exporter" version="(version=0.14.0, branch=HEAD, revision=ca1b9af82a471c849c529eb8aadb1aac73e7b68c)"
Apr 18 14:29:38 VM-0-2-centos mysqld_exporter[1255]: ts=2022-04-18T06:29:38.557Z caller=mysqld_exporter.go:278 level=info msg="Build context" (gogo1.17.8,userroot@401d370ca42e,date20220304-16:25:15)=(MISSING)
Apr 18 14:29:38 VM-0-2-centos mysqld_exporter[1255]: ts=2022-04-18T06:29:38.558Z caller=mysqld_exporter.go:293 level=info msg="Scraper enabled" scraper=slave_status
Apr 18 14:29:38 VM-0-2-centos mysqld_exporter[1255]: ts=2022-04-18T06:29:38.558Z caller=mysqld_exporter.go:293 level=info msg="Scraper enabled" scraper=global_status
Apr 18 14:29:38 VM-0-2-centos mysqld_exporter[1255]: ts=2022-04-18T06:29:38.558Z caller=mysqld_exporter.go:293 level=info msg="Scraper enabled" scraper=global_variables
Apr 18 14:29:38 VM-0-2-centos mysqld_exporter[1255]: ts=2022-04-18T06:29:38.558Z caller=mysqld_exporter.go:293 level=info msg="Scraper enabled" scraper=info_schema.innodb_cmp
Apr 18 14:29:38 VM-0-2-centos mysqld_exporter[1255]: ts=2022-04-18T06:29:38.558Z caller=mysqld_exporter.go:293 level=info msg="Scraper enabled" scraper=info_schema.innodb_cmpmem
Apr 18 14:29:38 VM-0-2-centos mysqld_exporter[1255]: ts=2022-04-18T06:29:38.558Z caller=mysqld_exporter.go:293 level=info msg="Scraper enabled" scraper=info_schema.query_response_time
Apr 18 14:29:38 VM-0-2-centos mysqld_exporter[1255]: ts=2022-04-18T06:29:38.558Z caller=mysqld_exporter.go:303 level=info msg="Listening on address" address=:9104
Apr 18 14:29:38 VM-0-2-centos mysqld_exporter[1255]: ts=2022-04-18T06:29:38.558Z caller=tls_config.go:195 level=info msg="TLS is disabled." http2=false

二、创建MySQL账户

注意:用户名密码是上述(1.2 配置mysqld_exporter)配置的哈

CREATE USER 'mysqlexporter'@'127.0.0.1' IDENTIFIED BY 'mysqlexporter' WITH MAX_USER_CONNECTIONS 3;

授权:

GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqlexporter'@'127.0.0.1';
flush privileges;

在这里插入图片描述

三、配置Prometheus

3.1 修改prometheus.yml文件,添加mysql监控的job

在同一台机器所以用localhost,mysqld_exporter默认端口为9104

 - job_name: "mysqld_exporter"
    static_configs:
      - targets: ['localhost:9104']

3.2 重启Prometheus

也可以热重启

./prometheus --config.file=prometheus.yml &

3.3 重启后,查看启动结果Targets

mysqld_exporter (1/1 up) 的状态UP。
在这里插入图片描述

四、配置Grafana监控可视化

4.1 导入MySQL监控模板

使用14057和7362都可以哈
访问这里,可以找到自己想要的dashboard https://grafana.com/grafana/dashboards/
在这里插入图片描述
在这里插入图片描述

4.2 导入后,即可查看对应Dashboard

发现没有数据:
在这里插入图片描述
查看mysqld_exporter的日志发现:授权有问题:

ts=2022-04-18T07:14:47.541Z caller=tls_config.go:195 level=info msg="TLS is disabled." http2=false
ts=2022-04-18T07:14:50.140Z caller=exporter.go:149 level=error msg="Error pinging mysqld" err="Error 1045: Access denied for user 'mysqlexporter'@'172.18.0.1' (using password: YES)"
ts=2022-04-18T07:15:05.138Z caller=exporter.go:149 level=error msg="Error pinging mysqld" err="Error 1045: Access denied for user 'mysqlexporter'@'172.18.0.1' (using password: YES)"
ts=2022-04-18T07:15:20.139Z caller=exporter.go:149 level=error msg="Error pinging mysqld" err="Error 1045: Access denied for user 'mysqlexporter'@'172.18.0.1' (using password: YES)"
ts=2022-04-18T07:15:35.140Z caller=exporter.go:149 level=error msg="Error pinging mysqld" err="Error 1045: Access denied for user 'mysqlexporter'@'172.18.0.1' (using password: YES)"

解决:实际就是mysql用户权限的问题.
在my.cnf中配置host为授权时用的ip,加完用户,一定要登录验证一下。没问题再开始下一步。

然后查看Dashboard,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
各位实际操作下吧,如对您有用,请一键三连(点赞,收藏,评论)

END Please One Key Three Connect (One button three connections)Thanks!

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

服务监控(六)之Prometheus接入mysqld_exporter使用Grafana监控MySQL 的相关文章

  • 子查询与连接

    我重构了从另一家公司继承的应用程序的一个缓慢部分 以使用内部联接而不是子查询 例如 WHERE id IN SELECT id FROM 重构后的查询运行速度提高了约 100 倍 50 秒到 0 3 我预计会有改进 但谁能解释为什么它如此剧
  • 如何列出表中的所有列?

    对于各种流行的数据库系统 如何列出表中的所有列 对于 MySQL 请使用 DESCRIBE name of table 只要您使用 SQL Plus 或 Oracle 的 SQL Developer 这也适用于 Oracle
  • 从数据库中给定时间起经过的时间

    我有一个 HTML 表 其中包含从数据库中提取的记录 我正在使用 PHP MySQL 我的表中名为 Timer 的列未从数据库中检索 我需要在此处显示经过的时间 从数据库中的特定时间开始 例如 假设现在的时间是2013年2月21日下午6点2
  • 从 varchar(100) 类型获取时间(HH:MM AM/PM)格式

    如何将字符串 RD OT 07 30 转换为时间 我只知道如何将 07 30 AM 转换为时间 下面的代码给了我一个空白数据 id strtoupper POST id query mysql query SELECT STR TO DAT
  • 通过 kubernetes 标签或注释对 prometheus 目标进行分组?

    我有两个关于普罗米修斯的问题 我使用这个舵图 https artifacthub io packages helm prometheus community prometheus modal values https artifacthub
  • 删除 mysql 数据库中超过 3 个月的行的作业

    我们使用 mysql 服务器作为集中式日志系统 我希望有一项工作来定期删除 清理超过 3 个月的表条目 做这个的最好方式是什么 提前致谢 hinling 您是否在字段中存储项目的创建日期 If so DELETE FROM myTable
  • MySQL - 从表中删除空值行

    我有一张桌子 user 有超过 60 列 其中一列的名称是 用户名 我想删除其中的行username字段为空或NULL 我怎样才能做到这一点 谢谢你 Try this DELETE FROM user WHERE username IS N
  • 为什么将 MySQL 凭据放在 www 目录之外? [复制]

    这个问题在这里已经有答案了 可能的重复 将核心类放在 Web 根目录之上 好还是坏主意 https stackoverflow com questions 3648739 putting core classes above the web
  • 将错误保存到 MySQL 数据库

    我有一个 php 查询来更新 MySQL 数据库 请参见下文 sql update hr payroll set payroll number payroll number tax code tax bacs ref bacs ref pa
  • 将矩阵与 SUM 相乘

    我想将一个指标与另一个指标之和的结果相乘 我想尝试做的事情 MeticOne SUM MetricTwo Thanks 假设你有MetricOne带标签id and name 你有MetricTwo还有标签id and name 然后你就得
  • #1115 - 未知字符集:'utf8mb4'

    我的电脑上运行着一个本地网络服务器 用于本地开发 我现在正处于导出数据库并导入到我的托管 VPS 的阶段 导出然后导入时出现以下错误 1115 未知字符集 utf8mb4 有人能指出我正确的方向吗 该错误明确表明您没有utf8mb4您的阶段
  • 为什么我的浮点数大于 1 时在 MYSQL 中存储为 .9999?

    我将进程时间作为 float 4 4 存储在 MySQL 数据库中 start time microtime TRUE things happen in my script end time microtime TRUE process t
  • WHERE 条件基于 PK 的查询是否建议使用“LIMIT 1”?

    我正在查询 mySQL 数据库以检索 1 个特定行的数据 我使用表主键作为 WHERE 约束参数 E g SELECT name FROM users WHERE userid 4 userid 列是表的主键 在 mySQL 语句末尾使用
  • 显示一个表中的所有记录以及另一表中的匹配记录

    您好 我有一张下表 其中记录了活动和积分 Activites A ID Site ActivityValue ActivityName 1 site1 7 ActivityName1 2 site1 6 ActivityName2 2 si
  • 如何使用 AJAX/jQuery 显示打印内容?

    所以我试图理解整个 AJAX jQuery 的事情 现在 当我单独运行这个 PHP 脚本时 我必须等待并观察轮子旋转 直到循环完成然后加载 while row mysql fetch array res postcode to storm
  • 如何解决 注意:未定义索引:第 21 行 C:\xampp\htdocs\invmgt\manufactured_goods\change.php 中的 id [重复]

    这个问题在这里已经有答案了 我的 PHP 代码有一个问题 显示 注意 未定义的索引 我确信它非常简单 因为我是初学者 所以我不太清楚到底出了什么问题 所以请帮助我 这是代码
  • 日志中每天的每周活跃用户数

    我想知道是否有人可以帮助我使用一些 SQL 来返回两天或更长时间内登录到数据库表的唯一用户数量 让我们使用 7 天作为参考 我的日志表在每一行中包含时间戳 ts 和 user id 表示该用户当时的活动 以下查询返回此日志中的每日活跃用户数
  • Laravel Schema Builder 改变存储引擎

    我正在尝试更改表并将其存储引擎更改为InnoDb 当我跑步时php artisan migrate它完成且没有错误 然而 当我检查 Sequel Pro 中的存储引擎时 没有任何变化 public function up Schema ta
  • php无法在docker-compose中连接到mysql

    这是我的 docker compose version 2 services nginx image nginx 1 11 8 alpine ports 8081 80 volumes code usr share nginx html h
  • 退出 PHP 脚本后终止或停止 MySQL 查询

    我在工作中运行一个统计服务器 由于运行的查询量很大 该服务器有时会变得非常慢 我们的营销团队使用它作为主要统计工具 团队中的某些人有时会在脚本结束之前退出脚本 通过关闭浏览器或选项卡 同时 SQL 查询继续执行 当有人关闭或离开 PHP 脚

随机推荐

  • LVGL8.1版本笔记

    之前学过LVGL6 xff0c 现在版本更新到LVGL8了 xff0c 学习下新版本 xff0c 本文主要是记录一些LVGL8的新特性 xff0c 区别和lvgl6的不同之处 lv task handler 的作用 链接 lv task h
  • STM32F407定时器输入捕获

    STM32F407定时器一共有14个 其中分为基本定时器 通用定时器 高级定时器 具体功能如上图所示 下面介绍下输入捕获模式 输入捕获 xff1a 通过检测TIMx CHx上的边沿信号 在边沿信号发生跳变的时候 将当前的定时器的值 TIMx
  • 几种常见的存储器

    存储器分为易失性存储器和非易失性存储器 其中的易失性是指存储器掉电是否能保存数据 易失性存储器 xff1a 就是我们常说的RAM xff0c 这种存储器掉电后所有数据都消失 xff0c 不会被保存 xff0c 重新上电之后 xff0c 原来
  • FreeRTOS初级篇----优先级实验

    FreeRTOS创建任务时 xff0c 可以设置任务的优先级 在FreeRTOS中优先级的值越小 xff0c 优先级越低 xff0c 其他的RTOS都是优先级值越小 xff0c 优先级越高 xff0c 这点需要注意 任务优先级实验 xff1
  • FreeRTOS初级篇----删除任务

    任务既然可以被创建 xff0c 那么自然也可以被删除 xff0c 对于某些执行一次或几次就不需要的任务来说 xff0c 可以在执行完成后 xff0c 把此任务删除 xff0c 可以通过别的任务将其删除 xff0c 也可以任务自己删除自己 任
  • FreeRTOS初级篇----一个函数创建多个任务

    之前说过 xff0c 创建任务的时候 xff0c 可以传递给任务参数 xff0c 下面通过实验 xff0c 对一个任务函数传入不同的参数展示如何使用一个函数创建多个任务 任务函数 xff1a 把传入的数据转换为int型数据然后打印出来 sp
  • 大学生想要通过看书自学编程,却始终没成功,是因为你没有技巧!

    在大学里面 xff0c 有很多的方式来学习编程 xff0c 从在线教程到完成在线课程 xff0c 到密集编程的新手训练营 教程都很棒 xff0c 但它们通常只给你基础知识 与此同时 xff0c 在线教程和线下课程可能非常昂贵 xff0c 虽
  • FreeRTOS初级篇----任务管理

    一 任务状态 再FreeRTOS中 xff0c CPU同一时刻只执行一个任务 xff0c 只不过是所有任务切换的速度特别快 xff0c 默认1ms切换一次任务 xff0c 所以宏观上来看就是CPU再同时运行所有任务 根据任务的执行情况 xf
  • FreeRTOS中级篇

    一 内存管理 1 五种内存管理模式 FreeRTOS提供了5种内存管理实现方法 xff0c 可以根据不同的使用场合选择不同的模式 关于5中内存管理模式可以看下面这篇文章 链接 https zhuanlan zhihu com p 11527
  • LVGL8移植FATFS并适配到STM32F407

    目前LVGL版本已经更新到8 3版本 xff0c FATFS也是在嵌入式领域常用的文件系统 网上许多在LVGL上移植FATFS的教程大都是基于LVGL7版本的 xff0c 而且过程较为凌乱 本文旨在帮助大家了解在LVGL8上移植FATFS文
  • openstack dashboard简体中文汉化

    这里阐述的是fuel工具部署的openstack 环境的dashboard进行简体中文汉化 1 xff09 直接运行 apt get install gettext 命令 2 xff09 转到fuel已经配置好的中文配置文件夹下 cd us
  • 【转】gcc编译错误表

    conversion from s to s not supported by iconv iconv 不支持从 s 到 s 的转换 iconv open iconv open no iconv implementation cannot
  • _tcsstr的用法以及源码的源码

    tcsstr 字符串1在字符串2中首次出现的位置 xff0c 未出现返回NULL值 xff1b tcsrchr xff1a 字符1 在字符串2中首次出现的位置 xff0c 未出现返回NULL值 TCHAR字符串操作函数 xff1a tcsl
  • 修改ElementUI默认滚动条的样式

    一 默认的滚动条 很宽很占地方 xff0c 不美观 xff0c 与页面设计格格不入 二 优化后的滚动条 很美观 xff0c 可以根据实际风格调整颜色 xff0c 宽度 xff0c 高度等 三 优化代码 在全局样式里加入以下代码 xff0c
  • K8S异常之出现大量被驱逐的pod,导致服务无法访问的问题

    一 背景 用kuboard作为k8s管理工具的 xff0c 运行一段时间后 xff0c 访问时 xff0c 浏览器显示以下提示 xff1a 排查问题 1 查看k8s的情况 如下 xff0c 发现正常 root 64 nb001 data k
  • 服务监控(四)之SpringBoot整合Prometheus

    1 新建一个springboot项目 我这里版本是 xff1a 2 2 4 RELEASE xff0c pom中加入如下必要依赖 xff1a span class token comment lt https micrometer io d
  • 服务监控(五)之Grafana 接入Prometheus 的数据实现服务监控

    官方文档 xff1a https prometheus io docs visualization grafana 1 添加Prometheus 数据源 1 1 从下图所示的位置进入 xff0c 添加data source 1 2 点击 A
  • 应用程序运行***buffer overflow detected*** terminated Aborted异常退出问题

    今天运行程序 xff0c 改了一段代码 xff01 然后每次一运行程序就异常退出 xff0c 打印如下信息 xff1a buffer overflow detected shm costomer terminated Aborted 根据单
  • URAM和BRAM有什么区别

    无论是7系列FPGA UltraScale还是UltraScale Plus系列FPGA xff0c 都包含Block RAM xff08 BRAM xff09 xff0c 但只有UltraScale Plus芯片有UltraRAM也就是我
  • 服务监控(六)之Prometheus接入mysqld_exporter使用Grafana监控MySQL

    需准备的前置内容 xff1a 1 Prometheus安装配置 直通车 xff1a https blog csdn net wdy 2099 article details 124204720 2 Grafana安装配置 直通车 xff1a