0

Google은 Rails 앱과 함께 Elastic Beanstalk (Ruby 2.3 (Puma)를 실행하는 64 비트 Amazon Linux 2016.09 v2.3.1)을 실행 중입니다.Elastic Beanstalk에서 앱 로그온 배포를 삭제하는 이유

앱 로그는 표준처럼 /var/apps/current/log/production.rb에 기록됩니다. 표준 EB로 구성하면 해당 파일은 /var/apps/containerfiles/logs/으로 심볼릭 링크되고 회전 및 S3로 업로드하는 데 사용됩니다.

어떤 이유로 인해 eb deploy 때마다 production.log이 무시되거나 잘린 것처럼 보입니다. 이는 의도하지 않은 것처럼 보입니다.

무언가를 잘못 구성했는데 어떻게 디버그 하시겠습니까?

+0

배포 및 업데이트 전략은 무엇인가? 어쩌면 EB는 새 버전으로 새 인스턴스를 만들고 배포가 성공하면 이전 버전으로 이전 인스턴스를 삭제합니다. 배포 및 업데이트 전략은 특정 EB APP> 구성> 업데이트 및 배포를 입력 할 때 확인할 수 있습니다. – nicq

+0

@nicq 우리는 롤링 배포를 사용하고 있습니다. 우리가 해결 한 해결책은 현재 폴더 바깥에 로그를 배치하는 것이 었습니다. 모든 것이 덮어 쓰여졌 기 때문입니다. 나는 아래의 대답을 제출할 것입니다 –

답변

2

우리는 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" 
... 
+0

은 극단적 인 777의 허가가 아닌가요? 0664가 더 안전하지 않을까요? – Aqabawe