1. 程式人生 > 實用技巧 >利用Prometheus和Grafana監控MySQL

利用Prometheus和Grafana監控MySQL

一、Prometheus 是一個開源的服務監控系統和時間序列資料庫。:

官方GitHub地址為:https://github.com/prometheus/prometheus

官方地址:https://prometheus.io/

官方拓撲圖如下

wKiom1k_T1_iPyeZAABYjYY42Hw608.png-wh_50


特性:

  • 高維度資料模型

  • 自定義查詢語言

  • 視覺化資料展示

  • 高效的儲存策略

  • 易於運維

  • 提供各種客戶端開發庫

  • 警告和報警

  • 資料匯出

二、安裝Prometheus(伺服器環境為Centos7.2,本實驗服務端跟被監控MySQL在同一臺伺服器)

前提條件請關閉SELinux與Firewalld(centos6 為iptables)

下載安裝prometheus
$wgethttps://github.com/prometheus/prometheus/releases/download/v1.7.1/prometheus-1.7.1.linux-amd64.tar.gz
$mkdir/opt/prometheus
$tarzxfprometheus-1.7.1.linux-amd64.tar.gz-C/opt/prometheus--strip-components=1
編輯配置prometheus.yml檔案,內容如下:
global:
scrape_interval:15s
evaluation_interval:15s
external_labels:
monitor:'codelab-monitor'
rule_files:
scrape_configs:
-job_name:'prometheus'
static_configs:
-targets:['192.168.1.199:9090']
-job_name:linux
static_configs:
-targets:['192.168.1.199:9100']
labels:
instance:db1
-job_name:mysql
static_configs:
-targets:['192.168.1.199:9104']
labels:
instance:db1

