PMM은 PMM server + PMM client (db서버에 설치) 로 이루어져있습니다.
PMM server는 docker를 통해 이미지를 받아오고 PMM client는 rpm으로 설치하는 과정을 소개하겠습니다.
-.1 docker 설치
[root@testserver1 ec2-user]# yum install docker Loaded plugins: priorities, update-motd, upgrade-helper [root@testserver1 ec2-user]# service docker start Starting cgconfig service: [ OK ] Starting docker: . [ OK ] [root@testserver1 ec2-user]# [root@testserver1 ec2-user]# docker version Client: Version: 18.03.1-ce API version: 1.37 Go version: go1.9.4 Git commit: 3dfb8343b139d6342acfd9975d7f1068b5b1c3d3 Built: Thu May 24 22:21:27 2018 OS/Arch: linux/amd64 Experimental: false Orchestrator: swarm Server: Engine: Version: 18.03.1-ce API version: 1.37 (minimum version 1.12) Go version: go1.9.4 Git commit: 7390fc6/18.03.1-ce Built: Thu May 24 22:22:43 2018 OS/Arch: linux/amd64 Experimental: false
=> yum으로 docker 설치 후 docker start
-.2 pmm server 설치
[root@testserver1 ec2-user]# docker pull percona/pmm-server Using default tag: latest latest: Pulling from percona/pmm-server 469cfcc7a4b3: Pull complete aa2dbf5f79ad: Pull complete Digest: sha256:93ebd791229d8e5d2fa1e955f838532d5231e61c31a7652b11c87f1717ec2bbc Status: Downloaded newer image for percona/pmm-server:latest [root@testserver1 ec2-user]# [root@testserver1 ec2-user]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE percona/pmm-server latest a412cf31e624 2 weeks ago 999MB
=> percona/pmm-server image를 받아온 후 확인
[root@testserver1 aws]# docker create -v /opt/prometheus/data -v /opt/consul-data -v /var/lib/mysql/ --name PMM-DATA percona/pmm-server /bin/true 9b18ba73b80beb49e82360e885686eea88fb74c20caa8bc3a64f3f13b05e28bc [root@testserver1 aws]# docker run -d -p 80:80 --volumes-from PMM-DATA --name PMM-SERVER --restart always percona/pmm-server 30a8ec753efed18b21838ce3f0e1cf921289fb23e129487d1cd637fa5283a56a [root@testserver1 aws]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 30a8ec753efe percona/pmm-server "/opt/entrypoint.sh" 37 seconds ago Up 36 seconds 0.0.0.0:80->80/tcp, 443/tcp PMM-SERVER 9b18ba73b80b percona/pmm-server "/bin/true" About a minute ago Created PMM-DATA
=> pmm-server 에 필요한 컨테이너를 생성 후 실행
-3. PMM client 설치
[root@testserver1 ec2-user]# rpm -ivh pmm-client-1.11.0-1.el6.x86_64.rpm [root@testserver1 ec2-user]# rpm -qa | grep pmm pmm-client-1.11.0-1.el6.x86_64 [root@testserver1 local]# pmm-admin config --server pmm-server ip OK, PMM server is alive. PMM Server | pmm-server ip Client Name | testserver1 Client Address |
=> db 서버에서 pmm-client 를 설치 후 pmm-admin 커맨드를 통해 데이터를 전송할 pmm-server 를 등록해줌
[root@testserver1 local]# pmm-admin add mysql --user root --password test [linux:metrics] OK, now monitoring this system. [mysql:metrics] OK, now monitoring MySQL metrics using DSN root:***@unix(/engn001/masvc01/TEST_10.2.4/mysql/mysql.sock) [mysql:queries] OK, now monitoring MySQL queries from slowlog using DSN root:***@unix(/engn001/masvc01/TEST_10.2.4/mysql/mysql.sock)
=> pmm-admin 커맨드를 사용하여 모니터링할 maria db를 등록함
[root@testserver1 local]# pmm-admin list pmm-admin 1.11.0 PMM Server | pmm-server ip Client Name | testserver1 Client Address | pmm-server ip Service Manager | linux-upstart -------------- ---------------- ----------- -------- ------------------------------------------------------------- ------------------------------------------------------------------------------------- SERVICE TYPE NAME LOCAL PORT RUNNING DATA SOURCE OPTIONS -------------- ---------------- ----------- -------- ------------------------------------------------------------- ------------------------------------------------------------------------------------- mysql:queries testserver1 - YES root:***@unix(/engn001/masvc01/TEST_10.2.4/mysql/mysql.sock) query_source=slowlog, query_examples=true, slow_log_rotation=true, retain_slow_logs=1 linux:metrics testserver1 42000 YES - mysql:metrics testserver1 42002 YES root:***@unix(/engn001/masvc01/TEST_10.2.4/mysql/mysql.sock)
=> pmm-admin list 를 통해 pmm-client 모듈들 정상 확인
-4. PMM 접속
- PMM 메인페이지 : http://서버아이피
- 쿼리분석 페이지 : http://서버아이피/qan
- 매트릭스 모니터 : http://서버아이피/graph