Percona PMM - MySQL/MariaDB 모니터링하기
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
'MySQL-MariaDB' 카테고리의 다른 글
Binary Log(binlog) 사용하기 (1) | 2016.09.12 |
---|---|
innodb_flush_method, O_DIRECT에 대한 오해! (1) | 2016.08.22 |
innodb_flush_log_at_trx_commit (0) | 2016.08.08 |
XtraBackup을 이용한 InnoDB 증분백업과 복구하기 ( 4 ) 원격백업 (0) | 2016.07.29 |
XtraBackup을 이용한 InnoDB 증분백업과 복구하기 ( 3 ) 증분백업 (0) | 2016.07.29 |