close

對於資料庫來說 ,提供方便的監控,對於服務的掌握十分重要.

本文為作者工作上需求所安裝的工具,使用grafana

紀錄於此

 

首先選用PMM Server run on Docker的做法

1. 安裝Docker, 要求1.12.6以上的版本 Get Docker CE for CentOSInstall CS Docker Engine

安裝repository
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

檢查
sudo yum makecache fast
 ==> fingerprint 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
安裝
sudo yum install docker-ce -y

修改docker存放資料的路徑,方便硬碟空間管理
cd /etc/docker
vi daemon.json

{
    "graph": "/home/docker",
    "storage-driver": "overlay"
}

啟用
sudo systemctl start docker
sudo systemctl enable docker

2. 下載並執行pmm server
sudo docker create -v /opt/prometheus/data -v /opt/consul-data -v /home/lib/mysql_pmm -v /var/lib/grafana --name pmm-data percona/pmm-server:1.1.5 /bin/true

sudo 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.5 /bin/true
sudo docker run -d -p 80:80 --volumes-from pmm-data --name pmm-server --restart always percona/pmm-server:1.1.5

打開瀏覽器,輸入http://pmm-server-ip

pmm grafana.png

3. 安裝pmm client (至各client端)
sudo yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
sudo yum install pmm-client


4. 配置pmm clinet的準備動作, What privileges are required to monitor a MySQL instance?

新增Mariadb 監控使用者
CREATE USER 'monitor'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, RELOAD, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO '
monitor'@'localhost' WITH MAX_USER_CONNECTIONS 5;
GRANT UPDATE, DELETE, DROP ON performance_schema.* TO '
monitor'@'localhost';
FLUSH PRIVILEGES;

5. 新增MongoDB監控使用者, percona/mongodb_exporter
db.createUser(
  {
    user: "
monitor",
    pwd: "
password",
    roles: [ { role: "clusterMonitor", db: "admin" }, { role: "read", db: "local" } ]
  }
)


6. 配置 Managing PMM Client

sudo pmm-admin config --server pmm-server-ip
sudo pmm-admin add mysql:metrics --user monitor --password password
(也可以讓pmm clinet自動新增使用者, --create-user)
sudo pmm-admin add mysql:queries --user monitor --password password
sudo pmm-admin add mongodb:metrics --uri mongodb://monitor:password@client-ip
sudo pmm-admin add linux:metrics

在瀏覽器上就能看到圖
pmm grafana 2.png

7. Query Analytics

目前的pmm server query analytics對Mariadb 10.1.X 僅支援performance schema而沒有slow log,啟用方式等同8-a


8. 加減metrics的項目, Configuring MySQL for Percona Monitoring and Management

a. 一般耗能 - Configuring Performance Schema - toubleshooting使用
在my.cnf新增,重啟服務
innodb_monitor_enable=all
performance_schema=ON

檢查
SHOW VARIABLES LIKE 'performance_schema';

b. 低耗能 - MySQL InnoDB ALL Metrics - 可常駐
SET GLOBAL innodb_monitor_enable=all;

c. 高耗能 - MySQL User Statistics - toubleshooting使用
SET GLOBAL userstat=1;

d. 極耗能 - MySQL Query Response Time - toubleshooting使用
INSTALL PLUGIN QUERY_RESPONSE_TIME_AUDIT SONAME 'query_response_time.so';
INSTALL PLUGIN QUERY_RESPONSE_TIME SONAME 'query_response_time.so';

INSTALL PLUGIN QUERY_RESPONSE_TIME_READ SONAME 'query_response_time.so';
INSTALL PLUGIN QUERY_RESPONSE_TIME_WRITE SONAME 'query_response_time.so';

(最後兩項僅Percona Server 5.6/5.7支援)
SET GLOBAL query_response_time_stats=ON;

9. 設定Slack Alert

直接參考MySQL-MongoDB开源监控利器PMM增加slack报警功能

 

10. client未正常移除,但機器已刪除時,該監控node和service都還在pmm-server的監控內,移除方式如下(參考 PMM add/remove mysql instances)

使用consul api或web ui 來 deregister
這邊說明api方式,因為web ui註銷功能拔掉了.
先登入docker pmm-server container
查看所有註冊node資訊
curl 'http://127.0.0.1:8500/v1/catalog/nodes' | python -m json.tool
 
查看所有註冊service資訊
curl 'http://127.0.0.1:8500/v1/catalog/services' | python -m json.tool
 
查看所有node與其service的註冊資訊 (其中Services內每個element會有一個ID的值,可以用來移除服務),用這個就好了
curl -s 'http://127.0.0.1/v1/internal/ui/nodes?dc=dc1' | python -m json.tool
 
直接從consul註銷服務或nodes
註銷node
curl -s -X PUT -d '{"Datacenter":"dc_name","Node":"node_name"}' 'http://127.0.0.1/v1/catalog/deregister?dc=dc_name'
 
註銷service (參考 Unable to deregister a service)
curl -s -X PUT -d '{"Datacenter":"dc_name","Node":"node_name","ServiceID":"service_metric"}' 'http://127.0.0.1/v1/catalog/deregister?dc=dc_name'


參考

Percona Monitoring and Management Documentation

Percona监控工具初探

Consul官網

arrow
arrow

    abcg5 發表在 痞客邦 留言(1) 人氣()