반응형

PostgreSQL HA 구성 중 /etc/hosts 권한 문제로 인한 클러스터 인식 오류
PostgreSQL HA(replication) 환경에서 repmgr을 이용해 이중화를 구성하는 경우, 보안 점검 또는 자동화 스크립트로 인해 /etc/hosts 파일 권한이 600으로 변경되면 노드 간 통신이 차단되어 클러스터 인식이 실패할 수 있습니다.
1️⃣ 문제 증상
repmgr cluster show실행 시 일부 노드가 “unreachable” 또는 “unknown”으로 표시됨- Standby 노드에서
repmgrd서비스가 지속적으로 재시작됨 pg_basebackup또는standby clone과정에서 “host not found” 오류 발생
2️⃣ 원인 분석
/etc/hosts 파일의 권한이 600으로 제한될 경우, PostgreSQL 또는 repmgr 프로세스가 root가 아닌 postgres 사용자로 실행되기 때문에 호스트 이름을 읽지 못하게 됩니다. 그 결과 클러스터의 peer 노드 주소를 확인하지 못하고, 인식이 중단됩니다.
3️⃣ 점검 명령 예시
# 현재 /etc/hosts 권한 확인
ls -l /etc/hosts
# repmgr 클러스터 상태 확인
sudo -u postgres repmgr cluster show
# PostgreSQL 로그에서 연결 실패 확인
sudo tail -n 50 /var/log/postgresql/postgresql-15-main.log
4️⃣ 해결 방법
- /etc/hosts 권한 복원
sudo chmod 644 /etc/hosts sudo chown root:root /etc/hosts - 클러스터 상태 재확인
sudo -u postgres repmgr cluster show - repmgrd 재시작
sudo systemctl restart repmgrd - 클러스터 정상 연결 확인
sudo -u postgres repmgr cluster event
5️⃣ 예방 조치
- 서버 보안 스크립트(예: CIS benchmark) 자동화 시
/etc/hosts권한 변경 예외 설정 ansible,chef,puppet등 자동화 정책에서 exclude rule 적용- 정기적으로
repmgr cluster show결과 모니터링 자동화
📘 참고:
권한이 600으로 유지된 상태에서 repmgr은 호스트 이름 확인 대신 IP를 직접 지정하면 임시 동작은 가능하지만, 클러스터 구성 변경 시 예기치 못한 오류가 발생할 수 있습니다. 따라서 권장 설정은 chmod 644입니다.
반응형
LIST
'경험 공유 > DBMS' 카테고리의 다른 글
| [Oracle] ORA-06512와 함께 발생하는 대표 에러 종합 가이드 (2) | 2025.11.01 |
|---|---|
| [Oracle] Flashback 복구 가이드 및 ORA-38706 오류 조치 (4) | 2025.11.01 |
| [Oracle] OGG-01004 오류 조치 (1) | 2025.10.31 |
| [Oracle] ORA-00020: 최대 프로세스 수 초과 오류 ( 관련 에러 ) (2) | 2025.10.23 |
| [PostgreSQL] JSONB 변환 오류 및 CSV 인코딩 깨짐 해결 (1) | 2025.10.23 |
