當前位置:
首頁 > 知識 > Prometheus+Grafana打造Mysql監控平台

Prometheus+Grafana打造Mysql監控平台

  1. prometheus/node_exporter/mysqld_exporter都是由go語言編寫,需要先安裝GoLang環境
  2. 下載node_exporter(監控伺服器的CPU、內存、存儲使用情況)和mysqld_exporter放到Mysql伺服器(被監控端)
  • 需要為mysqld_exporter在Mysql資料庫新建一個用戶,並賦予相應許可權

CREATE USER "exporter"@"localhost" IDENTIFIED BY "XXXXXXXX" WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO "exporter"@"localhost";

  • 配置mysql_exporter啟動時連接mysql的用戶名和密碼
  • 環境變數方式:

export DATA_SOURCE_NAME="user:password@(hostname:3306)/"
./mysqld_exporter <flags>

  • 配置.my.cnf文件

[client]
user=exporter
password=exporter
然後啟動mysqld_exporter
mysqld_exporter -config.my-cnf=".my.cnf"

  1. 下載Prometheus放到監控端(或被監控端)。
  • 配置文件prometheus.yml

scrape_configs:
- job_name: prometheus
static_configs:
- targets: ["localhost:9090"]
labels:
instance: prometheus
- job_name: linux
static_configs:
# 192.168.1.7為node_exporter所在伺服器的IP;9100為node_exporter暴露的埠
- targets: ["192.168.1.7:9100"]
labels:
#db1為實例名,以後在Grafana獲取prometheus時,要配置prometheus所有伺服器的host為db1
instance: db1
- job_name: mysql
static_configs:
# 192.168.1.7為mysqld_exporter所在伺服器的IP;9100為mysqld_exporter暴露的埠
- targets: ["192.168.1.7:9104"]
labels:
instance: db1

  1. 啟動prometheus,並查看配置的Linux和Mysql節點狀態是否為Up
  2. 下載Grafana,並按文檔安裝
  3. 下載Percona提供的Dashboards

Prometheus+Grafana打造Mysql監控平台

  1. 如果grafana與prometheus不在一台伺服器,需要指定prometheus的主機名(此例中應該為db1),access要選擇proxy,表示由grafana處理請求,而不是直接請求prometheus。
  2. 啟動Grafana,並添加Prometheus數據源(注意必須為"Prometheus",因為Percona提供的dashboards使用的是Prometheus數據源)
  3. 正常情況下可以看見Mysql和System的儀錶盤,如果顯示不出來,請檢查下面幾個方面

- 檢查Grafana和grafana-dashboards版本(grafana-4.2 匹配grafana-dashboards-1.3.2,不匹配當前最新版本1.15).
- Grafana使用grafana用戶運行,所以需要檢查/etc/grafana,/var/lib/grafana,/usr/grafana目錄所有者和用戶組是否是grafana
- 對於grafana 3.X版本,還需要做如下處理,參見[grafana-dashboards](https://github.com/percona/grafana-dashboards)
> sed -i "s/expr=(.).replace((.).expr,(.).scopedVars(.*)var (.)=(.).interval/expr=1.replace(2.expr,3.scopedVars4var 5=1.replace(6.interval, 3.scopedVars)/"
/usr/share/grafana/public/app/plugins/datasource/prometheus/datasource.js
> sed -i "s/,range_input/.replace(/"{/g,""").replace(/}"/g,"""),range_input/; s/step_input:""/step_input:this.target.step/"
/usr/share/grafana/public/app/plugins/datasource/prometheus/query_ctrl.js
- grafana所有伺服器是否配置prometheus所有伺服器的IP與Host映射,如上的Prometheus的配置,host應該配置成db1

9.安裝成功結果如下圖:

Prometheus+Grafana打造Mysql監控平台

Prometheus+Grafana打造Mysql監控平台

Prometheus+Grafana打造Mysql監控平台

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

線程中斷以及線程中斷引發的那些問題
Promise實現原理

TAG:程序員小新人學習 |