SAYMON in Docker

Package content

The package contains 4 files:

  • saymon-docker-compose-source.yml | YAML file with SAYMON-cluster configuration;

  • .env-source | file with environment variables for containers of SAYMON-cluster. It contains the actual port numbers for the cluster components and some other information, which is needed for the nodes configuration;

  • start-saymon-cluster.sh | BASH-script, which downloads docker-images, configures nodes and starts SAYMON-cluster;

  • README.md | a README file with instructions.

Cluster content

The package is provided with the docker-cluster, which contains SAYMON and makes available to start SAYMON on a single host.

SAYMON-cluster consists of 10 containers:

  • Saymon-server | core SAYMON platform’s component;

  • Saymon-client | web-based user interface for SAYMON platform;

  • Saymon-agent | software monitoring agents for SAYMON platform;

  • Saymon-extensions | extensions which provide additional functionality or custom UI to SAYMON installation;

  • Redis | in-memory key–value database, using as a cache;

  • MongoDB | document-oriented NoSQL database;

  • OpenTSDB | distributed and scalable time series database;

  • Kafka | distributed publish-subscribe messaging system;

  • Mosquitto | message broker for MQTT;

  • Zookeeper | service for maintaining configuration information.

Installation requirements

  • Docker version 20.10.0 or higher.

  • Docker-compose version 1.27.0 or higher.

  • Current user must be included into the groups sudo and docker.

Starting the system on a local host

In order to start the system it is necessary to:

  1. Unpack files from the package to the separate directory.

  2. Check variables in the .env-source file contain needed port numbers.

  3. Run the BASH-script start-saymon-cluster.sh. Script parameters:

    • -h | show this instruction;

    • -v | verbose mode: start saymon-cluster in foreground and show log on the screen (by default silent mode in background);

    • -s | stop saymon-cluster in background.

The script:

  1. Checks hardware and software environments for requirements compliance.

  2. Copies the saymon-docker-compose-source.yml file to the saymon-docker-compose.yml and the .env-source file to the .env.

  3. Takes the current user’s name as the suffix for the nodes names and makes proper substitutions in the saymon-docker-compose.yml" and the .env files "on fly".

  4. Downloads all the docker-images from the repository and starts the docker-compose cluster.

Known errors while starting and ways of solving

Default ports NN,NN,NN…​ are occupied

To solve this error:

  • find these ports in the configuration file .env_source and mark them as a comment;

  • uncomment proper alternative ports.

ERROR: Pool overlaps with other one on this address space

To solve this error:

  • find in the configuration file .env_source environment variable SAYMON_NETWORK_RANGE and mark it as a comment.

  • uncomment proper alternative network range.