본문 바로가기

DB(SQL)/mysql|maria

[DB] PMM(Percona Monitoring and Management) Server 설정 (feat. 미완성된 글입니다.)

반응형

이 글은 미완성된 글입니다.

아까워서.. 놔두는 글..

아래 링크로 접속해서 확인해주세요

 

pmm2 기준

https://24hours-beginner.tistory.com/499

 

PMM 1 기준 Server 설치 하는 방법

 

Mariadb 모니터링 시스템으로 PMM(Percona Monitoring and Management)을 사용해보고자 한다.

Maria DB를 지원하는건 아니지만 mysql 로 호환이 가능하다고 해서 고고싱

 

percona에서 docs 도 제공해주고 메뉴얼도 다운로드 받을 수 있다..

 

메뉴얼 살짝 봤는데 엄청 설명이 잘되어 있다.

그러나 영포자에 2.41.0 기준으로 516  page라서 2016년도에 작성된 블로그 보고 진행하였다.

영어를 잘한다면 (못해도 메뉴얼이나 docs가 너무 잘되어 있어서 나는 블로그보다는 공식 자료를 보고 하는것을 추천한다!)

 

참고 블로그 https://systemv.tistory.com/53

 

server와 client 를 깔아야한다.

 

예전에는, server를 docker image( https://hub.docker.com/r/percona/pmm-server )로만 제공을 해주었던것 같으나

메뉴얼 확인 결과 요새는 다양하게 제공해주는것 같다.

(docker, podman, helm, virtual appliance, amazon aws)

나는 그나마 익숙한 docker로 진행해 보았다.

 

Docker install

https://docs.docker.com/engine/install/ubuntu/

https://24hours-beginner.tistory.com/461

 

[Docker] Docker installation on Ubuntu 20.04

docs가 너무 잘되어있으니 왠만하면 Docs를 참고합시다. https://docs.docker.com/engine/install/ubuntu/ Install Docker Engine on Ubuntu docs.docker.com 1. sudo apt-get remove docker docker-engine docker.io containerd runc 2. sudo apt-get upd

24hours-beginner.tistory.com

 

PMM Image Pull

docker pull percona/pmm-server

 

> 참고로 docker image OS는 linux이다.

 

 

Docker Container 시작

https://24hours-beginner.tistory.com/498

 

[Docker] Docker run

docker run의 기본 구조 기본 형식: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 이미지 실행의 기본 메커니즘 설명 주요 옵션과 사용 예시 1. -d, --detach 사용했을 때: 컨테이너가 백그라운드에서 실행됩니다.

24hours-beginner.tistory.com

나중에 어떻게 실행시킨지 알 수 없으므로 bash 파일을 만들어서 실행하기로 함

Docker run

percona_pmm-server.sh

# percona_pmm-server.sh
docker create -v /opt/prometheus/data -v /opt/consul-data -v /var/lib/mysql --name pmm-data percona/pmm-server /bin/true
docker run -d -p 8080:80 --volumes-from pmm-data --name pmm-server --restart always percona/pmm-server

만약 80포트를 쓸 수 없다면 -p 8080:80 등 외부 접속 가능한 포트로 변경하여 시작해주면 된다.

-p 외부포트:내부포트

 

script 설명

더보기

1. Docker Create 명령어

sudo docker create -v /opt/prometheus/data -v /opt/consul-data -v /var/lib/mysql --name pmm-data percona/pmm-server /bin/true

 

1. percona/pmm-server 이미지 사용 (percona/pmm-server)

2. pmm-data 이름의 새 Docker 컨테이너를 생성 (docker create / --name pmm-data)

3. 이 컨테이너는 데이터 보존을 목적으로 사용되며, 실제로는 실행되지 않습니다(/bin/true).

4. 여기에는 세 개의 볼륨이 마운트됩니다: (-v /opt/prometheus/data -v /opt/consul-data -v /var/lib/mysql)

  • /opt/prometheus/data: Prometheus 데이터를 저장하기 위한 볼륨.
  • /opt/consul-data: Consul 데이터를 저장하기 위한 볼륨.
  • /var/lib/mysql: MySQL 데이터를 저장하기 위한 볼륨.

2. Docker Run 명령어

sudo docker run -d -p 8080:80 --volumes-from pmm-data --name pmm-server --restart always percona/pmm-server

이 명령어는 percona/pmm-server 이미지를 사용하여 pmm-server라는 이름의 새 Docker 컨테이너를 백그라운드(-d)에서 실행합니다. 이 컨테이너는 다음과 같은 설정을 포함합니다:

  • -p 8080:80: 호스트의 8080 포트를 컨테이너의 80 포트에 매핑합니다. 이렇게 함으로써 외부에서 컨테이너의 웹 서비스에 접근할 수 있습니다.
  • --volumes-from pmm-data: 이전에 생성된 pmm-data 컨테이너로부터 볼륨을 마운트합니다. 이는 데이터의 지속성을 유지하는 데 사용됩니다.
  • --restart always: 컨테이너가 중지되면 자동으로 재시작합니다. 이는 서버의 안정성과 가용성을 보장하기 위한 설정입니다.

종합

이 두 단계는 PMM 서버를 효과적으로 배포하고 관리하기 위한 일반적인 절차입니다. 첫 번째 단계에서는 데이터 보존을 위한 컨테이너를 생성하고, 두 번째 단계에서는 실제 PMM 서버를 실행하면서 이 데이터 컨테이너를 사용합니다. 이렇게 하면 PMM 서버 컨테이너를 다시 시작하거나 업데이트해도 데이터가 유지됩니다.

 

docker create 와 run 이 따로 되어 있는 이유

  1. 데이터 볼륨 컨테이너 생성 (docker create):
    • docker create 명령어는 pmm-data라는 이름의 새 컨테이너를 만들지만, 실행하지는 않습니다 (/bin/true는 컨테이너를 바로 종료시키는 커맨드입니다).
    • 이 컨테이너는 /opt/prometheus/data, /opt/consul-data, /var/lib/mysql 경로에 데이터 볼륨을 마운트합니다.
    • 이 과정의 주 목적은 데이터 저장을 위한 볼륨을 지속적으로 유지하기 위한 것입니다. 즉, pmm-data 컨테이너는 실제로 PMM 서버를 실행하기 위한 것이 아니라, 필요한 데이터를 보관하는데 사용됩니다.
  2. PMM 서버 실행 (docker run):
    • docker run 명령어는 pmm-server라는 이름의 컨테이너를 백그라운드에서 실행하며, 이는 실제 PMM 서버입니다.
    • -p 8080:80 옵션을 통해 호스트의 8080 포트를 컨테이너의 80 포트에 매핑하여 외부에서 PMM 서버에 접근할 수 있게 합니다.
    • --volumes-from pmm-data 옵션은 pmm-server 컨테이너가 pmm-data 컨테이너의 볼륨을 사용하도록 설정합니다. 이를 통해 PMM 서버는 필요한 데이터를 pmm-data 컨테이너에서 직접 사용할 수 있습니다.
    • --restart always 옵션은 PMM 서버 컨테이너가 실패하거나 호스트가 재부팅될 때 자동으로 컨테이너를 재시작하게 합니다.

이러한 접근 방식의 장점은 데이터 저장을 위한 볼륨과 실제 애플리케이션 로직을 분리하여 관리할 수 있다는 것입니다. 이를 통해 PMM 서버 컨테이너를 업데이트하거나 재시작해도 데이터는 pmm-data 컨테이너에 안전하게 유지됩니다.

docker create / run

vim percona_pmm-server.sh
sudo bash percona_pmm-server.sh

 

접속

http://서버주소:아까 설정한 포트

ex) http://localhost:8080

 

참고한 사이트에서는 바로 나오는것 같은데 내가 했을때는 percona 사이트의 로그인 페이지가 나왔다.

이때였다 잘못된걸 느낀게

 

pmm 클라이언트를 설치 안했기 때문에 아무런 데이터가 안나온다

데이터를 받으려면 클라이언트도 설정해주어야한다.

 

반응형