Technical Architecture Studio

방화벽, 로드벨런스, 데이터관리, 로그규칙(2/2)

Tech Studio 2020. 1. 14. 23:10

#13 데이터관리, 로그규칙

 데이터는 연/월/일 의 기준과 용량으로 구분 할 수 있고, 이 외에 장기, 단기 보관으로 구분 될 수 있다. 한번에 생성될때 파일의 크기가 1GB 가 넘어 조회 시에도 지연이 생기거나 파일의 수량이 많아져 조회에도 지연이 생기는 경우가 생길 수 있다. 용량이 대용량으로 Storage 의 수용량이 넘어갈때 압축을 하거나 증량 혹은 삭제를 하게 되는데 이의 규칙을 정하는것은 매우 중요하다고 할 수 있다. 

 불필요 파일과 로그 그리고 WAS의 GC 대용량 로그등으로 원치 않는 순간에 대용량으로 스토리지를 사용하게 되는 경우가 있다. 도커 혹은 가상 서버 사용시, 이미지가 대량 생산되어 문제가 될 수 도있다. 이로 인해 데이터의 관리가 중요해지는데, 디스크 생성의 기준을 /연/월/일/시 의 기준과 필요시 시/분/초 까지도 구분해야 할 수도있다. 또한 한 디렉토리에 만단위 이상의 수량으로 생성 될 수 있는데 만약 억단위 수량이 생긴다면, 인덱스 하면서 Disk I/O 를 필요이상으로 점유하여, 서비스의 지연과 멈춤이 발생할 수 있다. 

 이 파일들을 관리 하기 위해 주기적으로 삭제, 압축, 이동 혹은 필요한 형태로 가공하여 사용할 수 있고, 대용량 Storage 로 이동하여 사용 할 수 도 있다. 물론 이런 과정은 정해놓은 한계까지 도달하는 시간이 길다면, 수동으로 관리가 될 수도 있으나 crontab등을 이용하여 특정일시에 관리가 되는것이 좋다. 

 이런 관리가 가장 많이 필요로 하는곳은 서비스 로그와 서비스 Access 로그가 대표적일 것이다. 물론 음원이나 미디어 컨텐츠를 스트리밍하는 서비스라면 이 스토리지를 적극적으로 사용하기 위해 파일서버 혹은 Hadoop 등을 이용해 적제하는 방법을 사용하게 될 것이다. 

 서비스에 로그의 사용을 광범위하게 사용하고 장기간 보관해야 하고 일 적제량이 많을때 아래와 같이 정리될 수 있다. 기준은 최소 2년 보관과 원본파일로는 3개월을 보관하고 나머지기간은 압축하여 보관한다. 이때 로그의 적제량은 시간당 1GB 적제 일때이다. 

  로그를 정리하는 스크립트는 경로를 직접 지정하거나, find 명령어로 처리하게 한다. 규칙으로는 생성된지 3달된 파일을 압축하고, 2년된 파일은 삭제하는것으로 한다. 만약 다른 기준을 크기 혹은 특정 파일만 지정할때 로그 이름중 유니크한 이름 ( Ex : access, error .. ) 을 적용하게 한다. 

 find 명령어로 90일 이전생성 파일중 90일이 지난 파일을 압축할때

"find /service_log/ -type f -mtime +90 -name "*.log" -exec gzip {} \; " 

의 명령어등을 스크립트로 작성해 운영하도록 한다.