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

avatar
作者
猴君
阅读量:5

一、Grafana部署所需资源

Grafana 需要最少的系统资源:

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

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

可以看到,我的这台服务器,部署了Grafana+Promethus,已经占了1个G左右的内存。
image.png
这是另一台被监控的服务器,部署了Mysql、Node-Exporter、Mysql-Export,占了1个多G的内存。
image.png
以上,就是给大家一个资源评估的建议,接下来我们对这两台服务器称为A服务器、B服务器,整个服务的部署以及数据流通如下图所示:

二、搭建MYSQL

  1. 拉取镜像
docker pull hub.c.163.com/library/mysql:latest 
  1. 创建宿主机的挂载数据卷
mkdir -p /opt/mysql/data 
  1. 启动容器
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用户
#进入容器 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. 查看容器是否正常启动
#查看所有运行中的容器 docker ps 

image.png

三、搭建mysql-exporter

  1. 拉取镜像
docker pull prom/mysqld-exporter 
  1. 创建配置文件
vim /opt/my.cnf #输入以下内容 [client] host=主机ip  user=用户 password=密码 
  1. 启动容器
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. 拉取镜像
docker pull prom/prometheus 
  1. 启动容器
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. 拉取镜像
docker pull prom/node-exporte 
  1. 新建目录,生成prometheus.yml
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. 启动容器
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就可以了
image.png

六、搭建Grafana

  1. 拉取镜像
docker pull grafana/grafana 
  1. 启动容器

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

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

image.pngimage.pngimage.pngimage.pngimage.png

  1. 配置mysql监控面板

image.png
image.png
image.png
image.png
image.png
最终效果如下:
image.png

  1. 配置linux监控面板

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!