[AWS] EC2 아파치 로그를 S3 버킷으로 업로드 후 삭제 , 로그 관리 하는 방법

Cloud Server|2024. 2. 7. 19:05
반응형
#!/bin/bash

# AWS 자격 증명 설정
export AWS_ACCESS_KEY_ID="xxxxxxxxxxxxxx"
export AWS_SECRET_ACCESS_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export AWS_DEFAULT_REGION="xxxxxxxxxxx"

# 로그 파일 경로 및 S3 경로 설정
LOG_PATH="/var/log/httpd/"
S3_BUCKET="버킷명"
S3_PREFIX="logs/$(date -d 'yesterday' +'%Y/%m')/"  

# 어제의 로그 파일을 S3로 이동
aws s3 cp "${LOG_PATH}access_log-$(date -d 'yesterday' +'%Y%m%d')" "s3://${S3_BUCKET}/${S3_PREFIX}"
aws s3 cp "${LOG_PATH}error_log-$(date -d 'yesterday' +'%Y%m%d')" "s3://${S3_BUCKET}/${S3_PREFIX}"
aws s3 cp "${LOG_PATH}ssl_access_log-$(date -d 'yesterday' +'%Y%m%d')" "s3://${S3_BUCKET}/${S3_PREFIX}"
aws s3 cp "${LOG_PATH}ssl_error_log-$(date -d 'yesterday' +'%Y%m%d')" "s3://${S3_BUCKET}/${S3_PREFIX}"
aws s3 cp "${LOG_PATH}ssl_request_log-$(date -d 'yesterday' +'%Y%m%d')" "s3://${S3_BUCKET}/${S3_PREFIX}"

# 로그 파일 삭제 (선택 사항)
rm "${LOG_PATH}access_log-$(date -d 'yesterday' +'%Y%m%d')"
rm "${LOG_PATH}error_log-$(date -d 'yesterday' +'%Y%m%d')"
rm "${LOG_PATH}ssl_access_log-$(date -d 'yesterday' +'%Y%m%d')"
rm "${LOG_PATH}ssl_error_log-$(date -d 'yesterday' +'%Y%m%d')"
rm "${LOG_PATH}ssl_request_log-$(date -d 'yesterday' +'%Y%m%d')"

 

 

위 스크립트를 cron 으로 적절히 스케쥴링 해주면 끝.

로그 경로 및 로그파일 패턴에 대해서는 적절히 변경이 필요하며 삭제에 대해서는 선택사항임.

스크립트는 글쓴이 상황에 맞게 작성된 것이며 검증 후 사용하시길 바랍니다.

댓글()