教你快速实现“基于Docker快速构建基于Prometheus的MySQL监控系统”

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 教你快速实现“基于Docker快速构建基于Prometheus的MySQL监控系统”

🍁 作者:知识浅谈,阿里云社区技术博主,CSDN签约讲师,后端领域优质创作者,热爱分享创作

📌 擅长领域:全栈工程师、爬虫、ACM算法

💒 公众号:知识浅谈

🔥  联系方式vx:zsqtcc

🤞这次都给他拿下🤞基于Docker快速构建基于Prometheus的MySQL监控系统先来捋一下数据流的传输

网络异常,图片无法展示
|

正菜来了⛳⛳⛳

环境

Mysql:127.0.0.1:3306

mysql_export: 127.0.0.1:9104

prometheus:127.0.0.1:9090

grafana:127.0.0.1:3000

环境设置:(防火墙放行这些指定的端口)

firewalld -cmd --zone=public --add-port=3306/tcp --permanent

firewalld -cmd --zone=public --add-port=9104/tcp --permanent

firewalld -cmd --zone=public --add-port=9090/tcp --permanent

firewalld -cmd --zone=public --add-port=3000/tcp --permanent

🎈Mysql的创建

📐第 1 步:schema文件设置

  • 创建init.d配置文件的文件夹mkdir -p /etc/mysql/init.d
  • 配置文件的设置
SET NAMES utf8mb4;
  SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS,UNIQUE_CHECKS=0;
  SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,FOREIGN_KEY_CHECKS=0;
  SET @OLD_SQL_MODE=@@SQL_MODE,SQL_MODE='TRADITIONAL';
  DROP SCHEMA IF EXISTS sakila;
  CREATE SCHEMA sakila;
  USE sakila;
  CREATE TABLE actor(
  actor_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
  first_name VARCHAR(45) NOT NULL,
  last_name VARCHAR(45) NOT NULL,
  last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY(actor_id),
  KEY idx_actor_last_name (last_name)
  )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  # 创建远程的用户名和密码用于连接数据库
  CREATE USER remote@'%'IDENTIFIED with mysql_native_password BY 'remote';
  grant all privileges on *.* to remote@'%';
  # 创建exporter需要读取数据库日志信息的登陆账户,并授予权限
  CREATE USER 'exporter'@'%' IDENTIFIED BY 'exporter';
  GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'exporter'@'%';
  GRANT SELECT ON performance_schema.* TO 'exporter'@'%';

📐第 2 步:mysql数据库的创建

解释:docker-entrypoint-initdb.d这个为创建mysql的时候默认执行的初始脚本

docker run -p 3306:3306 --name db -v /etc/mysql/init.d:/docker-entrypoint-initdb.d -e MYSQL_ROOT_PASSWORD=root -d mysql:8

📐第 4 步:创建之后结果

网络异常,图片无法展示
|

🎈mysql_exporter搭建

📐第 1 步: 创建mysql_exporter容器

docker run -d -p 9104:9104 --name mysql_exporter -e DATA_SOURCE_NAME="exporter:exporter@(127.0.0.1:3306)/sakila" prom/mysqld-exporter

注意上边的命令需要制定数据源:-e DATA_SOURCE_NAME="exporter:exporter@(你的mysql数据库所在的ip:3306)/sakila"

📐第 2 步: 查看运行结果

网络异常,图片无法展示
|

访问ip:9104

网络异常,图片无法展示
|

🎈Prometheus搭建

📐第 1 步: 创建prometheus配置文件

  • mkdir -p /etc/prometheus
  • vi /etc/prometheus/prometheus.yml
#my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
      - targets: ['localhost:9090']
### 以下内容为mysql_exporter的配置,主要是这个地方
  - job_name: 'mysql_promethues'
    scrape_interval: 5s
    metrics_path: '/metrics'
    static_configs:
      - targets: ['localhost:9104']

📐第 2 步 :prometheus docker容器的创建

docker run -d --name=prometheus -v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -p 9090:9090 bitnami/prometheus:latest

📐第 3 步:查看结果

网络异常,图片无法展示
|

🎈Grafana搭建

📐第 1 步: 创建grafana容器

docker run -d --name=grafana -p 3000:3000 grafana/grafana

📐第 2 步:登陆账号密码都是admin

网络异常,图片无法展示
|

📐第 3 步 :指定数据源

网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|

7362是针对mysql监控的。

网络异常,图片无法展示
|

📐第 3 步:查看结果

网络异常,图片无法展示
|

🍚总结

通过Prometheus与Grafana,成功监控mysql的运行状态,像是锁状态等一些指标都能够可视化出来。

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
相关文章
|
6天前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
36 23
|
7天前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
38 22
|
10天前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
50 25
|
10天前
|
SQL 关系型数据库 MySQL
docker-compose部署mysql8
使用docker-compose容器化部署mysql8
|
20天前
|
NoSQL 关系型数据库 Redis
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
81 14
|
17天前
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
68 7
|
1月前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
107 24
|
1月前
|
Prometheus 监控 Cloud Native
如何监控Docker Swarm集群的性能?
如何监控Docker Swarm集群的性能?
128 8
|
2月前
|
关系型数据库 MySQL PHP
PHP与MySQL的无缝集成:构建动态网站的艺术####
本文将深入探讨PHP与MySQL如何携手合作,为开发者提供一套强大的工具集,以构建高效、动态且用户友好的网站。不同于传统的摘要概述,本文将以一个生动的案例引入,逐步揭示两者结合的魅力所在,最终展示如何通过简单几步实现数据驱动的Web应用开发。 ####
|
2月前
|
关系型数据库 MySQL PHP
PHP与MySQL的深度整合:构建高效动态网站####
在当今这个数据驱动的时代,掌握如何高效地从数据库中检索和操作数据是至关重要的。本文将深入探讨PHP与MySQL的深度整合方法,揭示它们如何协同工作以优化数据处理流程,提升网站性能和用户体验。我们将通过实例分析、技巧分享和最佳实践指导,帮助你构建出既高效又可靠的动态网站。无论你是初学者还是有经验的开发者,都能从中获得宝贵的见解和实用的技能。 ####
31 0

热门文章

最新文章