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

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

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

댓글()

PHP CI 로그 레벨별 파일 분리 하는 방법

Progmming/PHP|2023. 1. 19. 11:23
반응형

libraries/Log.php

// 아마도 상단에 이렇게 선언이 되어있을텐데..
protected $_levels = array('ERROR' => '1', 'DEBUG' => '2',  'INFO' => '3', 'ALL' => '4');

// $level 을 추가하면 기존 log연월일.php 가 ERROR-연월일.php로 바뀌게 됨. 에러 레벨별로 로그 분리
$filepath = $this->_log_path.$level.'-'.date('Y-m-d').'.php';

 

 

 

https://cikorea.net/bbs/view/lecture?idx=7113 

 

[게임서버] 로그파일 분리하기

CI 기본은 log-년-월-일.php와 같이 단일파일로 로그가 저장이 됩니다. 단일파일로 로그가 합쳐져 있을경우 분석시간이 많이 걸리기 때문에 분리를 하게 됩니다. (예 : 결제로그를 별도로 분리해서

cikorea.net

 

댓글()