Docker部署Grafana+Promethus监控Mysql和服务器

一、Grafana部署所需资源

Grafana 需要最少的系统资源:

  • 建议的最小内存:512 MB
  • 建议的最低 CPU:1

官方文档:https://grafana.com/docs/grafana/latest/getting-started/build-first-dashboard/

可以看到,我的这台服务器,部署了Grafana+Promethus,已经占了1个G左右的内存。

这是另一台被监控的服务器,部署了Mysql、Node-Exporter、Mysql-Export,占了1个多G的内存。

以上,就是给大家一个资源评估的建议,接下来我们对这两台服务器称为A服务器、B服务器,整个服务的部署以及数据流通如下图所示:

二、搭建MYSQL

  1. 拉取镜像
shell 复制代码
docker pull hub.c.163.com/library/mysql:latest
  1. 创建宿主机的挂载数据卷
shell 复制代码
mkdir -p /opt/mysql/data
  1. 启动容器
shell 复制代码
docker run -p 3306:3306 --restart="always" --name mysql -v /opt/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d --privileged=true hub.c.163.com/library/mysql:latest
  1. 为容器创建exporter用户
shell 复制代码
#进入容器
docker exec -it mysql bash
#进入mysql
mysql -uroot -p123456
# 创建数据库用户
mysql>create user 'exporter' @ 'localhost' identified by '123456';
# 查看主从运行情况及所有数据库
mysql>grant process,replication client,select on *.* TO 'exporter '@' localhost ' ;
  1. 查看容器是否正常启动
shell 复制代码
#查看所有运行中的容器
docker ps

三、搭建mysql-exporter

  1. 拉取镜像
shell 复制代码
docker pull prom/mysqld-exporter
  1. 创建配置文件
shell 复制代码
vim /opt/my.cnf
#输入以下内容
[client]
host=主机ip 
user=用户
password=密码
  1. 启动容器
shell 复制代码
docker run -d --restart="always" -name mysql-exporter -p 9104:9104 -v /opt/my.cnf:/etc/mysql/my.cnf prom/mysqld-exporter  --config.my-cnf=/etc/mysql/my.cnf
  1. 查看服务是否在监听

访问http://主机ip:9104

四、搭建node-exporter

  1. 拉取镜像
shell 复制代码
docker pull prom/prometheus
  1. 启动容器
shell 复制代码
docker run -d -p 9100:9100 \
  -v "/proc:/host/proc:ro" \
  -v "/sys:/host/sys:ro" \
  -v "/:/rootfs:ro" \
  --net="host" \
  --name node-expoter \
  prom/node-exporter
  1. 查看服务是否在监听

访问http://主机ip:9100

五、搭建prometheus

  1. 拉取镜像
shell 复制代码
docker pull prom/node-exporte
  1. 新建目录,生成prometheus.yml
shell 复制代码
mkdir /opt/prometheus
cd /opt/prometheus/
vim prometheus.yml
#输入以下内容
global:
  scrape_interval:     60s
  evaluation_interval: 60s

scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus

  - job_name: linux
    static_configs:
      - targets: ['192.168.119.128:9100']
        labels:
          instance: localhost

  - job_name: mysql
    static_configs:
      - targets: ['192.168.119.128:9104']
        labels:
          instance: mysql
  1. 启动容器
shell 复制代码
docker run  -d \
  -p 9090:9090 \
  -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  \
  --name prometheus \
  prom/prometheus
  1. 查看服务是否在监听

访问http://主机ip:9090/targets,看到启动的相关服务是up就可以了

六、搭建Grafana

  1. 拉取镜像
shell 复制代码
docker pull grafana/grafana
  1. 启动容器

访问地址:http://IP:3000 默认账号密码都是admin

shell 复制代码
 docker run -d -p 3000:3000 grafana/grafana
  1. 启动容器
shell 复制代码
docker run  -d \
  -p 9090:9090 \
  -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  \
  --name prometheus \
  prom/prometheus
  1. 配置数据源

  1. 配置mysql监控面板





最终效果如下:

  1. 配置linux监控面板

与mysql配置基本一样,只有模版ID变了,为12633。效果如下图:

相关推荐
有谁看见我的剑了?36 分钟前
docker 运行时权限和 Linux 能力了解
linux·docker·容器
瓯雅爱分享1 小时前
任务管理系统,Java+Vue,含源码与文档,科学规划任务节点,全程督办保障项目落地提效
java·mysql·vue·软件工程·源代码管理
拾荒者.1261 小时前
设计一个关键字统计程序:利用HashMap存储关键字统计信息,对用户输入的关键字进行个数统计。
数据库·python·mysql
敖云岚1 小时前
【那些年踩过的坑】Docker换源加速详细教程(截至2025年4月)
运维·docker·容器
柳如烟@2 小时前
Docker安装ES :确保 Kibana 正确连接 Elasticsearch
运维·数据库·elasticsearch·docker·容器·kibana
转转技术团队2 小时前
告别人工搬运!TiDB/MySQL双库同步工具如何为业务提效100%?
mysql·tidb·测试
weisian1512 小时前
云原生--核心组件-容器篇-2-认识下Docker(三大核心之镜像,容器,仓库)
docker·云原生·容器
小白教程3 小时前
MySQL主从数据库配置教程
数据库·mysql·adb·mysql8.0主从配置
foo1st3 小时前
MySQL 8(Ubuntu 18.04.6 LTS)安装笔记
笔记·mysql·ubuntu
bobacgo4 小时前
[MySQL 面试题]-内部技术架构 55-56 MySQL 8.0 自带存储引擎及作用
mysql·面试