구축환경
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 |