grafana+prometheus快速搭建MySql監控系統實踐

湯青松發表於2018-08-15

一、背景

對於LNMP環境下的開發者來說,mysql是非常重要的一環,同時mysql的效能監控也是開發者所需要關注的一環;如果大家使用阿里雲的RDS會感覺到其監控功能非常好用,但如果開發者使用的是自建資料庫,該怎麼去搭建則需則需要去考慮一番了。

在prometheus和grafana未普及之前,要實現mysql的搭建確實要費一番工夫的,不過現在則很簡單就可以實現mysql的監控了。

筆者之前寫過一篇grafana+prometheus的基礎篇,因此本文中有些較為基礎的操作就省略了,讀者如果有不清晰的地方,建議去看一下基礎篇,參考連結:grafana+ prometheus+php 監控系統實踐

二、操作概要

  1. 安裝Mysqld-Exporter
  2. 增加prometheus任務
  3. 匯入mysql儀表盤
  4. 功能驗證與展示

三、安裝Mysqld-Exporter

要實現監控mysql的狀態,就需要獲取mysql的一些數值,然後把這些數值傳遞給prometheus,這個過程使用mysqld-exporter就可以輕易實現了,安裝之後,把所需的引數傳遞過去就可以使用,這裡使用docker安裝最為方便,因此筆者在下面的安裝方法便是採用此種方法安裝。

3.1 下載映象

使用docker方式下載極為方便,只需要執行如下命令即可,當然前提是需要安裝了docker。

docker pull prom/mysqld-exporter
複製程式碼

3.2 建立容器並啟動

下載映象完成之後,筆者需要按照指定的格式把資料庫的一些賬號與密碼以及地址名稱等資訊傳入進入,參考格式如下方命令:

docker run -d -p 9104:9104 -e DATA_SOURCE_NAME="root:password@(127.0.0.1:3306)/databaseName" prom/mysqld-exporter
複製程式碼

3.3 驗證

啟動之後,筆者需要驗證是否啟動成功,可以通過瀏覽器訪問如下地址

http://127.0.0.1:9104/
複製程式碼

當在瀏覽器當中看到如下介面,則代表以及啟動成功,如下圖:

image

不過需要注意的是,看到此介面並不代表你的資料庫賬號與密碼以及地址就正確了。

四、增加prometheus任務

經過前面一個步驟,筆者已經有了數值來源,現在需要做的就是通過prometheus將其收集起來,收集的方法也比較簡單,修改配置檔案,重啟prometheus即可,具體操作方法如下:

4.1 編輯prometheus的配置檔案

vim /Users/song/config/prometheus/prometheus.yml
複製程式碼

增加一個收集任務

---
global:
  scrape_interval: 5s
  scrape_timeout: 3s
scrape_configs:
- job_name: 'media'
  scrape_interval: 3s
  metrics_path: "/api/v1/rrd/toolSpool"
  static_configs:
    - targets: ['gslb.offcncloud.com:8080']
- job_name: 'mysql'
  scrape_interval: 5s
  static_configs:
    - targets: ['127.0.0.1:9104']
      labels:
        instance: 127.0.0.1

複製程式碼

在配置檔案當中,能看到prometheus會每5秒收集一次資料,需要給prometheus傳入主機地址。

4.2 啟動prometheus

修改並儲存配置檔案之後,筆者需要啟動prometheus,在mac系統中啟動命令如下:

prometheus --config.file=/Users/song/config/prometheus/prometheus.yml
複製程式碼

4.3 驗證收集是否成功

啟動完成之後,需要驗證prometheus是否啟動成功,可以通過瀏覽器開啟如下URL:

http://127.0.0.1:9090/graph
複製程式碼

如果在URL中看到mysql的狀態為綠色標誌,則代表筆者增加的任務已經成功。

image

五、匯入mysql儀表盤

到這一步筆者已經把mysql的效能數值匯入到prometheus當中,現在所需要做的事情便是在grafana當中展示儀表盤;這個儀表盤筆者可以自己去手動建立,也可以匯入一些開源的儀表盤,筆者覺得第三方的儀表盤省事也好看,所以這裡將採用匯入開源的儀表盤方式。

5.1 下載儀表盤檔案

首先需要在GitHub下載這些儀表盤檔案,下載命令如下:

git clone https://github.com/percona/grafana-dashboards.git
複製程式碼

下載完成之後,在其專案根目錄的dashboards資料夾下,會有一批grafana所匯出的儀表盤檔案,如下圖

image

找到MySQL_Overview.json檔案,並開啟此檔案,將其裡面的內容複製下來,

連結地址:MySQL_Overview.json,筆者將其上傳到了自己的伺服器,讀者可以直接開啟如下URL地址:

http://tuchuang.qsjianzhan.com/mysql/MySQL_Overview.json
複製程式碼

5.2 啟動grafana

現在筆者需要啟動grafana,筆者使用mac的brew安裝,所以啟動命令如下:

brew services start grafana
複製程式碼

5.3 匯入儀表盤

grafana本身提供匯入儀表盤功能,通過瀏覽器訪問如下網址:

http://127.0.0.1:3000/
複製程式碼

在grafana左側有一個新增儀表盤的圖表,可以點選點選匯入儀表盤,操作方法如下圖:

image

前面筆者已經複製了儀表盤的檔案,現在需要將其貼上進來,並點選load

image

六. 功能驗證與展示

匯入儀表盤之後,可以開啟grafana的首頁,在首頁當中會展示儀表盤列表,找到剛才匯入的儀表盤,如下圖

image

找到對應的儀表盤便可檢視mysql的詳細數值,如下圖所示:

image


作者:湯青松

微信:songboy8888

相關文章