Deploy OneAgent on AWS Elastic Beanstalk

AWS Elastic Beanstalk is a service provided by Amazon Web Services (AWS) that gives you the option of deploying and auto-scaling applications and services.

As this type of installation depends heavily on user customizations, there isn't any set of steps that will work in all scenarios. The following aims to provide an overview of the entire process, with examples to help you create your own deployment.

Prerequisites

  • Locate the ONEAGENT_INSTALLER_SCRIPT_URL. This information is shared during Dynatrace OneAgent installation.
  • Access to the AWS console

Note: For configurations where OneAgent is already part of your application deployment, you don't have to manually install OneAgent or restart servers to enable service monitoring.

Download OneAgent

Go to Deploy Dynatrace > Start installation and select either Windows or Linux. For more information, see the OneAgent installation instructions for Windows or Linux.

Customize your installation

  • Make sure the configuration files are properly formatted YAML files.
  • Don't use tabs for indentation. Only spaces are allowed.
  • The Elastic Beanstalk extension script file names are important—the Amazon interpreter executes them in alphabetical order.

To install OneAgent, you need two configuration files:

  • One file for downloading the OneAgent installer
  • Another file for invoking the installation and post-installation tasks.
  1. In the Beanstalk deployment package, create a .ebextensions directory. The two configuration files mentioned above must be placed in this directory.

  2. Create a configuration file for downloading the installer named 0dynatraceDownload.config.
    The file must contain a files section that defines:

  • The download path and target file name (for example, /tmp/dynatraceinstall.sh)
  • Proper user rights settings
  • The OneAgent download URL mentioned in the prerequisites.

Example:

  files:
    "/tmp/dynatraceinstall.sh":
      mode: "000755"
      owner: root
      group: root
      source: "https://abc12345.live.dynatrace.com/installer/agent/unix/default/latest?Api-Token=abcdefghijklmnopqrstu&arch=x86&flavor=default"

Note: Make sure to replace the generic values in the example above with your own.

  1. Create a file to execute the OneAgent installer and perform other tasks such as service restart, named 1dynatraceInstallAndPost.config.

In the example below, the script checks for an existing OneAgent setup and, if no OneAgent is found, executes the installation from the /tmp directory, setting the --set-app-log-content-access=true installation parameter to enable Log Monitoring. Then the httpd service is restarted.

commands:
  install_dynatrace:
    cwd: /tmp
    command: "/bin/sh dynatraceinstall.sh --set-app-log-content-access=true"
  restart_httpd:
    command: "service httpd restart"

Note: Starting with OneAgent version 1.185 , we recommend using the --set-app-log-content-access=true parameter instead of APP_LOG_CONTENT_ACCESS=1.

If you want to add more parameters, separate them with spaces. To learn more about installation parameters, see how to customize OneAgent installation on Linux.

  1. Optional Extend your configuration.
    You can also include steps to download OneAgent in your configuration.

The example below includes OneAgent download in the configuration. While this is necessary for the first installation of OneAgent, it might substantially lengthen future application updates because you download OneAgent each time you run the script. To improve your Beanstalk configuration, add a check for an existing OneAgent installation and have your scripts download OneAgent only when it isn't found on the system.

Note: Inspect the following Linux configuration example carefully before creating your own scripts. The Amazon interpreter is sensitive to syntax errors. Take care in formatting and escaping special characters.

files:
  "/tmp/dynatraceinstall.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/bin/bash
      if [ ! -d /opt/dynatrace/oneagent ]; then
        wget -O /tmp/Dynatrace-OneAgent.sh "https://yyyyyyyy.live.dynatrace.com/api/v1/deployment/installer/agent/unix/default/latest?Api-Token=xxxxxxxxxxGw&arch=x86"
        chmod 755 /tmp/Dynatrace-OneAgent.sh
        sudo chown root:root /tmp/Dynatrace-OneAgent.sh
        sudo /tmp/Dynatrace-OneAgent.sh
      fi 

commands:
  install_dynatrace:
    command: /tmp/dynatraceinstall.sh --set-app-log-content-access=true
  restart_nginx:
    command: service nginx restart
    ignoreErrors: true

Optional Configure network zones

To configure network zones, use the following argument: --set-network-zone=<your.network.zone>. See network zones for more information.