반응형
Scouter에서 데이터베이스는 모니터링 데이터를 저장하기 위해 사용됩니다. 이 데이터는 지속적으로 쌓이기 때문에 용량 관리가 중요합니다. 특히, 데이터 저장소로 파일 시스템(H2, PostgreSQL 등)을 사용하는 경우, 적절한 파티션 관리와 데이터 정리가 필요합니다.
1. 파티션 용량 관리 기본 전략
- 데이터 보관 기간 설정
- 오래된 데이터를 주기적으로 삭제하거나 보관 기간을 설정합니다.
- scouter.conf 파일에서 데이터 보관 기간을 설정할 수 있습니다.
# 기본 설정: 데이터 보관 일수 log_expired_ms=86400000 # 1일(밀리초 단위) xlog_expired_days=30 # XLog 데이터 보관 기간 (30일) counter_expired_days=30 # Counter 데이터 보관 기간 (30일)
- 데이터를 필요한 기간만 저장하여 디스크 사용량을 줄입니다.
- 파티션 크기 모니터링
- 사용 중인 데이터베이스 또는 파일 시스템의 디스크 사용량을 주기적으로 모니터링.
- 디스크 경고 알림을 설정하여 용량 초과를 예방.
- 백업 및 아카이브
- 오래된 데이터를 삭제하기 전에 다른 스토리지로 백업.
- 예: gzip 압축 후 외부 스토리지로 이동.
2. 파티션 관리 방법
파일 시스템(H2) 사용 시
- 데이터 디렉토리 확인
- Scouter 서버의 ext_dir 경로에 데이터를 저장.
- 예:
ext_dir=/path/to/scouter/data
- 파티션 디렉토리 관리
- 파티션별로 저장된 데이터를 확인하고 오래된 데이터를 삭제하거나 이동.
- 예:
여기서 특정 기간의 데이터를 삭제하여 공간 확보:ls /path/to/scouter/data/xlog/
rm -rf /path/to/scouter/data/xlog/2023-12-01
- 자동 삭제 스크립트 작성
- 일정 기간 이전 데이터를 자동으로 삭제하는 스크립트를 작성하고 cron으로 실행.
find /path/to/scouter/data/xlog/ -type d -mtime +30 -exec rm -rf {} \;
- 일정 기간 이전 데이터를 자동으로 삭제하는 스크립트를 작성하고 cron으로 실행.
PostgreSQL 사용 시
- 테이블 파티션 확인
- Scouter는 PostgreSQL의 테이블에 데이터를 저장합니다. 주로 XLog, Counter와 같은 데이터를 분리하여 저장.
- 테이블 확인:
\dt
- 파티션 테이블 구성
- 데이터 크기가 커질 경우, 테이블을 날짜별로 분할(파티셔닝)하여 관리.
CREATE TABLE xlog_202312 PARTITION OF xlog FOR VALUES FROM ('2023-12-01') TO ('2024-01-01');
- 데이터 크기가 커질 경우, 테이블을 날짜별로 분할(파티셔닝)하여 관리.
- 오래된 파티션 삭제
- 특정 날짜 이전의 데이터를 삭제:
DROP TABLE xlog_202211;
- 특정 날짜 이전의 데이터를 삭제:
- 자동 정리
- PostgreSQL의 pg_cron 또는 외부 스크립트를 사용하여 주기적으로 데이터를 정리:
DELETE FROM xlog WHERE timestamp < now() - interval '30 days';
- PostgreSQL의 pg_cron 또는 외부 스크립트를 사용하여 주기적으로 데이터를 정리:
3. 추가적인 디스크 관리 팁
- 압축 사용
- Scouter에서 데이터 파일을 압축하여 저장하는 옵션을 활성화:
compress_xlog_enabled=true compress_counter_enabled=true
- Scouter에서 데이터 파일을 압축하여 저장하는 옵션을 활성화:
- 로그 파일 관리
- Scouter 서버의 로그 파일(logs/)도 용량을 차지하므로 주기적으로 정리:
find /path/to/scouter/logs/ -type f -mtime +7 -exec rm -f {} \;
- Scouter 서버의 로그 파일(logs/)도 용량을 차지하므로 주기적으로 정리:
- 스토리지 확장
- 디스크 사용량이 지속적으로 증가하는 경우, 스토리지를 확장하거나 클라우드 스토리지를 사용.
- 모니터링 및 알림
- 디스크 사용량을 Scouter 자체 모니터링 또는 외부 도구로 확인.
- 예: 디스크 사용량이 80% 이상이면 경고 알림을 받도록 설정.
4. 주기적인 유지 관리 계획
- 매일
- 디스크 사용량 확인.
- Scouter 로그 파일 확인 및 필요 시 정리.
- 매주
- 데이터베이스 또는 파일 시스템의 공간 사용량 점검.
- 오래된 데이터를 삭제하거나 백업.
- 매월
- 데이터 보관 설정 검토 및 변경.
- 스토리지 용량 계획 업데이트.
결론
Scouter에서 파티션 용량 관리를 위해 데이터 보관 기간 설정, 정기적인 데이터 정리, 압축 및 백업 전략을 활용하면 디스크 사용량을 효율적으로 관리할 수 있습니다. 파일 기반(H2)과 데이터베이스(PostgreSQL) 환경에 따라 적절한 방법을 적용하여 데이터 증가로 인한 장애를 예방하세요. cron이나 자동화 스크립트를 활용하면 관리 효율성을 높일 수 있습니다.
반응형