docker搭建prometheus、grafana監控Mysql

使用docker搭建Mysql監控

[toc]node

簡介

使用prometheus、grafana等搭建指標收集、存儲、展現的監控系統。mysql

image.png
image.png

mysql在宿主機上直接搭建,prometheus、grafana等都是經過docker來搭建的。sql

服務 啓動方式 私網ip 端口 備註
mysql VM 172.17.0.1 3306
grafana docker 172.17.0.3 3000:3000
prometheus docker 172.17.0.2 9090:9090
mysqld-exporter docker 172.17.0.1 9104
node-exporter docker 172.17.0.1 9100

prometheus搭建

prometheus搭建

​ Prometheus是一套開源的監控&報警&時間序列數據庫的組合,起始是由SoundCloud公司開發的。隨着發展,愈來愈多公司和組織接受採用Prometheus,社區也十分活躍,他們便將它獨立成開源項目,而且有公司來運做。google SRE的書內也曾提到跟他們BorgMon監控系統類似的實現是Prometheus。如今最多見的Kubernetes容器管理系統中,一般會搭配Prometheus進行監控。docker

強大的多維度數據模型:shell

  1. 時間序列數據經過 metric 名和鍵值對來區分。
  2. 全部的 metrics 均可以設置任意的多維標籤。
  3. 數據模型更隨意,不須要刻意設置爲以點分隔的字符串。
  4. 能夠對數據模型進行聚合,切割和切片操做。
  5. 支持雙精度浮點類型,標籤能夠設爲全 unicode。

使用docker啓動prometheus數據庫

#將prometheus的配置文件映射到host,方便以後修改配置
docker run -d -p 9090:9090 -v ~/docker/prometheus/:/etc/prometheus/ prom/prometheus

配置文件 ~/docker/prometheus/prometheus.ymlgoogle

172.17.0.1爲宿主機的docker私網ip。lua

global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
scrape_configs:
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['localhost:9090']
  - job_name: 'server'
    static_configs:
    - targets: ['172.17.0.1:9100']
  - job_name: 'mysql'
    static_configs:
    - targets: ['172.17.0.1:9104']

prometheus收集器搭建

​ 監控exporter——監控當前機器自身的狀態,包括硬盤、CPU、流量等。由於Prometheus已經有了不少現成的經常使用exporter。url

​ 因此咱們直接用其中的node-exporter。在Prometheus看來,一臺機器或者說一個節點就是一個node,因此該exporter是在上報當前節點的狀態。mysqld-exporter是專門監控mysql,並將收集的數據提供給Prometheus。spa

exporter用host模式啓動,與host共享ip,方便獲取mysql的相關信息

#主機信息收集exporter
docker run -d \
  --net="host" \
  --pid="host" \
  -v "/:/host:ro,rslave" \
  quay.io/prometheus/node-exporter \
  --path.rootfs=/host
  
  #數據庫信息收集exporter
  #DATA_SOURCE_NAME="用戶名:密碼@(mysqlip:port)"
  docker run -d \
  -p 9104:9104 \
  --net="host" \
  --pid="host" \
  -e DATA_SOURCE_NAME="root:Abc_12345678@(172.17.0.1:3306)/" \
  prom/mysqld-exporter

grafana搭建

grafana啓動

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

grafana配置

  1. 配置prometheus數據源,url是prometheus的私網ip,Access選Server方式,由於grafana和prometheus都是docker來啓動的。使用私網ip,經過服務端去獲取數據。

image.png

  1. 導入grafana監控模板,mysql監控模板id爲7362,填入以下輸入框內

image.png

image.png

3.導入主機的監控模板,模板id爲8919,以相同方式導入便可。

相關文章
相關標籤/搜索