閱讀192 返回首頁    go 阿裏雲 go 技術社區[雲棲]


安利一款運維殺手鐧,讓監控部署不再尷尬!(附視頻)

作者介紹

賀春暘金融MySQL專家,《MySQL管理之道》第一版、第二版作者。曾任職於中國移動飛信、機鋒安卓市場,擁有豐富的數據庫管理經驗。目前致力於MySQL、Linux等開源技術的研究。

 

一、痛點

 

目前DBA團隊和運維團隊是單獨部署的監控係統,我用Nagios監控DB,運維用Zabbix監控應用,早期我是用Cacti+Percona的模板做畫圖,由於MySQL/MongoDB服務的增多,每次人肉在網頁裏加監控項太累,後接在Zabbix裏實現畫圖,結果造成Zabbix的監控表變大,Zabbix開始變得卡頓產生大量的誤報警,導致運維在春節年會飯桌上收到了上百個報警短信,後直接切表才得以解決,固我決定需要拆分出去,實現微服務思想,讓運維可以安心吃頓飯 ^_^

 

二、介紹

 

Percona Monitoring and Management (PMM)是一款開源的用於管理和監控MySQL和MongoDB性能的開源平台,通過PMM客戶端收集到的DB監控數據用第三方軟件Grafana畫圖展示出來。在這個產品之前,Percona提供了Zabbix和Cacti的圖形模板,也許是考慮到了用戶部署起來繁瑣等問題,索性在春節前Percona發布了PMM Docker鏡像,用戶隻需要下載鏡像運行就全部搞定,開箱即用相當easy!

 

PMM架構如下圖所示:

 

20170221103329986.jpg

 

模塊說明:

  • Query Analytics (QAN):用來展示MySQL慢查詢日誌。

  • Prometheus:是一個開源的服務監控係統和時間序列數據庫,用來聚集DB的監控數據。

  • Grafana:將Prometheus裏麵的數據畫圖展示出來。

 

三、部署

 

係統:CentOS-7.3

 

1、Docker安裝

 

# yum install docker -y

 

2、PMM Server安裝

 

(1)下載PMM Server Docker鏡像

 

# docker create   \

   -v /opt/prometheus/data \

   -v /opt/consul-data \

   -v /var/lib/mysql \

   -v /var/lib/grafana \

   --name pmm-data \

   percona/pmm-server:1.0.7 /bin/true

 

(2)啟動

 

# docker run -d   \

   -p 80:80 \

   --volumes-from pmm-data \

   --name pmm-server \

   --restart always \

   percona/pmm-server:1.0.7

 

(3)查看Docker運行狀態

 

20170221103341588.jpg

20170221103404820.jpg

 

(4)打開瀏覽器https://yourip即可

 

20170221103411693.jpg

 

Component

URL

PMM首頁

https://yourip

Query Analytics (慢日誌分析)

https://yourip/qan/

Metrics Monitor (Grafana)

https://yourip/graph/

user name: admin

password: admin

Orchestrator

https://yourip/orchestrator

 

3、PMM Client安裝

 

(1)下載PMM Client

 

# wget

https://www.percona.com/downloads/pmm-client/LATEST/binary/tarball/pmm-client-1.0.7.tar.gz

# tar zxvf pmm-client-1.0.7.tar.gz

# cd pmm-client-1.0.7

# ./install

 

(2)連接PMM Server

 

# pmm-admin config --server yourip

 

(3)增加MySQL和MongoDB監控服務

 

# pmm-admin add mysql --user admin --password 123456 --host 192.168.148.21

# pmm-admin add mongodb --cluster rs1 --uri

mongodb://admin:123456@localhost:27017

 

(4)查看

 

# pmm-admin list

 

20170221103425242.jpg

20170221103440400.jpg

 

 

五、監控頁麵展示

 

OS係統

 

20170221103449167.jpg

 

MySQL

 

20170221103503985.jpg

20170221103511781.jpg

 

MySQL慢查詢分析

 

20170221103521198.jpg

 

MongoDB

 

20170221103632939.jpg

20170221103611399.jpg

 

 

六、Email報警

 

報警是通過Grafana發出的,內置有Email、Webhook、slack、pagerduty,可惜沒有微信,老外應該沒聽過這個玩意,所以這裏我介紹一下Email報警是如何配置的。

 

1、首先進入docker shell裏,見下麵截圖:

 

# docker ps

# docker exec -it 75d3be875849 /bin/bash

 

2、修改/etc/grafana/grafana.ini配置文件:

 

####################################   SMTP / Emailing ##########################

[smtp]

enabled = true

host =   smtp.126.com:25

user =   chunyang_he@126.com

password =   123456

;cert_file =

;key_file =

;skip_verify =   false

from_address =   chunyang_he@126.com

 

3、重啟Docker生效

 

# docker stop 75d3be875849

# docker start 75d3be875849

 

4、頁麵配置

 

 

這一步步驟繁瑣,具體請參考視頻演示:https://pan.baidu.com/s/1i4OyGo1

 

效果如下圖:

 

20170221103650593.jpg

原文發布時間為:2017-02-21

本文來自雲棲社區合作夥伴DBAplus

最後更新:2017-05-15 10:02:47

  上一篇:go  技術與時代並行丨DBAplus Newsletter(2017年2月)
  下一篇:go  凍結時間倒數前一小時,記一次步步驚心的SQL優化