Search code examples
javaamazon-web-servicesamazon-elastic-beanstalklogrotateebextensions

AWS Elastic Beanstalk .ebextensions not updating the default configuration


I have a memory disk issue in my Elastic Beanstalk instance due to the log rotation so I am trying to modify the default configuration for log rotation by following the documentation:

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.logging.html

After adding my config and rebuilding the environment, I can see my config (in the path which I specified) when I connect via SSH to my EB. However, it looks like my changes are not applied and logs don't rotate according to my config.

##################################################################
##  Sets up the elastic beanstalk log publication to include
##   the admin logs for cloudwatch logs
##################################################################

Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      "AWS::CloudFormation::Init":
        configSets:
          "_OnInstanceBoot":
            "CmpFn::Insert":
              values:
                - EBCWLLogPublicationSetup
        EBCWLLogPublicationSetup:
          files:
            "/etc/logrotate.elasticbeanstalk.hourly/logrotate.elasticbeanstalk.awslogs.conf":
              content: |
                /var/log/awslogs.log {
                size 2M
                rotate 3
                missingok
                compress
                notifempty
                copytruncate
                dateext
                dateformat %s
                olddir /var/log/rotated
                }
                mode: "000644"

My EB instance contains a Java application (dropwizard, Java 1.8) which is dockerized.

Any idea?


Solution

  • Finally, I could find a different approach which works:

    container_commands:
        01-custom-rotate:
            command: "/bin/sed -i 's/size 10M/size 7M/g' /etc/logrotate.elasticbeanstalk.hourly/logrotate.elasticbeanstalk.awslogs.conf"
    

    Basically it replaces a text in the config file. The EB still needs to be rebuilt to see the changes.