後臺啟動prometheus
nohup/opt/prometheus/prometheus-config.file=prometheus.yml&
tail-200fnohup.out
time="2017-06-12T11:51:16+08:00"level=infomsg="Startingprometheus(version=1.7.0,branch=master,revision=bfa37c8ee39d11078662dce16c162a61dccf616c)"source="main.go:88"
time="2017-06-12T11:51:16+08:00"level=infomsg="Buildcontext(go=go1.8.3,
[email protected]
,date=20170607-09:43:48)"source="main.go:89" time="2017-06-12T11:51:16+08:00"level=infomsg="Hostdetails(Linux3.10.0-327.el7.x86_64#1SMPThuNov1922:10:57UTC2015x86_64monitor(none))"source="main.go:90" time="2017-06-12T11:51:16+08:00"level=infomsg="Loadingconfigurationfileprometheus.yml"source="main.go:252" time="2017-06-12T11:51:16+08:00"level=infomsg="Loadingseriesmapandheadchunks..."source="storage.go:428" time="2017-06-12T11:51:16+08:00"level=infomsg="2200seriesloaded."source="storage.go:439" time="2017-06-12T11:51:16+08:00"level=infomsg="source="web.go:259"
Prometheus提供一個內建的web介面。我們可以通過http://192.168.1。199:9090訪問

wKiom1k_VuSzjWuWAACw3bfnMEA288.png-wh_50

Status->Targets頁面下,我們可以看到我們配置的兩個Target,它們的State

wKiom1k_V6TQeZGqAADUtT_TxoI972.png-wh_50

三、接下來我們安裝client客戶端

1、安裝client
$wgethttps://github.com/prometheus/node_exporter/releases/download/v0.14.0/node_exporter-0.14.0.linux-amd64.tar.gz
$wgethttps://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gz
$mkdir/opt/prometheus_exporters
$tarzxfnode_exporter-0.14.0.linux-amd64.tar.gz-C/opt/prometheus_exporters--strip-components=1&&tarzxfmysqld_exporter-0.10.0.linux-amd64.tar.gz-C/opt/prometheus_exporters--strip-components=1
2、啟動os監控client
nohup/opt/prometheus_exporters/node_exporter&
tail-200fnohup.out
time="2017-06-12T11:28:52+08:00"level=infomsg="-hwmon"source="node_exporter.go:162"
time="2017-06-12T11:28:52+08:00"level=infomsg="-netstat"source="node_exporter.go:162"
time="2017-06-12T11:28:52+08:00"level=infomsg="-stat"source="node_exporter.go:162"
time="2017-06-12T11:28:52+08:00"level=infomsg="-vmstat"source="node_exporter.go:162"
time="2017-06-12T11:28:52+08:00"level=infosource="node_exporter.go:186"
3、mysqld_exporter需要連線到MySQL,需要授權
mysql>GRANTREPLICATIONCLIENT,PROCESSON*.*TO'monitor'@'localhost'identifiedby'test123';
mysql>GRANTSELECTONperformance_schema.*TO'monitor'@'localhost';
4、建立.my.cnf檔案並執行mysqld_exporter
[
[email protected]
prometheus_exporters]#cat.my.cnf [client] user=monitor password=test123 [[email protected]prometheus_exporters]#exportDATA_SOURCE_NAME="monitor:[email protected](monitor:3306)/" #####(monitor:3306)/此monitor為主機名 啟動mysqld_exporter nohup/opt/prometheus_exporters/mysqld_exporter-config.my-cnf=".my.cnf"& tail-200fnohup.out time="2017-06-12T11:30:07+08:00"level=infomsg="Startingmysqld_exporter(version=0.10.0,branch=master,revision=80680068f15474f87847c8ee8f18a2939a26196a)"source="mysqld_exporter.go:460" time="2017-06-12T11:30:07+08:00"level=infomsg="Buildcontext(go=go1.8.1,[email protected],date=20170425-11:24:12)"source="mysqld_exporter.go:461" time="2017-06-12T11:30:08+08:00"level=infomsg="source="mysqld_exporter.go:479"

我們回到192.168.1.199:9090,可以看到

Status->Targets頁面

wKiom1k_XLrwwLDTAADUtT_TxoI102.png-wh_50

四、安裝和執行Grafana

1、安裝Grafana
#wgethttps://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.3.2-1.x86_64.rpm
#yumlocalinstallgrafana-4.3.2-1.x86_64.rpm
替換grafana的dashboards
Grafana並沒有太多的配置好的圖表模板,除了Percona開源的一些外,很多需要自行配置。
下載dashboards(https://github.com/percona/grafana-dashboards)
gitclonehttps://github.com/percona/grafana-dashboards.git
cp-rgrafana-dashboards/dashboards/var/lib/grafana/
2、編輯配置檔案/etc/grafana/grafana.ini,修改dashboards.json段落下兩個引數的值:
[dashboards.json]
enabled=true
path=/var/lib/grafana/dashboards
2、執行Grafana
systemctlstartgrafana-server
#[[email protected]prometheus_exporters]#psaux|grepgrafana
root32110.00.0112664972pts/1S+11:400:00grep--color=autografana
grafana212410.30.880572039620?Ssl6月124:42/usr/sbin/grafana-server--config=/etc/grafana/grafana.ini--pidfile=cfg:default.paths.logs=/var/log/grafanacfg:default.paths.data=/var/lib/grafanacfg:default.paths.plugins=/var/lib/grafana/plugins

我們可通過http://192.168.1.199:3000訪問Grafana網頁介面(預設的帳號/密碼為admin/admin):

wKioL1k_X1eRfQY0AAFCKRY7Lek874.png-wh_50

登入並設定資料來源

wKiom1k_X_GQYFWJAAB03lcav4g535.png-wh_50

wKioL1k_X_OC-PsOAAC5kut_L9Y172.png-wh_50

至此大功告成

我們可以看到os與資料庫監控資料了

wKioL1k_YNaRHWPBAAFbttD6Xyc255.png-wh_50

wKiom1k_YN3BxezxAAFDx7hNFBs450.png-wh_50





spacer.gif

轉載於:https://blog.51cto.com/412166174/1934854