Console Installation

This article contains instructions on how to install the Binalyze AIR console using Docker and it also covers the models of deployment.

Supported Distributions (x64 only)

  • Debian Bookworm 12 (stable)

  • Debian Bullseye 11 (oldstable)

  • Ubuntu Lunar 23.04

  • Ubuntu Kinetic 22.10

  • Ubuntu Jammy 22.04 (LTS)

  • Ubuntu Focal 20.04 (LTS)

  • Red Hat Enterprise Linux 7 on s390x (IBM Z)

  • Red Hat Enterprise Linux 8 on s390x (IBM Z)

  • Red Hat Enterprise Linux 9 on s390x (IBM Z)

  • CentOS 7

  • CentOS 8 (stream)

  • CentOS 9 (stream)

  • Fedora 37

  • Fedora 38

For more detail about Docker installation requirements please visit: https://docs.docker.com/engine/install/

Deployment Models

You can deploy AIR in one of two models:

  • Single Tier Deployment All platform components, such as App, Web, NATS, DB, and Redis, are installed and run on the same machine.

  • 2-Tier Deployment All components except the Database Layer are installed and run on a single instance, while the Database has its own dedicated instance.

Which deployment model to use?

The Single Tier Model is the quickest way of deploying AIR and is typically used for PoCs and testing purposes, while the 2-Tier Model is more suited for deployments of about 25,000+ endpoints.

The 2-Tier Model comes with a dedicated Console Server that can serve more endpoints and moves the Database into an isolated server that increases the database performance. For these larger-scale deployments, our deployment team will work with you to define the optimal setup.

Installation

Before you start

  • Make sure you have updated package repositories of the Operating System you are using. Please find below the commands for CentOS and Ubuntu:

For CentOS:

yum update

For Ubuntu:

apt-get update
  • Start and enable docker service by executing the following command:

systemctl start docker && systemctl enable docker

Single-Tier Deployment

Suitable for PoCs, Demos, and non-mission critical deployments.

This deployment model installs all components into a single machine.

Method 1: Quick Deployment (preferred method)

  1. Run the one-liner below and wait for it to complete

    curl -fsSL https://cdn.binalyze.com/air-deploy/console.sh | sudo -E bash
  2. Proceed with the Finalizing Setup section

Method 2: Manual Deployment (use only when required)

  1. Create a folder for the Binalyze AIR under /opt directory and cd into it

    mkdir /opt/binalyze-air && cd /opt/binalyze-air
  2. Download the docker-compose.yml file and save it

    curl -fsSL "https://cdn.binalyze.com/air-deploy/docker-compose.yml" -o docker-compose.yml
  3. Create the directory for the database volume with defined access:

    install -d -o 1001 -g 1001 ./volumes/mongodb/bitnami/mongodb
    install -d -o 1001 -g 1001 ./volumes/data-master/binalyze-air/{data,log}
    install -d -o 1001 -g 1001 ./volumes/tornado/{data,config}
  4. Create environment variables:

    AIR_POSTGRESQL_PASSWORD=$(head /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 32)
    
    echo "AIR_POSTGRESQL_PASSWORD=$AIR_POSTGRESQL_PASSWORD" >> .env
    echo "AIR_POSTGRESQL_URI=postgresql://air-data:[email protected]:5432/airdb" >> .env
    echo "AIR_NATS_PASSWORD=$(head /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 32)" >> .env
  5. Run the following command to start Binalyze AIR installation in docker:

    docker-compose -p binalyze-air up -d
  6. Wait for the installation to complete. It may take several minutes

  7. Proceed with the Finalizing Setup section

2-Tier Deployment

Suitable for Enterprise Deployments.

This deployment model requires you to deploy the Database Component first (Step 1) and then start the deployment of the Console Server (Step 2) by pointing to the database server's address.

Method 1: Quick Deployment (preferred method)

  1. Run the one-liner below and wait for it to complete (this script will deploy the database component - Step 1)

    curl -fsSL https://cdn.binalyze.com/air-deploy/db.sh | sudo -E bash
  2. Once the database is deployed, the above script will output the commands that need to be executed on the Console Server machine (Step 2)

  3. SSH into the Console Server machine

  4. Run the commands provided by the above script and wait for it to complete

Method 2: Manual Deployment (use only when required)

