运用 Docker 布置 Grafana Prometheus 监控 MySQL 数据库


玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。

一、配景

在日常平凡开辟历程傍边须要针对 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 文件点击我下载

三、效果图

-玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。