前言
數據庫監控工具最常用的就是zabbix了,zabbix能將收集到的數據通過圖表展示出來,並通過設置閾值及時告警。可zabbix對於文本的處理就不行了,比方說抓取數據庫運行的sql,這個zabbix就無能為力。如果想看這段時間內執行的sql,常用的手段,對於oracle我們能通過拉取一段時間的awr報告進行分析,可mysql和mongodb沒有類似的分析報告,只能去慢日志里面淘。接下來介紹一款監控mysql、mongodb的利器(PMM)。
(PMM)是一款開源的用於管理和監控MySQL和MongoDB性能的開源平台,通過PMM客戶端收集到的DB監控數據用第三方軟件Grafana畫圖展示出來。PMM除了能監控系統和數據庫的一些指標以外,還能顯示數據庫指定時間范圍內的慢日志,類似於Oracle中AWR的SQL ordered by Elapsed Time。
界面demo可以看官網:https://pmmdemo.percona.com/graph/
安裝使用
pmm分為pmm-server和pmm-agent。pmm-server部署在單獨的一台機器上,pmm-agent部署在被監控機上。下面是官網上介紹pmm的架構。
server端
安裝的方式采用docker,我這里使用的環境是centos7(建議使用centos7)
關閉防火牆和selinux
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
安裝docker
yum install docker -y
啟動docker
service docker start
下載最新的鏡像文件
docker pull percona/pmm-server:latest
查看鏡像
docker tag percona/pmm-server percona/pmm-server:1.1.1 # 復制percona/pmm-server:latest鏡像,並重命名為percona/pmm-server:1.1.1
docker images
創建容器
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.1.1 /bin/true
啟動容器
docker run -d \
-p 8080:80 \
--volumes-from pmm-data \
--name pmm-server \
--restart always \
percona/pmm-server:1.1.1
查看容器運行
docker ps
pmm-agent端
下載pmm-client(https://www.percona.com/downloads/pmm/),下載rpm包或二進制包都行,我這里使用的是二進制包
安裝pmm-agent
tar -zxvf pmm-client-1.17.1.tar.gz
cd pmm-client-1.17.1
./install
連接PMM Server
./pmm-admin config --server 10.40.16.60:8080 #10.40.16.60為pmm-server的ip地址
增加MySQL監控服務
先創建一個監控用戶,也可以用已經存在的用戶
SQL> grant all on *.* to monitor@'%' identified by 'monitor';
./pmm-admin add mysql --user monitor --password monitor --host 10.30.10.50 #host為被監控機的ip地址
查看監控狀態
./pmm-admin list
登陸網頁
去瀏覽器打開http://10.40.16.60:8080 #10.40.16.60為pmm-server的ip地址
出現下面界面,接下來就是各種指標查看了,摸索去吧,有問題歡迎大家留言