우리는 EB 배포에 대한 로그 마법이 없음을 (아마도 명백한) 결론에 도달했습니다. /var/apps/current/log
을 포함하여 /var/apps/current/
디렉토리를 바꿉니다. 이로써 모든 기존 로그가 삭제됩니다.
따라서 우리의 솔루션은 로그를 별도의 폴더에두고 패치 EB를 사용하여 로그가있는 위치를 확인했습니다. app_log_dir
(/var/app/containerfiles/logs/
)의 production.log
심볼릭 링크를 재정 의하여 우리는 여전히 S3의 순환 및 게시에 대한 EB의 정상적인 절차에 의존합니다.
.ebextensions/로그 rotation.config
files:
"/opt/elasticbeanstalk/hooks/appdeploy/pre/01a_override_log_symlinks.sh":
mode: "000777"
content: |
#!/bin/bash
EB_APP_LOG_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_log_dir)
CUSTOM_APPLOG_DIR=/var/log/applog
mkdir -p $CUSTOM_APPLOG_DIR
chown webapp $CUSTOM_APPLOG_DIR
chmod 777 $CUSTOM_APPLOG_DIR
cd $EB_APP_LOG_DIR
ln -sf $CUSTOM_APPLOG_DIR/production.log production.log
ln -sf $CUSTOM_APPLOG_DIR/development.log development.log
/config/environments/production.rb
...
# Specific for Rails 5!
config.paths['log'] = "/var/log/applog/#{Rails.env}.log"
...
배포 및 업데이트 전략은 무엇인가? 어쩌면 EB는 새 버전으로 새 인스턴스를 만들고 배포가 성공하면 이전 버전으로 이전 인스턴스를 삭제합니다. 배포 및 업데이트 전략은 특정 EB APP> 구성> 업데이트 및 배포를 입력 할 때 확인할 수 있습니다. – nicq
@nicq 우리는 롤링 배포를 사용하고 있습니다. 우리가 해결 한 해결책은 현재 폴더 바깥에 로그를 배치하는 것이 었습니다. 모든 것이 덮어 쓰여졌 기 때문입니다. 나는 아래의 대답을 제출할 것입니다 –