一、背景

在平时开发过程当中需要针对 MySQL 数据库进行监控,这里我们可以使用 Grafana 和 Prometheus 来实现监控功能。Grafana 是一款功能强大的仪表盘面板,支持多种数据源,可以自定义图表进行监控。而 Prometheus 就是 Grafana 支持的数据源之一,Prometheus 负责采集需要监控的数据,然后通过 Grafana 展示出来。

Prometheus 拥有多种 Exporter 进行监控数据的导出,这里我们使用的是 Mysql Exporter 来进行数据库状态的监控。

很久没写博客了,最近实在太忙,工作之余在研究 Abp vNext。

二、动手实践

首先参考博文《Linux 下的 Docker 安装与使用》安装好 Docker,之后再参考博文 《CentOS 7.x 安装 Docker-Compose》安装好 Docker-Compose 之后,就可以开始我们的工作了。

2.1 编写 Docker-Compose.Yaml 文件

首先我们确定会启动起来三个服务,分别是 MySQL-Exporter (监控 MySQL 指标)、Prometheus (收集 Exporter 的数据)、Grafana (从 Prometheus 读取指标数据,并展示出来)。

所以 yaml 文件的内容大体如下,这里也增加了响应的注释方便大家学习。

version: '2'
services:
exporter:
container_name: mysql-exporter-dev
image: prom/mysqld-exporter
environment:
# 这里指定的是要监控的 MySQL 数据库,这里我们以启动的 test-mysql 容器为示范。
# 实际应用当中,应该配置为具体的数据库实例。
- DATA_SOURCE_NAME=root:root@(test-mysql:3306)/ prometheus:
container_name: prometheus
image: prom/prometheus
ports:
- "20001:9090"
# 映射普罗米修斯的配置文件,用于配置 Exporter,这里的文件应该在后面创建好,具体
# 路径以实际为准。
volumes:
- /root/Docker/Volumes/Prometheus/prometheus.yml:/etc/prometheus/prometheus.yml grafana:
container_name: grafana
image: grafana/grafana
environment:
# 配置 Grafana 的默认根 URL。
- GF_SERVER_ROOT_URL=http://192.168.100.107:20002
# 配置 Grafana 的默认 admin 密码。
- GF_SECURITY_ADMIN_PASSWORD=admin
ports:
- "20002:3000"
# 映射 Grafana 的数据文件,方便后面进行更改。
volumes:
- /root/Docker/Volumes/Grafana:/var/lib/grafana # 本服务只是用于演示,实际使用请注释掉本服务。
mysql:
container_name: test-mysql
image: mysql
environment:
- MYSQL_ROOT_PASSWORD=root # 这里如果需要连接外部 MySQL 就需要处在同一个网络。
networks:
default:
external:
name: mysql-monitor

2.2 配置 prometheus.yml 文件

在 prometheus.yaml 文件当中存储了所有 Exporter 的信息,所以我们需要创建一个自己的 prometheus.yml 文件,映射到容器当中。

global:
scrape_interval: 15s
evaluation_interval: 15s alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093 scrape_configs:
# Prometheus 监控配置
- job_name: 'prometheus'
static_configs:
- targets: ['prometheus:9090'] # MySQL 监控配置
- job_name: 'mysql'
# 抓取间隔
scrape_interval: 5s
static_configs:
# 这里配置的是具体的 MySQL Exporter 的地址,在之前的 docker compose 文件
# 定义当中,mysql exporter 的容器名为 mysql-exporter-dev。
- targets: ['mysql-exporter-dev:9104']

2.3 启动

首先我们要建立一个监控用的 Docker 网络,与 Docker Compose 文件对应:

docker network create mysql-monitor

假设 yaml 文件名称为 docker-compose.yaml ,执行以下命令来创建我们的容器。

docker-compose -f ./docker-compose.yaml -p MySQL-Monitor up -d

但是呢,有时候可能会提示以下信息,说没有对应的权限,这个时候你使用 chmod 命令改变以下 Grafana 文件夹的权限即可。

chmod -R 777 /root/Docker/Volumes/Grafana

之后,再次运行 docker-compose -f ./docker-compose.yaml -p MySQL-Monitor up -d 命令,启动服务。第一次启动可能会有点慢,Grafana 需要迁移相关的数据,等待一会儿之后访问 机器IP:20002 就可以看到 Grafana 了。

2.4 配置

首先我们需要在 Grafana 配置 Prometheus 数据源,登录 Grafana 之后,选择数据源。

选择 Prometheus。

之后在 URL 填入 Prometheus 的容器名字 + 端口,点击 Save & Test,这里一定要注意数据源的名字叫做 Prometheus,不然等会儿导入我的面板是无法使用的。

