Prometheus+Grafana可視化監控MySQL

使用Prometheus和Grafana對MySQL服務器性能進行監控。
使用兩個exporter:
node_exporter: 服務器系統數據,指標如 CPU、內存、磁盤等。
mysqld_exporter: MySQL服務器數據收集。
監控架構圖:
Prometheus+Grafana可視化監控MySQL

  • Prometheus安裝配置
    安裝方式二進制安裝,詳見這裏 CentOS7部署Prometheus
    版本:目前最新版本prometheus-2.18.1
    修改Prometheus配置文件prometheus.yml,主要配置scrape configuration項。
    scrape_configs:
    # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
    - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['10.20.1.63:9090']
    - job_name: 'local_node'
    static_configs:
      - targets: ['10.20.1.63:9100']
        labels:
          instance: prometheus_node
    - job_name: 'mysql01'
    static_configs:
      - targets: ['10.20.10.18:9104']
        labels:
          instance: db1
    - job_name: 'mysql02'
    static_configs:
      - targets: ['10.20.10.19:9104']
        labels:
          instance: db2
  • 安裝exporter
    下載安裝node_exporter、mysqld_exporter。從官網下載https://prometheus.io/download/
    版本分別爲node_exporter-0.18.1、mysqld_exporter-0.12.1。
    1) 安裝node_exporter
    wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
    mkdir -p /opt/prometheus
    tar xzvf node_exporter-0.18.1.linux-amd64.tar.gz 
    mv node_exporter-0.18.1.linux-amd64 /opt/prometheus/
    ln -s /opt/prometheus/node_exporter-0.18.1.linux-amd64/ /opt/prometheus/node_exporter

    添加系統服務啓動.
    先創建prometheus用戶,用於啓動node_exporter。

    useradd  -s /sbin/nologin -M prometheus

    vim /usr/lib/systemd/system/node_exporter.service

    [Unit]
    Description=node_exporter
    Documentation=https://prometheus.io/
    After=network.target
    [Service]
    Type=simple
    User=prometheus
    ExecStart=/opt/prometheus/node_exporter/node_exporter 
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target

    啓動node_exporter服務

    systemctl status node_exporter.service

    2) 安裝mysqld_exporter

    wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
    mkdir -p /opt/prometheus
    mv /usr/local/mysqld_exporter-0.12.1.linux-amd64/ /opt/prometheus/
    ln -s /opt/prometheus/mysqld_exporter-0.12.1.linux-amd64/ /opt/prometheus/mysqld_exporter
    chown -R prometheus:prometheus /opt/prometheus/

    添加系統服務啓動.
    先創建prometheus用戶,用於啓動mysqld_exporter。

    useradd  -s /sbin/nologin -M prometheus

    vim /usr/lib/systemd/system/mysqld_exporter.service

    [Unit]
    Description=node_exporter
    Documentation=https://prometheus.io/
    After=network.target
    [Service]
    Type=simple
    User=prometheus
    ExecStart=/opt/prometheus/mysqld_exporter/mysqld_exporter --config.my-cnf=/opt/prometheus/mysqld_exporter/.my.cnf
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target

    啓動參數:--config.my-cnf=".my.cnf" #指定配置文件
    啓動mysqld_exporter服務

    systemctl status mysqld_exporter.service

    mysqld_exporter需要連接到Mysql,所以需Mysql的權限,創建mysql_exporter用戶並賦予所需的權限。

    mysql> GRANT REPLICATION CLIENT,PROCESS ON *.* TO 'mysql_exporter'@'localhost' identified by 'xxxxxx';
    mysql> GRANT SELECT ON *.* TO 'mysql_exporter'@'localhost';

    創建.my.cnf文件,並重啓mysqld_exporter服務。
    vim /opt/prometheus/mysqld_exporter/.my.cnf

    [client]
    user=mysql_exporter
    password=xxxxxx
  • Prometheus監控
    回到Prometheus,Web查看Status->Targets頁面,可以看到Target的State狀態都爲UP,說明exporter都已收集到監控數據了。
    Prometheus+Grafana可視化監控MySQL
    Prometheus監控使用promSQL查看mysql監控信息,如連接數信息mysql_global_status_connections。
    Prometheus+Grafana可視化監控MySQL
    但Prometheus自帶的圖形並不夠強大,所以結合Grafana作爲Prometheus的Dashboard。
  • 配置Grafana
    通過grafana的默認3000端口,訪問Grafana網頁,添加數據源
    Prometheus+Grafana可視化監控MySQL
    這裏選擇Prometheus數據源,其中URL填寫Prometheus地址,其他項保持默認。單擊 Save & Test 添加成功後如下。
    Prometheus+Grafana可視化監控MySQL
    Granfana 導入Mysql 監控圖表。推薦 https://grafana.com/grafana/dashboards/7362 監控模板,導出Download JSON。
    Granfana進入Create->Import導入Dashboards。
    Prometheus+Grafana可視化監控MySQL
    監控項非常詳細,最終呈現如下:
    Prometheus+Grafana可視化監控MySQL
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章