Prometheus监控MySQL

网友投稿 268 2022-09-10

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​​可视化数据。能够很好地查看数据库性能,并在遇到问题时知道在何处检查。

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

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

实验环境准备如下:

Kubernetes 集群(Tencent TKE)Prometheus 监控(Tencent 云原生监控)MySQL(Tencent CDB)

2 数据库授权

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

至此,数据库授权完成。

3 helm Charts 部署 Exporter

helm pull prometheus-community/prometheus-mysql-exportertar 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.yaml1 directory, 10 files

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

[prometheus-mysql-exporter] helm install mysql-exporter . NAME: mysql-exporterLAST DEPLOYED: Wed Oct 27 15:36:31 2021NAMESPACE: defaultSTATUS: deployedREVISION: 1TEST SUITE: NoneNOTES: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 to use your application" kubectl --namespace default port-forward $POD_NAME 9104[prometheus-mysql-exporter] helm ls NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSIONmysql-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-5hzr5time="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 Speed100 142k 0 142k 0 0 6174k 0 --:--:-- --:--:-- --:--:-- 6499k# HELP mysql_up Whether the MySQL server is up.# TYPE mysql_up gaugemysql_up 1

4 配置 Grafana 视图

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:广告文案:女性营销,光走心是不够的!
下一篇:Kubernetes存储原理详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~