You should execute the commands below on the Database Server!

  1. SSH into the Database Server

  2. Create a folder for the Binalyze AIR DB under /opt directory and cd into it

    mkdir /opt/binalyze-air-db && cd /opt/binalyze-air-db
  3. Download the docker-compose.yml file and save it

    curl -fsSL "https://cdn.binalyze.com/air-deploy/docker-compose-db.yml" -o docker-compose.yml
  4. Create the directory for the database volume with defined access:

    install -d -o 1001 -g 1001 ./volumes/mongodb/bitnami/mongodb
    install -d -o 1001 -g 1001 ./volumes/data-master/binalyze-air/{data,log}
  5. Create environment variables

    AIR_POSTGRESQL_PASSWORD=$(head /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 32)
    AIR_MONGODB_PASSWORD=$(head /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 32)
    
    echo "AIR_POSTGRESQL_PASSWORD=$AIR_POSTGRESQL_PASSWORD" >> .env
    echo "MONGODB_ROOT_PASSWORD=$AIR_MONGODB_PASSWORD" >> .env
  6. Run the following command to start the Binalyze AIR Database component in Docker:

    docker-compose -p binalyze-air-db up -d
  7. Wait for the installation to complete. It may take several minutes.

  8. Proceed to the installation of Console Server

You should execute the commands below on Console Server!

  1. SSH into Console Server

  2. Create a folder for the Binalyze AIR under /opt directory and cd into it

    mkdir /opt/binalyze-air && cd /opt/binalyze-air
  3. Download the docker-compose.yml file and save it

    curl -fsSL "https://cdn.binalyze.com/air-deploy/docker-compose-without-db.yml" -o docker-compose.yml
  4. Create the directory for the volume of the services with defined access:

    install -d -o 1001 -g 1001 ./volumes/tornado/{data,config}
  5. Set the database URI for connecting the Console Server to the DB IMPORTANT: You must fill in the values ​​of the following three variables. We need the passwords created on the DB server and the DB server IP address. You can find the passwords in the /opt/binalyze-air-db/.env file on the DB Server.

    AIR_POSTGRESQL_PASSWORD=
    AIR_MONGODB_PASSWORD=
    DB_SERVER_IP=
    
    echo "AIR_POSTGRESQL_URI=postgresql://air-data:$AIR_POSTGRESQL_PASSWORD@$DB_SERVER_IP:5432/airdb" >> .env 
    echo "AIR_MONGODB_URI=mongodb://root:$AIR_MONGODB_PASSWORD@$DB_SERVER_IP/airdb?authSource=admin" >> .env
    echo "AIR_NATS_PASSWORD=$(head /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 32)" >> .env
  6. Run the following command to start Binalyze AIR installation in docker

    docker-compose -p binalyze-air up -d
  7. Wait for the installation to complete. It may take several minutes

  8. Proceed with the Finalizing Setup section

Finalizing Setup

Regardless of the deployment model you chose, you will be asked for several configurations at the end of the deployment, such as an organization name, the credentials of the first user account, etc.

Once you have completed the above steps successfully, you should:

  1. Visit http://IP-ADDRESS for accessing the Console (IP address here is the public IP address of the machine you have deployed Binalyze AIR)

  2. Accept EULA and provide the configuration you are asked for in each step

  3. Complete the setup and login using the credentials you have provided

  4. Enjoy Binalyze AIR!

Checking the Health of Docker Containers

To ensure your Binalyze AIR deployment is functioning correctly, regularly checking the status of your Docker containers is crucial. Here’s how you can monitor and manage the health of your containers:

  1. Check Container Status:

    • Run the command sudo docker ps to list all active Docker containers. This command shows the current state of each container, helping you identify any that aren't running as expected.

  2. Recommended Method for Restarting Containers in Binalyze AIR

    • When restarting your Binalyze AIR containers, we recommend using the docker compose restart command instead of the docker compose down/up method.

    • The docker compose restart command allows you to restart all the containers without removing them, ensuring that important logs and state information are retained. This is crucial for effective troubleshooting, as it helps preserve valuable data that could provide insights into potential issues.

    • Additionally, the docker compose restart command is a faster and less disruptive option compared to using docker compose down/up. The down/up approach can result in data loss from container recreation, whereas docker compose restart avoids this by maintaining the containers' state.

    • By using the docker compose restart command, you help ensure logs remain intact, which can assist in resolving issues more efficiently.

Importance of Regular Checks

Regular monitoring and proactive management of your Docker containers help maintain the stability and reliability of your Binalyze AIR deployment. By keeping an eye on the container statuses and knowing how to quickly restart services, you can ensure continuous operational performance.

Last updated