导入我们的 Dashboard 文件。

2.5 文件下载地址

DashBoard 文件点击我下载

三、效果图

使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库的更多相关文章

  1. Grafana+Prometheus 监控 MySQL

    转自:Grafana+Prometheus 监控 MySQL 架构图 环境 IP 环境 需装软件 192.168.0.237 mysql-5.7.20 node_exporter-0.15.2.lin ...

  2. Grafana+Prometheus监控mysql性能

    #cmd /usr/local 今天讲一下如何监控服务器中的mysql数据库的性能 一.数据库操作 1.mysql启动 #service mysqld start #启动数据库 #service my ...

  3. Prometheus 监控Mysql服务器及Grafana可视化

    Prometheus 监控Mysql服务器及Grafana可视化. mysql_exporter:用于收集MySQL性能信息. 使用版本 mysqld_exporter 0.11.0 官方地址 使用文 ...

  4. Docker系列——Grafana+Prometheus+Node-exporter钉钉推送(四)

    近期搭建的服务器监控平台,来进行一个总结.主要分为监控平台的搭建.告警中心的配置以及消息的推送.推送的话,支持多种终端.具体详细可查看之前的博文,在这里罗列下,方便查看. Docker系列--Graf ...

  5. Cacti监控mysql数据库服务器实现过程

    Cacti监控mysql数据库服务器实现过程 2014-05-29      0个评论    来源:Cacti监控mysql数据库服务器实现过程   收藏    我要投稿 1 先在cacti服务器端安 ...

  6. Docker系列——Grafana+Prometheus+Node-exporter微信推送(三)

    在之前博文中,已经成功的实现了邮件推送.目前主流的办公终端,就是企业微信.钉钉.飞书.今天来分享下微信推送,我们具体来看. 企业微信 在配置企业微信推送时,需要有微信企业,具体如何注册.使用,另外百度 ...

  7. zabbix通过第三方插件percona监控mysql数据库

     zabbix通过第三方插件percona监控mysql数据库                                                                     ...

  8. zabbix利用自带的模板监控mysql数据库

    zabbix利用自带的模板监控mysql数据库 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 有些东西你不会的时候觉得它特别难,但是当你去做的时候就发现如此的简单~zabbix功能 ...

  9. zabbix3.4 监控mysql 数据库连接数

    zabbix3.4 监控mysql 数据库连接数具体监控配置待定,近期即将发布!

随机推荐

  1. Maven 的这 7 个问题你思考过没有?

    在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见.Maven的仓库管理.依赖管理.继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那么一个 ...

  2. union: apt command

    # when you use 'dpkg -i $software' failed, you can install the dependency of this software by # this ...

  3. numpy.convolve函数用法

    函数numpy.convolve(a, v, mode=‘full’),这是numpy函数中的卷积函数库 参数: a:(N,)输入的一维数组 b:(M,)输入的第二个一维数组 mode:{‘full’ ...

  4. C++实现对文件中各单词词频的统计及其代码优化

    先给出github上的代码链接以及项目需求 1.项目概述 这个项目的需求可以概括为:对记事本(txt)文件进行单词的词频统计和排序,排序结果以指定格式输出到默认文件中,并要求能够快速地完成整个统计和结 ...

  5. Python从入门到精通之Seventh!

    函数浅析:可以减少代码重用,保持一致性,可扩展性,易维护性. 定义方法:def 函数名(形参):     '''功能注释'''      代码块 打印函数名时,会出现函数的内存地址.两个函数名相同时, ...

  6. 移动端各种滚动场景需求的插件better-scroll

    移动端各种滚动场景需求的插件: 文档地址: better-scroll:https://ustbhuangyi.github.io/better-scroll/doc/zh-hans/#better- ...

  7. GitHub上最受欢迎的 5 大 Java 项目

    1. Mockito Mockito 并不是无酒精混合饮料的意思.Mockito 是一个针对 Java 的 mocking 框架.它与 EasyMock 和jMock 很相似,但是通过在执行后校验什么 ...

  8. Paper | 深度网络中特征的可迁移性

    目录 1. 核心贡献 2. 实验设置 2.1. 任务设置 2.2. 网络设置 3. 实验结果 4. 启发 论文:How transferable are features in deep neural ...

  9. BAT:文件中替换字符(保留空格和换行)

    @echo off rem CMD:"color --help" :: setting color:back white,content blue color f9 ::old s ...

  10. selenium自动化打开浏览器不受信任解决办法

    之前在用selenium(火狐浏览器)打开一个https网站时,总是弹出不受信任,修改配置后,每次加载的浏览器都是还原了配置,无法加载出页面,这里给出解决办法:让浏览器去加载我们修改后的配置,具体如下 ...