首页 > 数据库 >Prometheus监控MySQL--保姆级

Prometheus监控MySQL--保姆级

时间:2023-01-05 14:01:54浏览次数:58  
标签:info exporter -- MySQL 36 Prometheus mysql

1 背景

​MySQL Exporter​​是社区专门为采集 ​​MySQL/MariaDB​​ 数据库监控指标而设计开发,通过 ​​Exporter​​ 上报核心的数据库指标,用于异常报警和监控大盘展示,云监控 Prometheus 提供了与 MySQL Exporter 集成及开箱即用的 Grafana 监控大盘。

目前,Exporter 支持高于5.6版本的 MySQL 和高于10.1版本的 MariaDB。在 MySQL/MariaDB 低于5.6版本时,部分监控指标可能无法被采集。

本文将通过配置​​MySQL Exporter​​,演示如何将​​云数据库MySQL​​的数据采集上报至云原生监控中和使用​​Grafana​​可视化数据。能够很好地查看数据库性能,并在遇到问题时知道在何处检查。

本文档将有三个主要步骤:

  1. 数据库授权
  2. ​helm Chart​​ 部署​​MySQL Prometheus exporter​
  3. 创建​​MySQL Grafana​​仪表板

实验环境准备如下:

  1. Kubernetes 集群(Tencent TKE)
  2. Prometheus 监控(Tencent 云原生监控)
  3. MySQL(Tencent CDB)

2 数据库授权

因为 MySQL Exporter 是通过查询数据库中状态数据来对其进行监控,所以需要为对应的数据库实例进行授权。帐号和密码需根据实际情况而定,授权步骤如下:

  1. 登录 云数据库 MySQL 控制台。
  2. 在实例列表页面单击需要授权的数据库名称,进入数据库详情页。
  3. 选择【数据库管理】>【帐号管理】,进入帐号管理页面,根据业务实际需要创建监控建立的账号。
  4. 单击帐号右侧操作项下的【修改权限】,修改对应权限。示例如下图所示:

至此,数据库授权完成。

3 helm Charts 部署 Exporter

helm pull prometheus-community/prometheus-mysql-exporter
tar zxf prometheus-mysql-exporter-1.2.0.tgz
[prometheus-mysql-exporter] tree
.
├── Chart.yaml
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── secret-env.yaml
│ ├── secret.yaml
│ ├── service.yaml
│ └── servicemonitor.yaml
└── values.yaml

1 directory, 10 files
复制代码

此处需要对该项目​​values.yaml​​进行修改

[prometheus-mysql-exporter] helm install mysql-exporter .                                                                                                                               
NAME: mysql-exporter
LAST DEPLOYED: Wed Oct 27 15:36:31 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=prometheus-mysql-exporter,app.kubernetes.io/instance=mysql-exporter" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:9104 to use your application"
kubectl --namespace default port-forward $POD_NAME 9104
[prometheus-mysql-exporter] helm ls
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
mysql-exporter default 1 2021-10-27 15:36:31.079294 +0800 CST deployed prometheus-mysql-exporter-1.2.0 v0.12.1
复制代码
[~] kubectl logs mysql-exporter-prometheus-mysql-exporter-79ff48ffcc-5hzr5
time="2021-10-27T07:36:36Z" level=info msg="Starting mysqld_exporter (version=0.12.1, branch=HEAD, revision=48667bf7c3b438b5e93b259f3d17b70a7c9aff96)" source="mysqld_exporter.go:257"
time="2021-10-27T07:36:36Z" level=info msg="Build context (go=go1.12.7, user=root@0b3e56a7bc0a, date=20190729-12:35:58)" source="mysqld_exporter.go:258"
time="2021-10-27T07:36:36Z" level=info msg="Enabled scrapers:" source="mysqld_exporter.go:269"
time="2021-10-27T07:36:36Z" level=info msg=" --collect.global_variables" source="mysqld_exporter.go:273"
time="2021-10-27T07:36:36Z" level=info msg=" --collect.slave_status" source="mysqld_exporter.go:273"
time="2021-10-27T07:36:36Z" level=info msg=" --collect.global_status" source="mysqld_exporter.go:273"
time="2021-10-27T07:36:36Z" level=info msg=" --collect.info_schema.query_response_time" source="mysqld_exporter.go:273"
time="2021-10-27T07:36:36Z" level=info msg=" --collect.info_schema.innodb_cmp" source="mysqld_exporter.go:273"
time="2021-10-27T07:36:36Z" level=info msg=" --collect.info_schema.innodb_cmpmem" source="mysqld_exporter.go:273"
time="2021-10-27T07:36:36Z" level=info msg="Listening on :9104" source="mysqld_exporter.go:283"
复制代码

查看指标

[root@VM-1-27-centos ~]# curl 172.17.253.96:9104/metrics | grep mysql_up
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 142k 0 142k 0 0 6174k 0 --:--:-- --:--:-- --:--:-- 6499k
# HELP mysql_up Whether the MySQL server is up.
# TYPE mysql_up gauge
mysql_up 1
复制代码

4 配置 Grafana 视图

Prometheus监控MySQL--保姆级_MySQL

标签:info,exporter,--,MySQL,36,Prometheus,mysql
From: https://blog.51cto.com/xuexinhuan/5991040

相关文章

  • C# 实现程序最小化到托盘
    1.设置WinForm窗体属性showinTask=false2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标。3.添加窗体最小化事件(首先需要添加事件引用):this......
  • 【230105-1】已知:a+b=-8, ab=6 求:根号下b/a+根号下a/b=?
    ......
  • 聊聊最长上升子序列问题
    导读^_^子序问题是非常经典的线性DP问题。本文将讲解最长上升子序列问题。同时延申问题,探讨如何保存下来子序列。最长上升子序列思路代码实现#include<iostre......
  • 将多个文件的内容附加到一个文件中
    find.-typef-name'access_log*.log'-execcat{}+>>access_log.log演示的命令适用于任何符合POSIX标准的终端,包括 bash。现在让我们构建我们的 find 命......
  • 私有软件仓库GitLab
    ​一、GitLab介绍   GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,提供了Web界面用于访问公开或私有的项目。GitLab的优势如下:开源免费可以作为Gi......
  • MySQL日常维护指南
    一、常用命令1、查看数据库默认编码showvariableslike'character%';  showvariableslike‘collation%’;2、启动停止数据库/etc/init.d/mysqlstart(stop) ......
  • C#中实现byte[]与任意对象互换(服务端通讯专用)
    C++中,我们可以非常方便的将网络通讯接收来的char*缓冲区转成任意类型的结构体,并从中提取必要信息,只需要一个结构体类型指针的强制转换即可。但是在C#中,所有涉及到内存及指针......
  • 记 对接拼多多官方代报 辽宁电子口岸联达通客户端 ic卡加签版
    对接前准备详见pdd文档https://open.pinduoduo.com/application/document/browse?idStr=EE386BF9BCC6EEC1总结需要我们做的有1 实现我们持有ic卡机器上的加签接口功能......
  • Amber22 安装过程miniconda报错处理
    最近在安装amber22时,使用其官方说明安装,但在安装miniconda这一步出错,致使amber22安装不成功!报错如下:CondaFileIOError:'/home/lbm/amber22/amber22_src/build/CMakeFi......
  • 数组
    前言:上篇博客我们学习了函数,紧接着我们趁热打铁,来学习数组,数组在C语言中的地位不输入函数哦1.一维数组的创建和初始化。1.1数组的创建数组是一组相同类型元素的集合。......