
구축환경
CentOS7
PMM
PMM이란?
Percona(페르소나)에서 제공하는 오픈소스 데이터베이스 모니터링 툴이다. 상용 DBMS 모니터링을 지원하는 오라클과는 달리 상용 DBMS 모니터링을 지원하지는 않지만 대부분의 오픈소스 DB를 지원한다. SQL문 성능 분석 기능과 함께 한 화면에서 동시에 여러 DB의 주요 메트릭을 관리할 수 있는 장점이 있다.
PMM은 프로메테우스(Prometheus)를 기반이며 관측된 메트릭 정보는 프로메테우스의 vicoriametrics에 저장된다.
그리고 환경 설정 정보는 postgreSQL에 저장된다.
PMM 클라이언트 패키지 구성
- pmm-admin : 모니터링할 데이터베이스 인스턴스를 추가하거나 제거하고, PMM 클라이언트를 관리하기 위한 명령줄 도구이다. (모니터링)서버에 등록한다.
- pmm-agent : 클라이언트 인증을 수행하고 PMM 서버에 저장된 클라이언트 구성을 가져오고 내보내기를 한다. 또한 기타 에이전트도 관리한다.
- exporter : 각 시스템의 노드 또는 DB 메트릭을 수집한다.
PMM 서버 구축 방식
| 방식 | 장점 | 단점 |
| Amazon AWS | 쉬운 설치 | 인프라 비용 |
| Virtual appliance | 원하는 하이퍼바이저로 쉽게 가져올 수 있음 | Docker보다 더 많은 시스템 리소스 발생 |
| Docker | 빠르고 단순한 설치 | 사전에 Docker 설치 필요 추가 네트워크 구성이 필요함 |
1. PMM 서버만들기
PMM-server 머신 만들기


CentOS 이미지 넣기, 네트워크 브릿지
| yum update -y |
| 패키지 업데이트 최신화 |
ip 확인
percona.com 사이트 참고
| yum install -y docker docker-registry |
| Docker 설치 |
| systemctl start docker |
| systemctl enable docker |
| Docker 활성화 |
| 이미지 받아오기 (태그(:)를 넣지 않으면 최신버전을 받게 된다) |
| docker pull percona/pmm-server |
| docker images |
| 내가 받은 이미지들 확인 |
| docker create -v /opt/prometheus/data -v /opt/consul-data -v /var/lib/mysql --name pmm-data percona/pmm-server /bin/true |
| pmm 서버를 설치할 때의 기본값, 컨테이너에 이름 설정하고 경로 받은 이미지를 컨테이너에 집어 넣는 과정이다. |
![]() |
| docker run --detach --restart always --publish 8080:80 --publish 4433:443 --volumes-from pmm-data --name pmm-server percona/pmm-server |
| 항상 실행되도록 설정, 80, 443 포트로 접속 가능하도록 설정, 실행되는 docker 프로세서 이름지정, 마지막은 원본 |
| docker ps (현재 프로세서를 알려주는 명령어) |
웹에 ip 주소 및 포트 입력
Home dashboard 접속 및 로그인 (admin/admin) - 비밀번호 변경

2. 클라이언트 머신 구축
다른 CentOS 머신 실행
클라이언트 (10.36) - 모니터링 되어지는 역할 담당
pmm 클라언트는 저장소에서 가져와서 설치할 수 있다.
| 저장소 설치 |
| yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm |
| 이 경로를 설치하게 되면 경로에서 rpm 파일을 다운 받을 수 있고, 혹은 wget을 사용해도 된다. 또 다른 방법은 CentOS의 저장소에 이 위치를 등록하고 yum으로 설치해도 된다. 지금은 yum으로 설치하기 위해서 저장소 설치 |
| 프로그램 설치 |
| yum install -y pmm2-client |
![]() |
systemctl status pmm-agent ![]() |
| 클라이언트에 mariadb-server 설치(DB서버 역할) |
| mariadb 접속 |
| create user ‘pmm’@’localhost’ identified by ‘1234’; 계정 하나 만들기 |
| grant all privileges on *.* to ‘pmm’@’localhost’; 원래는 모든 권한을 주면 안되지만 지금은 테스트니까 모든권한 주기 |
| show databases; |
![]() 현재는 스키마에 권한 설정 불가함 |
| flush privileges; |
![]() |
| quit |
| 서버등록(dashboard에 접속하는 계정과 비번 입력, @ 서버ip주소와 포트) pmm-admin config --server-insecure-tls --server-url=https://admin:123456@192.168.10.21:4433 |
![]() 서버 웹 대시보드에서 확인하면 모니터링이 2개가 등록됐다. |
| DB내보내기로 연동(질의의 위치에 관련된 내용) pmm-admin add mysql --query-source=perfschema --username=pmm --password=1234 ![]() |
서버 웹 대시보드에서 연동이 된 것을 확인할 수 있다.![]() |
클라이언트머신 2 추가 (10.26)
hostname이 겹칠 때 설정방법
| hostnamectl set-hostname 이름 |
| hostname (확인) |
| reboot |
| 변경됨 |
3. PMM-server머신
머신 한 개(DB서버) 웹서버 역할로 설정
| yum install -y httpd php php-mysql |
| systemctl start httpd |
| 웹서버로 접속 가능한지 확인 |
| yum install -y php php-mysql mysql mariadb-server |
| DB접속 |
| create database member; |
| use member; |
| create table people (id int not null auto_increment, name varchar(10), email varchar(3), num varchar(10), primary key(id)); engin=innoDB default charset=utf8; (이노DB(기본값) 설정 및 캐릭터 셋 설정가능) |
![]() |
![]() |
현재 DB서버에 웹서버가 같이 돌고 있음
| cd /var/www/html |
| vi signup.php (회원가입과 관련된 파일 하나 만들기) |
![]() 여기서 label 이 맞음!!!!!!!!!!!!!!!!!!!!!!! |
![]() |
![]() |
![]() 하지만 지금은 이동이 되지 않는다. 이제 만들기 시작 |
| vi sign_action.php |
![]() |

저장 한 뒤 다시 입력해보면 아래와 같이 DB에도 잘 추가가 된다.
![]() |
![]() |
'정보보안실무 > 데이터베이스' 카테고리의 다른 글
| [MariaDB] 데이터베이스 함수 종류 및 실습 3 (0) | 2023.05.06 |
|---|---|
| [MariaDB] 데이터베이스 함수 종류 및 실습 2 (0) | 2023.05.06 |
| [MariaDB] 데이터베이스 함수 종류 및 실습 1 (0) | 2023.05.06 |
| [MariaDB] 테이블 조회, 정렬과 중복제거 (0) | 2023.05.06 |
| [MariaDB] 사용자 조회, 생성, 권한 부여 (0) | 2023.05.06 |

















