로컬 환경에서 Postgres Docker를 사용한 개인 모니터링

Docker 컨테이너에서 실행 중인 Postgres가 있지만 활성 연결을 모니터링하는 방법을 모릅니다. Percona Monitor는 이 경우에 사용을 고려할 수 있습니다.

PMM 설치



https://docs.percona.com/percona-monitoring-and-management/setting-up/server/docker.html#run-docker-with-volume

포트 80으로 웹 UI에 액세스하려면



로컬에서 포트 443을 사용하지 않으려면(키/인증서/pem 설정이 복잡할 수 있기 때문에) 포트 80을 사용할 수도 있습니다.

docker run --detach --restart always \
--publish 8889:80 \
-v pmm-data:/srv \
--name pmm-server \
percona/pmm-server:2


호스트 컴퓨터의 포트 8889를 컨테이너의 포트 80에 매핑합니다.

PMM에 새 인스턴스 추가



도구에 로그인한 후 모니터링하려는 DB 인스턴스를 추가할 수 있습니다.



그런 다음 pmm-server가 DB의 네트워크에 연결되어 컨테이너 이름으로 인스턴스 DB 호스트에 연결할 수 있는지 확인합니다.

docker network ls


서비스의 DB가 dev_default에서 실행되고 있는 경우 해당 네트워크에 pmm-server를 추가하는 방법은 다음과 같습니다.

docker network connect dev_default pmm-server


pmm-server가 네트워크에 가입한 후 간단히 인스턴스를 설정할 수 있습니다.





그런 다음 서비스 추가를 클릭합니다.

쿼리 분석을 볼 수 있도록 pg_stat_statements를 활성화합니다.



이 문서는 유용합니다: https://gist.github.com/lfittl/1b0671ac07b33521ea35fcd22b0120f5

사용 설정 후 테스트할 쿼리

SELECT /* pmm-agent:pgstatstatements */ "pg_stat_statements"."userid", "pg_stat_statements"."dbid", "pg_stat_statements"."queryid", "pg_stat_statements"."query", "pg_stat_statements"."calls", "pg_stat_statements"."total_time", "pg_stat_statements"."rows", "pg_stat_statements"."shared_blks_hit", "pg_stat_statements"."shared_blks_read", "pg_stat_statements"."shared_blks_dirtied", "pg_stat_statements"."shared_blks_written", "pg_stat_statements"."local_blks_hit", "pg_stat_statements"."local_blks_read", "pg_stat_statements"."local_blks_dirtied", "pg_stat_statements"."local_blks_written", "pg_stat_statements"."temp_blks_read", "pg_stat_statements"."temp_blks_written", "pg_stat_statements"."blk_read_time", "pg_stat_statements"."blk_write_time" FROM "pg_stat_statements" WHERE queryid IS NOT NULL AND query IS NOT NULL;



서비스에서 일부 DB 활동을 연습한 다음 이 메뉴에서 새 모니터링 데이터를 보려면 메뉴를 선택하십시오.



이제 dev-db 호스트를 확인할 때 데이터가 멋져 보입니다.


로컬 환경에서 Postgres로 PMM을 설정하는 작업이 완료되었습니다.

좋은 웹페이지 즐겨찾기