docker + Prometheus + grafana实现监控mysql服务器

本环境是在docker环境下进行的

  1. 拉取镜像包
docker pull prom/node-exporte
docker pull prom/prometheus
docker pull grafana/grafana
  1. 启动node-exporter
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

在浏览器中访问http:192.168.119.128:9100(自己虚拟机对应的IP地址),出现如下图所示内容贼代表端点暴露成功,可以通过prometheus去监控了
在这里插入图片描述
3.安装mysql

docker pull hub.c.163.com/library/mysql:latest

建立挂载的数据卷

mkdir -p /opt/mysql/data

虚拟机 3306 端口和容器里的3306端口对应,虚拟机路径和容器里路径

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

进入到mysql容器中:docker exec -it mysql bash
登录容器内数据库

mysql -uroot -p123456

在操作容器里数据的同时,数据也进到了 /opt/mysql/data 目录里,两边是同步的!
登录mysql为exporter创建账号并授权,在mysql上配置监控使用的用户

# 创建数据库用户
mysql>create user 'exporter' @ 'localhost' identified by '123456';
# 查看主从运行情况及所有数据库
mysql> grant process,replication client,select on *.* TO 'exporter '@' localhost ' ;

要监控某个对象,首先得拿到被监控对象的指标数据,这就要借助各种exporter,它的主要作用就是把核心指标数据暴露出来,这样监控系统才能获取到相应数据。

prometheus自带了很多exporter, mysqld_exporter 就是专用于暴露mysql各种指标的插件。
安装mysql-exporter

docker pull prom/mysqld-exporter 
#新建并启动容器
docker run -d \
>   -p 9104:9104 \
>   --net="host" \
>   --pid="host" \
>   --name mysqld-exporter \
>   -e DATA_SOURCE_NAME="root:123456@(192.168.119.128:3306)/" \
>   prom/mysqld-exporter

4.启动prometheus
新建目录,生成prometheus.yml

mkdir /opt/prometheus
cd /opt/prometheus/
vim prometheus.yml

编辑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

新建并启动prometheus容器

docker run  -d \
  -p 9090:9090 \
  -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  \
  --name prometheus \
  prom/prometheus

在浏览器中访问http://192.168.119.128:9090,出现如下界面代表监控成功了
在这里插入图片描述
5.启动grafana

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

访问地址:http://192.168.119.128:3000 默认账号密码都是admin
在这里插入图片描述
选择数据源
在这里插入图片描述
添加数据源地址
在这里插入图片描述
导入
在这里插入图片描述
mysql监控模板id为7362,填入如下输入框内
在这里插入图片描述
出现如下所示界面,选择数据源导入
在这里插入图片描述
至此就完事了
在这里插入图片描述

直接添加Dashboard

手动添加一个个的Dashboard比较繁琐,Grafana社区鼓励用户分享Dashboard,通过dashboard模板网站,在这里可以找到大量可使用的dashboard模板。

Grafana中所有的Dashboard通过JSON进行共享,下载并且导入这些JSON文件,就可以直接使用这些已经定义好的DashBoard

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
答:以下是一个示例的docker-compose.yml文件,用于启动PrometheusGrafana监控一个或多个应用程序: ``` version: '3' services: prometheus: image: prom/prometheus container_name: prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml command: - '--config.file=/etc/prometheus/prometheus.yml' restart: always grafana: image: grafana/grafana container_name: grafana depends_on: - prometheus ports: - "3000:3000" environment: GF_SERVER_ROOT_URL: http://localhost:3000 GF_SECURITY_ADMIN_USER: admin GF_SECURITY_ADMIN_PASSWORD: admin volumes: - ./grafana-data:/var/lib/grafana restart: always ``` 在该docker-compose.yml文件中,我们创建了两个服务:prometheusgrafanaPrometheus服务使用Prometheus Docker映像,并将端口映射到9090。它还将/prometheus.yml文件作为挂载卷传递给容器。在启动容器时,我们使用命令行参数来指定/config.file=/etc/prometheus/prometheus.yml。 Grafana服务程序使用Grafana Docker映像,并依赖于prometheus服务。Grafana服务映射端口3000,并将以下环境变量传递给容器:GF_SERVER_ROOT_URL:使用localhost:3000 (在该容器中内部)作为grafana的根URL,GF_SECURITY_ADMIN_USER和GF_SECURITY_ADMIN_PASSWORD管理Grafana管理员的凭据。此服务还挂载了grafana-data目录,以便可以在重启容器时保留所有Grafana的设置。 最后,我们定义了restart: always参数以确保容器在退出时自动重新启动。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值