반응형
Couchbase CLI를 이용한 클러스터 구성 방법
클러스터 구성
첫 번째 노드(cb1) 초기화
/opt/couchbase/bin/couchbase-cli cluster-init \
--cluster 192.168.10.101:8091 \
--cluster-username Administrator \
--cluster-password Administrator \
--cluster-port 8091 \
--services data,index,query,fts,eventing,analytics \
--cluster-ramsize 2048 \
--cluster-index-ramsize 512 \
--cluster-eventing-ramsize 256 \
--cluster-analytics-ramsize 1024 \
--cluster-fts-ramsize 256 \
--index-storage-setting default \
--cluster-name "my_cluster"
cb2, cb3 노드를 클러스터에 추가
cb2를 클러스터에 조인
/opt/couchbase/bin/couchbase-cli server-add \
--cluster 192.168.10.101:8091 \
--username Administrator \
--password Administrator \
--server-add 192.168.10.102:8091 \
--server-add-username Administrator \
--server-add-password Administrator \
--services data,index,query,fts
cb3를 클러스터에 조인
/opt/couchbase/bin/couchbase-cli server-add \
--cluster 192.168.10.101:8091 \
--username Administrator \
--password Administrator \
--server-add 192.168.10.103:8091 \
--server-add-username Administrator \
--server-add-password Administrator \
--services data,index,query,fts
클러스터 리밸런싱
모든 노드 추가 후 리밸런싱 실행
/opt/couchbase/bin/couchbase-cli rebalance \
--cluster 192.168.10.101:8091 \
--username Administrator \
--password Administrator \
--no-progress-bar
SUCCESS: Rebalance complete
진행 상황 모니터링
watch -n 2 '/opt/couchbase/bin/couchbase-cli rebalance-status \
--cluster 192.168.10.101:8091 \
--username Administrator \
--password Administrator'
클러스터 설정 최적화
자동 장애 조치 설정
/opt/couchbase/bin/couchbase-cli setting-autofailover \
--cluster 192.168.10.101:8091 \
--username Administrator \
--password Administrator \
--enable-auto-failover 1 \
--auto-failover-timeout 120 \
--enable-failover-on-data-disk-issues 1 \
--failover-data-disk-period 60 \
--can-abort-rebalance 1 \
--max-failovers 3
알림 및 모니터링 설정
알림 활성화
/opt/couchbase/bin/couchbase-cli setting-notification \
--cluster 192.168.10.101:8091 \
--username Administrator \
--password Administrator \
--enable-notifications 1
SUCCESS: Software notification settings updated
Prometheus 메트릭 활성화
for node in cb1 cb2 cb3; do
/opt/couchbase/bin/couchbase-cli node-init \
--cluster 192.168.10.101:8091 \
--username Administrator \
--password Administrator \
--node-init-hostname $node \
--enable-prometheus true \
--prometheus-port 9123
done
샘플 데이터 로드
travel-sample 버킷 생성 및 데이터 로드
/opt/couchbase/bin/couchbase-cli bucket-create \
--cluster 192.168.10.101:8091 \
--username Administrator \
--password Administrator \
--bucket travel-sample \
--bucket-type couchbase \
--bucket-ramsize 512 \
--bucket-replica 1 \
--enable-flush 0 \
--enable-index-replica 1 \
--wait
SUCCESS: Bucket created
728x90
보안 설정
관리자 암호 정책 강화
/opt/couchbase/bin/couchbase-cli setting-security \
--cluster 192.168.10.101:8091 \
--username Administrator \
--password Administrator \
--set \
--disable-http-access 0 \
--tls-min-version tlsv1.2 \
--cipher-suites TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256
감사 로깅 활성화
/opt/couchbase/bin/couchbase-cli setting-audit \
--cluster 192.168.10.101:8091 \
--username Administrator \
--password Administrator \
--set \
--audit-enabled 1 \
--audit-log-path /opt/couchbase/var/lib/couchbase/logs
SUCCESS: Audit settings modified
클러스터 상태 확인 명령어
vim cluster-check.sh
#!/bin/bash
# cluster-check.sh - 모든 노드 상태 확인
CLUSTER="192.168.10.101:8091"
USER="Administrator"
PASS="Administrator"
echo "=== Couchbase 클러스터 상태 확인 ==="
echo "실행 시간: $(date)"
echo ""
# 1. 노드 상태 확인
echo "1. 노드 상태:"
/opt/couchbase/bin/couchbase-cli server-list \
--cluster $CLUSTER \
--username $USER \
--password $PASS
echo ""
# 2. 버킷 상태
echo "2. 버킷 상태:"
/opt/couchbase/bin/couchbase-cli bucket-list \
--cluster $CLUSTER \
--username $USER \
--password $PASS
echo ""
# 3. 클러스터 정보
echo "3. 클러스터 정보:"
/opt/couchbase/bin/couchbase-cli setting-cluster \
--cluster $CLUSTER \
--username $USER \
--password $PASS | grep -E "name|ram|index|fts"
echo ""
# 4. XDCR 복제 상태 (없으면 무시)
echo "4. XDCR 상태:"
/opt/couchbase/bin/couchbase-cli xdcr-replicate \
--cluster $CLUSTER \
--username $USER \
--password $PASS \
--list 2>/dev/null || echo "XDCR 구성되지 않음"
echo ""
# 5. 활성 작업 확인
echo "5. 활성 작업:"
/opt/couchbase/bin/couchbase-cli list-tasks \
--cluster $CLUSTER \
--username $USER \
--password $PASS
chmod +x cluster-check.sh
모니터링 명령어
# 실시간 모니터링
watch -n 5 '/opt/couchbase/bin/couchbase-cli server-list \
--cluster 192.168.10.101:8091 \
--username Administrator \
--password Administrator'
# 디스크 사용량 확인
for node in cb1 cb2 cb3; do
echo "=== $node ==="
ssh $node "df -h /opt/couchbase"
done
# 메모리 사용량 확인
/opt/couchbase/bin/cbstats 192.168.10.101:11210 all | grep -E "mem_used|ep_mem_high_wat"
고성능 백업 및 복구 도구인 cbbackupmgr을 사용하는 방법
백업 저장소(Archive) 설정
백업 데이터 폴더 생성
mkdir -p /data/backup
백업 리포지토리(설정 정보) 생성
- -a: 아카이브 경로
- -r: 리포지토리 이름(예: my_cluster)
/opt/couchbase/bin/cbbackupmgr config --archive /data/backup --repo my_cluster
Backup repository `my_cluster` created successfully in archive `/data/backup`
백업 실행 (Full & Incremental)
설정된 리포지토리를 사용하여 실제 데이터를 백업합니다. 첫 실행 시 전체 데이터를 백업하고, 이후 실행 시 변경된 데이터만 백업합니다.
- -c: 대상 클러스터 주소
- -u/-p: 관리자 계정 정보
/opt/couchbase/bin/cbbackupmgr backup \
--archive /data/backup \
--repo my_cluster \
--cluster couchbase://192.168.0.10 \
--username Administrator \
--password Administrator
백업 스크립트
#!/bin/bash
ARCHIVE_ROOT="/data/backup/couchbase_archive"
REPO_NAME="daily_backup"
BACKUP_EXE="/opt/couchbase/bin/cbbackupmgr"
CLUSTER_URL="couchbase://127.0.0.1"
USERNAME="Administrator"
PASSWORD="Administrator"
LOG_FILE="/data/backup/cb_backup.log"
# 날짜 정의
DATE=$(date +%Y-%m-%d_%H%M%S)
# 1. 아카이브 경로 생성 (최초 1회)
if [ ! -d "$ARCHIVE_ROOT" ]; then
mkdir -p "$ARCHIVE_ROOT"
echo "[$DATE] Created Archive Directory: $ARCHIVE_ROOT" >> $LOG_FILE
fi
echo "--- Backup Started at $DATE ---" >> $LOG_FILE
# 2. 리포지토리 설정 확인 (이미 있으면 에러가 나므로 체크 후 생성)
# config 명령은 해당 경로에 repo가 없을 때만 한 번 해주면 됩니다.
if [ ! -d "$ARCHIVE_ROOT/$REPO_NAME" ]; then
$BACKUP_EXE config --archive "$ARCHIVE_ROOT" --repo "$REPO_NAME" >> $LOG_FILE 2>&1
echo "[$DATE] Initialized New Repository: $REPO_NAME" >> $LOG_FILE
fi
# 3. 실제 백업 수행 (자동으로 증분 백업)
$BACKUP_EXE backup --archive "$ARCHIVE_ROOT" --repo "$REPO_NAME" \
--cluster "$CLUSTER_URL" \
--username "$USERNAME" --password "$PASSWORD" >> $LOG_FILE 2>&1
if [ $? -eq 0 ]; then
echo "[$DATE] Backup Success (Incremental)" >> $LOG_FILE
else
echo "[$DATE] Backup Failed" >> $LOG_FILE
exit 1
fi
chmod +x backup-cluster.sh
데이터 복구(Restore)
기본적인 전체 복구(최신 상태로)
/opt/couchbase/bin/cbbackupmgr restore \
--archive "/data/backup/couchbase_archive" \
--repo "daily_repo" \
--cluster "couchbase://127.0.0.1" \
--username "Administrator" \
--password "Administrator"
특정 시점으로 복구 (Point-in-Time Recovery)
# 먼저 어떤 백업들이 있는지 리스트를 확인합니다.
/opt/couchbase/bin/cbbackupmgr info --archive "/data/backup/couchbase_archive" --repo "daily_repo"
# 특정 백업 지점(예: 2026-01-10T03:00:00)을 지정하여 복구
/opt/couchbase/bin/cbbackupmgr restore \
--archive "/data/backup/couchbase_archive" \
--repo "daily_repo" \
--cluster "couchbase://127.0.0.1" \
--username "Administrator" \
--password "Administrator" \
--start "2026-01-10T03:00:00" \
--end "2026-01-10T03:00:00"
특정 버킷(Bucket)만 골라서 복구
/opt/couchbase/bin/cbbackupmgr restore \
--archive "/data/backup/couchbase_archive" \
--repo "daily_repo" \
--cluster "couchbase://127.0.0.1" \
--username "Administrator" \
--password "Administrator" \
--include-buckets "users,orders" # 여러 개일 경우 쉼표로 구분
728x90
반응형
'리눅스' 카테고리의 다른 글
| 우분투 24.04에서 Couchbase Enterprise Edition 3노드 클러스터 구성 방법 (0) | 2026.01.11 |
|---|---|
| 우분투 24.04에서 Couchbase를 설치하는 방법 (0) | 2026.01.11 |
| 우분투 24.04에서 최신 버전 Elasticsearch와 Kibana를 설치하는 방법 (0) | 2026.01.09 |
| 우분투 24.04에 단일 노드 Elasticsearch와 Kibana를 설치하는 방법 (0) | 2026.01.09 |
| 우분투 22.04에서 DHCP 서버를 구축하는 방법 (0) | 2026.01.05 |