PMM - Percona Monitoring and Management



PMM은 서버 클라이언트 형태로 MySQL(MariaDB), MongoDB를 모니터할수 있는 플랫폼으로 1.0.3 Beta 버전을 지나 얼마전 1.0.4 GA 정식 안정화버전으로 나온 뜨끈한 제품이다.


 

 • PMM Client : 모니터링하고자 하는 DB서버에 직접 설치한다. 서버정보, DB정보, 쿼리정보등을 수집해 PMM Server로 보내준다.

 

 • PMM Server : PMM Client에서 수집된 데이터를 저장하고 이를 이용해 웹기반의 대시보드와 그래프를 보여준다.

 

 

 

설치

 

모니터링 하고자 하는 서버가 1대라면 DB서버에 Server/Client를 모두 설치해도 무방하지만 DB서버가 다수라면 모니터링 전용 Server를 두고 각각의 DB서버에는 Client만 운영하도록 한다.

  

 

PMM Server 설치

 

PMM Server는 Docker 이미지로 배포된다. (https://hub.docker.com/r/percona/pmm-server)


본 문서에서 서버용 호스트를 CentOS7로 진행하지만 Docker를 사용하기 때문에 어떤 OS인지는 중요하지 않다.


CentOS7에서 yum 으로 Docker 설치가 가능하지만 최신버전을 권장하므로 스크립트를 활용하도록 한다.



[root@localhost ~]# wget -qO- https://get.docker.com/ | sh




이제 이미지를 받아온다.


[root@localhost ~]# docker pull percona/pmm-server


 

 

받은 이미지를 확인한다.


[root@localhost opt]# docker images

REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE

percona/pmm-server   latest              1c83d650105e        5 days ago          677.3 MB




PMM 데이터 컨테이너를 만든다.


[root@localhost ~]# docker create -v /opt/prometheus/data -v /opt/consul-data -v /var/lib/mysql --name pmm-data  percona/pmm-server /bin/true




PMM 서버 컨테이너를 만들고 실행한다.


[root@localhost ~]# docker run -d  -p 80:80 --volumes-from pmm-data  --name pmm-server  --restart always  percona/pmm-server


만약 80포트를 쓸 수 없다면 -p 8080:80 해서 8080으로 바꿔쓰면 된다.



생성된 컨테이너를 확인한다.


[root@localhost ~]# docker ps -a

CONTAINER ID        IMAGE                COMMAND                CREATED             STATUS              PORTS                         NAMES

926afb355201        percona/pmm-server   "/opt/entrypoint.sh"   2 hours ago         Up 2 hours          0.0.0.0:80->80/tcp, 443/tcp   pmm-server

6dce717d8eb9        percona/pmm-server   "/bin/true"            2 hours ago         Created                                           pmm-data



웹이 잘뜨는지 확인해본다. 물론 Client 설치가 되지 않았므로 데이터는 없다.


- PMM 랜딩페이지 : http://서버아이피

- 쿼리분석 페이지 : http://서버아이피/qan

- 매트릭스 모니터 : http://서버아이피/graph




PMM Client 설치


Client는 모니터링 할 DB서버에 설치되고 각종 데이터를 수집해 수집된 데이터는 Server로 보내준다.


여러가지 설치방식을 제공하지만 손쉽게 rpm 설치로 진행한다. 


https://www.percona.com/downloads/pmm-client/LATEST/ 에서 최신버전을 구할 수 있으며 현재 최신버전은 1.0.4 이다.



RPM 설치


[root@localhost ~]# rpm -ivh pmm-client-1.0.4-1.x86_64.rpm


기본 설치 경로는 /usr/local/percona 



Server 등록하기


Client에서 Server로 데이터를 밀어주는 방식이라 Client에서 Server를 등록해줘야 한다.


[root@localhost ~]# pmm-admin config --server 서버아이피

OK, PMM server is alive.


PMM Server      | 서버아이피 

Client Name     | localhost.localdomain

Client Address  | 클라이언트아이피

[root@localhost ~]# 





모니터링 서비스 등록하기


모니터링 서비스 영역에는 총 4가지가 있다.


 • linux:metrics : 시스템 자체의 모니터링

 • mysql:metrics : MySQL 인스턴스의 모니터링

 • mysql:queries : 쿼리 모니터링

 • mongodb:metrics : MongoDB 인스턴스의 모니터링

 

 

 이 외에 셋트 영역도 있다.

 

 • mysql : linux:metrics + mysql:metrics + mysql:queries

 • mongodb : linux:metrics + mongodb:metrics

 


개별적으로 하나씩 등록해도 되지만 간단하게 mysql 이나 mongodb 같은 셋트영역을 사용하면 된다.


[root@localhost ~]# pmm-admin add mysql --user root --password MySQL루트패스워드

[linux:metrics] OK, now monitoring this system.

[mysql:metrics] OK, now monitoring MySQL metrics using DSN root:***@unix(/tmp/mysql.sock)

[mysql:queries] OK, now monitoring MySQL queries from slowlog using DSN root:***@unix(/tmp/mysql.sock)



등록 확인하기


[root@localhost ~]# pmm-admin list

pmm-admin 1.0.4


PMM Server      | 서버아이피 

Client Name     | localhost.localdomain

Client Address  | 클라이언트아이피

Service manager | unix-systemv


-------------- ---------------------- ------------ -------- ------------------------------- ---------------------

SERVICE TYPE   NAME                   CLIENT PORT  RUNNING  DATA SOURCE                     OPTIONS              

-------------- ---------------------- ------------ -------- ------------------------------- ---------------------

linux:metrics  localhost.localdomain  42000        YES      -                                                    

mysql:queries  localhost.localdomain  42001        YES      root:***@unix(/tmp/mysql.sock)  query_source=slowlog 

mysql:metrics  localhost.localdomain  42002        YES      root:***@unix(/tmp/mysql.sock)                       






이제 모든 설치 작업이 끝났으므로 웹으로 확인하면 된다.


http://서버아이피/qan




http://서버아이피/graph


user : admin


password : admin  




to Top