카테고리 없음

Scouter Database 파티션 용량 관리 방법

idea9329 2024. 12. 6. 17:48
반응형

 

Scouter에서 데이터베이스는 모니터링 데이터를 저장하기 위해 사용됩니다. 이 데이터는 지속적으로 쌓이기 때문에 용량 관리가 중요합니다. 특히, 데이터 저장소로 파일 시스템(H2, PostgreSQL 등)을 사용하는 경우, 적절한 파티션 관리 데이터 정리가 필요합니다.


1. 파티션 용량 관리 기본 전략

  1. 데이터 보관 기간 설정
    • 오래된 데이터를 주기적으로 삭제하거나 보관 기간을 설정합니다.
    • scouter.conf 파일에서 데이터 보관 기간을 설정할 수 있습니다.
    # 기본 설정: 데이터 보관 일수
    log_expired_ms=86400000  # 1일(밀리초 단위)
    xlog_expired_days=30     # XLog 데이터 보관 기간 (30일)
    counter_expired_days=30  # Counter 데이터 보관 기간 (30일)
    • 데이터를 필요한 기간만 저장하여 디스크 사용량을 줄입니다.
  2. 파티션 크기 모니터링
    • 사용 중인 데이터베이스 또는 파일 시스템의 디스크 사용량을 주기적으로 모니터링.
    • 디스크 경고 알림을 설정하여 용량 초과를 예방.
  3. 백업 및 아카이브
    • 오래된 데이터를 삭제하기 전에 다른 스토리지로 백업.
    • 예: gzip 압축 후 외부 스토리지로 이동.

2. 파티션 관리 방법

파일 시스템(H2) 사용 시

  1. 데이터 디렉토리 확인
    • Scouter 서버의 ext_dir 경로에 데이터를 저장.
    • 예:
      ext_dir=/path/to/scouter/data
  2. 파티션 디렉토리 관리
    • 파티션별로 저장된 데이터를 확인하고 오래된 데이터를 삭제하거나 이동.
    • 예:
      ls /path/to/scouter/data/xlog/
      여기서 특정 기간의 데이터를 삭제하여 공간 확보:
      rm -rf /path/to/scouter/data/xlog/2023-12-01
  3. 자동 삭제 스크립트 작성
    • 일정 기간 이전 데이터를 자동으로 삭제하는 스크립트를 작성하고 cron으로 실행.
      find /path/to/scouter/data/xlog/ -type d -mtime +30 -exec rm -rf {} \;

PostgreSQL 사용 시

  1. 테이블 파티션 확인
    • Scouter는 PostgreSQL의 테이블에 데이터를 저장합니다. 주로 XLog, Counter와 같은 데이터를 분리하여 저장.
    • 테이블 확인:
      \dt
  2. 파티션 테이블 구성
    • 데이터 크기가 커질 경우, 테이블을 날짜별로 분할(파티셔닝)하여 관리.
      CREATE TABLE xlog_202312 PARTITION OF xlog FOR VALUES FROM ('2023-12-01') TO ('2024-01-01');
  3. 오래된 파티션 삭제
    • 특정 날짜 이전의 데이터를 삭제:
      DROP TABLE xlog_202211;
  4. 자동 정리
    • PostgreSQL의 pg_cron 또는 외부 스크립트를 사용하여 주기적으로 데이터를 정리:
      DELETE FROM xlog WHERE timestamp < now() - interval '30 days';

3. 추가적인 디스크 관리 팁

  1. 압축 사용
    • Scouter에서 데이터 파일을 압축하여 저장하는 옵션을 활성화:
      compress_xlog_enabled=true
      compress_counter_enabled=true
  2. 로그 파일 관리
    • Scouter 서버의 로그 파일(logs/)도 용량을 차지하므로 주기적으로 정리:
      find /path/to/scouter/logs/ -type f -mtime +7 -exec rm -f {} \;
  3. 스토리지 확장
    • 디스크 사용량이 지속적으로 증가하는 경우, 스토리지를 확장하거나 클라우드 스토리지를 사용.
  4. 모니터링 및 알림
    • 디스크 사용량을 Scouter 자체 모니터링 또는 외부 도구로 확인.
    • 예: 디스크 사용량이 80% 이상이면 경고 알림을 받도록 설정.

4. 주기적인 유지 관리 계획

  1. 매일
    • 디스크 사용량 확인.
    • Scouter 로그 파일 확인 및 필요 시 정리.
  2. 매주
    • 데이터베이스 또는 파일 시스템의 공간 사용량 점검.
    • 오래된 데이터를 삭제하거나 백업.
  3. 매월
    • 데이터 보관 설정 검토 및 변경.
    • 스토리지 용량 계획 업데이트.

결론

Scouter에서 파티션 용량 관리를 위해 데이터 보관 기간 설정, 정기적인 데이터 정리, 압축 및 백업 전략을 활용하면 디스크 사용량을 효율적으로 관리할 수 있습니다. 파일 기반(H2)과 데이터베이스(PostgreSQL) 환경에 따라 적절한 방법을 적용하여 데이터 증가로 인한 장애를 예방하세요. cron이나 자동화 스크립트를 활용하면 관리 효율성을 높일 수 있습니다.

반응형