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

    2024. 2. 7.

    by. Yo.

    #!/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 으로 적절히 스케쥴링 해주면 끝.

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

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

    댓글