[PMM] PMM Client 실행시 사용되는 동적 포트 변경하기
l Version : PMM 2.X
이번 포스트는 PMM Client의 설정 파일을 수정하여 동적 포트의 범위를 제한하는 방법에 대해서 알아본다.
PMM은 Percona Monitoring and Management의 약자로 PostgreSQL 및 MySQL, MongoDB를 위한 오픈소스 데이터베이스 모니터링 및 관리 솔루션이다. 이를 통해 데이터베이스 시스템의 상태를 관찰하고, 동작의 새로운 패턴을 탐색하고, 문제를 해결하고, 온프레미스나 클라우드 어디에 있든 데이터베이스 관리 작업을 수행할 수 있다. PMM은 데이터베이스와 해당 호스트로부터 수천 개의 기본 성능 지표를 수집한다. 그리고 웹 UI 대시보드를 제공하여 데이터를 시각화 한다. 추가 기능에는 데이터베이스 상태 평가를 위한 조언을 제공하기도 한다. PMM에 대한 자세한 내용은 아래 링크를 참고한다.
l MySQL PMM(Percona Monitoring and Management) 소개 및 설치 : https://sungwookkang.com/entry/MySQL-PMMPercona-Monitoring-and-Management-%EC%86%8C%EA%B0%9C-%EB%B0%8F-%EC%84%A4%EC%B9%98
PMM Client는 PMM Server와 통신을 할 때 다양한 포트를 사용한다. PMM에서 사용되는 네트워크 포트 정보는 아래 공식 문서를 참고한다.
l PMM Network : https://docs.percona.com/percona-monitoring-and-management/setting-up/server/network.html#ports
문서를 살펴보면 PMM Server로의 연결은 443 포트를 사용하지만, PMM Client에서는 동적포트를 사용하여 아웃바운드를 시도한다. 그 이유는 PMM Client Agent가 실행되는 서버에 혹시나 이미 다른 서비스가 해당 포트를 점유해서 사용하고 있을 수 있기 때문에 설정파일에서 지정한 범위에서 랜덤하게 포트를 할당해서 사용한다.
그런데 이와 같이 넓은 범위의 랜덤한 동적포트를 사용하게 되면, 사용자 환경에 따라 아웃바운드까지 제어하는 환경에서는 많은 범위의 포트를 열어야 하기에 보안에 취약해질 수 있다. PMM Client의 설정 파일을 수정하여 동적 포트의 범위를 제한하는 방법에 대해서 알아본다.
PMM Client가 실행되면 파일에 기록된 설정 값을 읽어 사용한다. 파일은 기본적으로 아래와 같은 경로에 위치한다. 여기에서 min, max의 범위를 설정하여 사용할 수 있다.
/usr/local/percona/pmm2/config/pmm-agent.yaml |
PMM Client가 실행될 때, 기본 경로의 pmm-agent.yaml 파일을 사용할 수도 있지만, 사용자가 별도의 설정 파일을 만들어 사용할 수도 있다. 자세한 사용법은 아래 링크를 참고 한다.
l pmm-agent - PMM Client agent : https://docs.percona.com/percona-monitoring-and-management/details/commands/pmm-agent.html#options-and-environment
공식문서를 요약해보면, 커스텀한 설정 파일을 만들고 PMM Client를 실행할 때, paths-base 옵션을 사용하여 커스텀한 설정 파일을 사용하게 한다.
pmm-agent setup --paths-base=/home/user/custom/pmm2 --config-file=pmm-agent-dev.yaml --server-insecure-tls --server-address=127.0.0.1:443 --server-username=admin --server-password=admin |
2023-11-15 / Sungwook Kang / http://sungwookkang.com
MySQL, PMM, Percona, DB Monitoring, PMM Port change, PMM 포트변경,