Intro
현재 회사에서 MySQL Orchestrator 로 구성한 관리툴을 잘 사용하고 있다.
UI 의 가장 큰 장점이라고 한다면, 관리자나 사용자가 복잡한 명령어나 결과물을 해석해야 되는 것을 직관적이고 간단하게 표현 및 제공함으로써 이해 및 사용하기 편하다는 것이다.
물론 한정된 기능으로 인해 유연성이 부족한건 사실이지만 평소에 사용하는 것에 대해서는 문제가 없다.
이러한 이유로, Postgresql 관련해서는 Patroni 관리에 대한 부담감은 분명 존재했는데 이것을 Ivory 라는 툴로 어느 정도 해소가 될 것 같다는 생각이 들어 구성을 해봤다.
Git : https://github.com/veegres/ivory
GitHub - veegres/ivory: Ivory is designed to simplify and visualise work with Postgres clusters. It provides patroni management
Ivory is designed to simplify and visualise work with Postgres clusters. It provides patroni management ui and postgres query builder. - veegres/ivory
github.com
구성은 Docker image 로 제공하여 편하게 구성하였으며, UTM ubuntu 로 구성하다 보니, 이슈가 존재했다.
그래서 구성 방법 및 이슈의 내용과 해결방법을 공유하면 다음과 같다.
Ivory 간략한 소개
- Ivory는 PostgreSQL 클러스터를 관리하고 시각화하는 오픈소스 도구
- Patroni 관리 UI 제공, 클러스터 설정 보기/편집, 쿼리 템플릿 실행, bloat 검사 등이 포함
- TypeScript와 Go로 구성
- 최신 릴리스는 v1.3.7이며, 2025년 6월 23일 기준
구성 방법
#구성 환경
root@QEMU-Virtual-Machine:/data# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 25.04
Release: 25.04
Codename: plucky
# Docker 구성
root@QEMU-Virtual-Machine:/data# snap install docker
docker 28.1.1+1 from Canonical✓ installed
root@QEMU-Virtual-Machine:/data# docker --version
Docker version 28.1.1+1, build 068a01e
#GitHub Container Registry 사용 (권장)
root@QEMU-Virtual-Machine:/data# sudo docker run -d \
-p 80:80 \
--restart always \
--name ivory \
ghcr.io/veegres/ivory
#구성 확인
hyungikim@HyunGis-MacBook-Pro ~ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3c1669e5b244 ghcr.io/veegres/ivory "entrypoint.sh" 46 minutes ago Up 18 minutes 0.0.0.0:80->80/tcp, [::]:80->80/tcp ivory
# webpage 접속
http://localhost:80/

내부 구성
- 초기 접속 시 Admin 패스워드 지정

- 그 외 일반적인 설정 진행

- Patroni Cluster 등록을 진행
- http://{Patroni구성서버IP}:8008/ (기본 포트 8008)

- Cluster Auto 구성을 진행하는데, TLS 관련한 에러가 발생하지만 무시해도 첫 구성 화면은 문제가 없음

- 내부 값을 어떻게 가져오는 지 확인되지 않지만, 보는것과 같이 127.0.0.1 내부 아이피가 표현되면서 구성이 진행
- 그럼에도 불구하고 3대의 Patroni 구성이 보여지며, Switch over 등 UI로 진행이 가능

- User 도 등록을 한다면, DML쿼리도 실행 가능하다고 판단


구성간 이슈
- Ivory 설치가 안되는 이슈.
root@QEMU-Virtual-Machine:/data# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
591724825dc1 ghcr.io/veegres/ivory "entrypoint.sh" 9 minutes ago Restarting (126) 33 seconds ago ivory
root@QEMU-Virtual-Machine:/data# docker logs ivory
PRETTY_NAME="Ubuntu 22.04.5 LTS"
/usr/bin/pgcompacttable v1.0.14
/usr/local/bin/entrypoint.sh: line 10: /opt/service/ivory: cannot execute binary file: Exec format error
##원인
> Ivory Docker 이미지는 amd64(x86_64) 전용으로 빌드되어 있음
> QEMU, ARM, 기타 비표준 서버 환경에서는 실행 불가
> Exec format error는 실행 바이너리의 CPU 아키텍처가 호환되지 않을 때 발생
## 해결 방법
> 가상 머신에서 구성하는 것을 포기하고, Mac 에서 직접 Docker 를 구성하여 ivory 구성 진행 (한번에 완료)
> 굳이 안되는 ARM 에서 몇시간씩 시도하지 마시길..(경험담)
- 결국 Ivory 를 Mac docker 로 구성

- Cluster 구성이 잘못되어, Instance 를 모두 지웠더니, 다음과 같이 에러 화면을 보여주면서 어떠한 "Clear" 버튼도 제대로 동작 안되는 이슈
- 해결 방법은 Docker 를 리부팅 하여 처음부터 다시 진행(버그예상)

결론
- 아직 version 1 이라, 검증되지 않은 툴
- 나같은 초보자가 봐도 버그라고 예상되는 부분들이 존재
- 그럼에도 불구하고 심플한 UI 구성으로, 간단한 모니터링에는 좋은 툴이라고 생각.
- 다른 툴에 대해서는 아직 모르기 때문에 더 비교가 필요
출처
- OpenAI
https://www.facebook.com/share/p/1BCWEe755k/
로그인 또는 가입하여 보기
Facebook에서 게시물, 사진 등을 확인하세요.
www.facebook.com
https://news.hada.io/topic?id=22702
Ivory — Postgres / Patroni 클러스터 관리 도구 | GeekNews
Postgres 클러스터 관리와 시각화를 단순화하기 위해 개발된 오픈소스 프로젝트원래는 Postgres를 운영하는 개발자들의 편의를 위해 시작되었지만, 현재는 개발자와 DBA 모두가 클러스터를 관리·문
news.hada.io
'PostgreSQL' 카테고리의 다른 글
| [PostgreSQL] HA - repmgr (이론) (0) | 2025.09.09 |
|---|---|
| [PostgreSQL] Patroni 정리 (1) | 2025.07.16 |
| [PostgreSQL] Patroni 설치 (with etcd) (1) | 2025.07.15 |
| [PostgreSQL] PG16 설치 (Data, Log directory 분리) (2) | 2025.07.14 |
| [wedatalab] Postgresql 명품 강의 (admin) (0) | 2024.06.24 |