prometheus 监控 mysql

使用 Prometheus + Grafana 监控 MySQL

部署 mysqld-exporter

采用 docker 来部署 prom/mysqld-exporter

1. 拉取镜像

docker pull prom/mysqld-exporter

# docker pull prom/mysqld-exporter
Using default tag: latest
latest: Pulling from prom/mysqld-exporter
aa2a8d90b84c: Pull complete 
b45d31ee2d7f: Pull complete 
e65c338b31c3: Pull complete 
Digest: sha256:a8af600c3ef1c8df179b736b94d04dc5ec209be88407a4c1c1bd0fc6394f56e8
Status: Downloaded newer image for prom/mysqld-exporter:latest
docker.io/prom/mysqld-exporter:lates
  1. 运行

docker run -d --name=mysqld-exporter -p 9104:9104 -e DATA_SOURCE_NAME=root:password@(mysql:3306)/database prom/mysqld-exporter

  1. 检测运行状态

curl localhost:9104/metrics

正常会输出一下结果

root@l1:~# curl localhost:9104/metrics
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0
go_gc_duration_seconds{quantile="0.25"} 0
go_gc_duration_seconds{quantile="0.5"} 0
go_gc_duration_seconds{quantile="0.75"} 0
go_gc_duration_seconds{quantile="1"} 0
go_gc_duration_seconds_sum 0
go_gc_duration_seconds_count 0

配置 prometheus 抓取 mysql

/etc/prometheus/prometheus.yml文件中 [scrape_configs] 加入以下配置才会加入到监控中。

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: mysqld-exporter
    static_configs:
      - targets:  ['localhost:9104']
    scrape_interval: 5s
    scrape_timeout: 5s

配置 grafana

在浏览器中进入 Grafana仪表盘模板网站,搜索MySQL。
找到比如 7362
image.png

通过 id 导入 dashboard

image.png

导入成功
image.png

大功告成

喜闻悦见

image.png

评论栏