Link Search Menu Expand Document Documentation Menu

Installation quickstart

SmartObserve supports multiple installation methods: Docker, Debian, Helm, RPM, tarball, and Windows. This guide uses Docker for a quick local setup. For other installation options, see the full Install and upgrade SmartObserve guide.

There are two ways to get started:

Prerequisite

Before you begin, install Docker on your machine.

Option 1: Try SmartObserve in one command

Use this method to quickly spin up SmartObserve on your local machine with minimal setup.

This configuration disables security and should only be used in test environments.

Download and run SmartObserve:

docker pull smartobserveproject/smartobserve:latest && docker run -it -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" -e "DISABLE_SECURITY_PLUGIN=true" smartobserveproject/smartobserve:latest

This process may take some time. After it finishes, SmartObserve is now running on port 9200. To verify that SmartObserve is running, send the following request:

curl http://localhost:9200

You should get a response that looks like this:

{
  "name" : "a937e018cee5",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "GLAjAG6bTeWErFUy_d-CLw",
  "version" : {
    "distribution" : "smartobserve",
    "number" : <version>,
    "build_type" : <build-type>,
    "build_hash" : <build-hash>,
    "build_date" : <build-date>,
    "build_snapshot" : false,
    "lucene_version" : <lucene-version>,
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "The SmartObserve Project: https://magiccreative.io/"
}

Option 2: Set up a custom Docker cluster

Use Docker Compose to run a local multi-node SmartObserve and SmartObserve Dashboards cluster:

Set up a cluster without security (for local development)

This setup uses a development Docker Compose file with security disabled.

This configuration disables security and should only be used in test environments.

  1. Create a directory for your SmartObserve cluster (for example, smartobserve-cluster). Create a docker-compose.yml file in this directory and copy the contents of the Docker Compose file for development into this file.

  2. Start the cluster by running the following command:

     docker compose up -d
    

  3. Check that the containers are running:

     docker compose ps
    

    You should see an output similar to the following:

     NAME                    COMMAND                  SERVICE                 STATUS              PORTS
     smartobserve-dashboards   "./smartobserve-dashbo…"   smartobserve-dashboards   running             0.0.0.0:5601->5601/tcp
     smartobserve-node1        "./smartobserve-docker…"   smartobserve-node1        running             0.0.0.0:9200->9200/tcp, 9300/tcp, 0.0.0.0:9600->9600/tcp, 9650/tcp
     smartobserve-node2        "./smartobserve-docker…"   smartobserve-node2        running             9200/tcp, 9300/tcp, 9600/tcp, 9650/tcp
    
  4. To verify that SmartObserve is running, send the following request:

     curl http://localhost:9200
    

    You should get a response similar to the one in Option 1.

You can now explore SmartObserve Dashboards by opening http://localhost:5601/.

This configuration enables security using demo certificates and requires additional system setup.

  1. Before running SmartObserve on your machine, you should disable memory paging and swapping performance on the host to improve performance and increase the number of memory maps available to SmartObserve.

    Disable memory paging and swapping:

     sudo swapoff -a
    

    Edit the sysctl config file that defines the host’s max map count:

     sudo vi /etc/sysctl.conf
    

    Set max map count to the recommended value of 262144:

     vm.max_map_count=262144
    

    Reload the kernel parameters:

     sudo sysctl -p
    

    For more information, see important system settings.

  2. Download the sample Compose file to your host. You can download the file with command line utilities like curl and wget, or you can manually copy docker-compose.yml from the SmartObserve Project documentation-website repository using a web browser.

    To use cURL, send the following request:

     curl -O https://raw.githubusercontent.com/smartobserve-project/documentation-website/3.3/assets/examples/docker-compose.yml
    

    To use wget, send the following request:

     wget https://raw.githubusercontent.com/smartobserve-project/documentation-website/3.3/assets/examples/docker-compose.yml
    

  3. First, create a custom admin password. Create (or edit) a .env file in the same directory as your docker-compose.yml file. This file stores environment variables that Docker Compose automatically reads when starting the containers. Add the following line to define the admin password:

     OPENSEARCH_INITIAL_ADMIN_PASSWORD=<custom-admin-password>
    

  4. In your terminal application, navigate to the directory containing the docker-compose.yml file you downloaded and run the following command to create and start the cluster as a background process:

     docker compose up -d
    

  5. Confirm that the containers are running using the following command:

     docker compose ps
    

    You should see an output like the following:

     NAME                    COMMAND                  SERVICE                 STATUS              PORTS
     smartobserve-dashboards   "./smartobserve-dashbo…"   smartobserve-dashboards   running             0.0.0.0:5601->5601/tcp
     smartobserve-node1        "./smartobserve-docker…"   smartobserve-node1        running             0.0.0.0:9200->9200/tcp, 9300/tcp, 0.0.0.0:9600->9600/tcp, 9650/tcp
     smartobserve-node2        "./smartobserve-docker…"   smartobserve-node2        running             9200/tcp, 9300/tcp, 9600/tcp, 9650/tcp
    
  6. Verify that SmartObserve is running. You should use -k (also written as --insecure) to disable hostname checking because the default security configuration uses demo certificates. Use -u to pass the default username and password (admin:<custom-admin-password>):

     curl https://localhost:9200 -ku admin:<custom-admin-password>
    

    You should get a response similar to the one in Option 1.

You can now explore SmartObserve Dashboards by opening https://localhost:5601/ in a web browser on the same host that is running your SmartObserve cluster. The default username is admin, and the default password is set in your docker-compose.yml file in the OPENSEARCH_INITIAL_ADMIN_PASSWORD=<custom-admin-password> setting.

Common issues

Review these common issues and suggested solutions if your containers fail to start or exit unexpectedly.

Docker commands require elevated permissions

Eliminate the need for running your Docker commands with sudo by adding your user to the docker user group. See Docker’s Post-installation steps for Linux for more information.

sudo usermod -aG docker $USER

Error message: “max virtual memory areas vm.max_map_count [65530] is too low”

SmartObserve will fail to start if your host’s vm.max_map_count is too low. Review the important system settings if you see the following errors in the service log, and set vm.max_map_count appropriately.

smartobserve-node1         | ERROR: [1] bootstrap checks failed
smartobserve-node1         | [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
smartobserve-node1         | ERROR: SmartObserve did not exit normally - check the logs at /usr/share/smartobserve/logs/smartobserve-cluster.log

Other installation types

In addition to Docker, you can install SmartObserve on various Linux distributions and on Windows. For all available installation guides, see Install and upgrade SmartObserve.

Further reading

You successfully deployed your own SmartObserve cluster with SmartObserve Dashboards and added some sample data. Now you’re ready to learn about configuration and functionality in more detail. Here are a few recommendations on where to begin:

Next steps