MySQL: 9 为数据库部署Prometheus+Grafana监控系统

1.Prometheus和Grafana的介绍

Prometheus是一个监控数据采集和存储系统,它可以利用监控数据采集组件(比如mysql_export)从你指定的MySQL数据库中采集他需要的监控数据,然后他自己有一个时序数据库,它会把采集到的监控数据放入自己的时序数据库中,本质上就是存储在磁盘文件里。

Grafana是一个可视化的监控数据展示系统,他可以把Prometheus采集到的大量的MySQL监控数据展示成各种精美的报表,让我们可以直观的看到MySQL的监控情况。

不只是对数据库监控可以采用 Prometheus+Grafana 的组合,对于开发出来的各种Java系统、中间件系统,都可以使用这套组合去进行可视化的监控,就是让Prometheus去采集你的监控数据,然后用Grafana展示成报表。

2. 安装和启动Prometheus

(1)安装环境: Linux 服务器系统

(2)下载Prometheus安装包和node_exporter采集组件包

通过这里的连接 :http://cactifans.hi-www.com/prometheus/ 可以下载当前需要的两个压缩包,这里prometheus是用来部署监控系统自己的,然后node_exporter是用来采集MySQL数据库所在机器的CPU、内存、网络、磁盘之类的监控数据的:

node_exporter-0.15.2.linux-amd64.tar.gz  

prometheus-2.1.0.linux-amd64.tar.gz 

(3)MySQL数据库数据采集组件

mysqld_exporter-0.10.0.linux-amd64.tar.gz

这个mysqld_exporter就是用来采集MySQL数据库自己的一些监控数据的,比如SQL性能、连接数量之类的:

https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gz(从本连接可以下载 mysqld_exporter)

(4)安装流程

mkdir /data
mkdir /root

tar xvf prometheus-2.1.0.linux-amd64.tar.gz -C /data
tar xf node_exporter-0.15.2.linux-amd64.tar.gz -C /root
tar xf mysqld_exporter-0.10.0.linux-amd64.tar.gz -C /root

cd /data/
mv prometheus-2.1.0.linux-amd64/ prometheus
cd prometheus/

接下来要修改prometheus的配置文件 vi prometheus.yml,主要是在scrape_configs下面加入一大段自定义的配置,因为它需要去采集MySQL数据本身和MySQL所在机器的监控数据:

# my global config
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).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  - job_name: 'Host'
    file_sd_configs:
    - files:
      - 'host.yml'
    metrics_path: /metrics
    relabel_configs:
    - source_labels: [__address__]
      regex: (.*)
      target_label: instance
      replacement: $1
    - source_labels: [__address__]
      regex: (.*)
      target_label: __address__
      replacement: $1:9100

  - job_name: 'MySQL'
    file_sd_configs:
    - files:
        - 'mysql.yml'
    metrics_path: /metrics
    relabel_configs:
    - source_labels: [__address__]
      regex: (.*)
      target_label: instance
      replacement: $1
    - source_labels: [__address__]
      regex: (.*)
      target_label: __address__
      replacement: $1:9104

  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

上面的配置文件写好之后,就可以启动Prometheus了。

(5)启动prometheus

需要在/data/prometheus目录中,去执行启动命令:

/data/prometheus/prometheus --storage.tsdb.retention=30d &

这里的30d是说你的监控数据保留30天。启动之后,就可以在浏览器中访问9090端口去查看prometheus的主页了。

MySQL: 9 为数据库部署Prometheus+Grafana监控系统

3. 部署Grafana

下载 grafana-4.6.3.linux-x64.tar.gz,然后一步一步的执行下面的命令,完成它的启动。

华为镜像地址:https://mirrors.huaweicloud.com/grafana/(比官网下载要快)

    tar xf grafana-4.6.3.linux-x64.tar.gz -C /data/prometheus/
    cd /data/prometheus/
    mv grafana-4.6.3 grafana

    cd /data/prometheus/grafana
    ./bin/grafana-server &

接着就完成了grafana的启动,然后可以通过浏览器访问3000端口,默认的用户名和密码是admin/admin。接着在Grafana左侧菜单栏里有一个Data Source,点击里面的一个按钮是Add data source,就是添加一个数据源。

然后在界面里输入你的数据源的名字是Prometheus,类型是Prometheus,HTTP URL地址是http://127.0.0.1:9090,其他的都用默认的配置就行了,接下来Grafana就会自动从Prometheus里获取监控数据和显示了。

接着需要安装Grafana的仪表盘组件,首先需要下载grafana-dashboards-1.6.1.tar.gz。执行以下的命令去安装 grafana-dashboard 组件。

    tar xvf grafana-dashboards-1.6.1.tar.gz
    cd grafana-dashboards-1.6.1
    updatedb
    locate json | grep dashboards

这个时候会看到一大堆的json文件,就是各种不同的仪表盘对应的json配置文件,你可以把这些json配置文件通过WinSCP之类的工具从Linux机器上拖到你的windows电脑上来,因为需要通过浏览器上传他们。

接着在Grafana页面中,可以看到最上面有一个Import Dashboard的按钮,就是说可以导入一些仪表盘,这个时候就是要导入刚才看到的一大堆的json文件。

你点击Upload json file 按钮,就会出现一个界面让你上传一个一个的json文件了,然后你就依次上传,接着grafana中就会出现一大滴的仪表盘了,比如机器的CPU使用率的仪表盘,磁盘性能仪表盘,磁盘空间仪表盘,MySQL监控仪表盘,等等。

上一篇:CentOS7部署Prometheus


下一篇:Prometheus 学习笔记 - 安装配置 Grafana