PDF

Modules

The DCM System consists of several subcomponents, which are explained in more detail further on. Every component runs as a separate systemd service with an own config file and a separate logging file. All of these modules are configured either via the webinterface or the configurator and usually do not need any inference. All TUXGUARD DCM configuration files are located under the envs folder. The remaining external configuration files are located under the config folder.

TUXGUARD DCM Modules

Manager

The Manager module is the core component of the DCM system and is responsible for building the bridge between database, Management API and GUI.

Config

manager.env

Option Type Description
DEBUG Boolean logs additional debug information when enabled
DATABASE_URL String contains all information about the database, is in the form: postgres://ecm:tuxguard@localhost:5432/manager_db.
SECRET_KEY String differs for all installations and provides an additional security layer
ALLOWED_HOSTS List[String] a list of host URLs and/or IPs under which the Manager API and GUI will be accessible
LOGDIR String directory, in which logs will be saved
STATIC_ROOT String directory, in which static files will be stored
REDIS_HOST String Redis host
REDIS_PORT String Redis port
REDIS_USER String Redis username
REDIS_PASS String Redis password
RABBIT_VHOST String RabbitMQ virtual host
RABBIT_PORT String RabbitMQ port
RABBIT_USER String RabbitMQ username
RABBIT_PASS String RabbitMQ password
TG_LIC_WORKER String TUXGUARD WORKER which communicates with the DCM
SSL Boolean whether the connection to the TUXGUARD WORKER should use ssl or not
COMMAND_STORAGE_DURATION Integer how long commands should be stored inside the database, in days
COMMAND_CLEANUP_TRIGGER String in crontab notation, at which time the commands should be cleaned up
DOWNLOAD_FOLDER String folder serving the downloadable files
updatebasedir String under which folder endpoint update files will be served
bundlebasedir String under which folder endpoint bundles will be served
logsrclist List[String] additional log files which are considered for download

Heartbeat API

The Heartbeat API is the communication entrypoint for all endpoints. Here commands, their responses and some general informations about an endpoint's health are exchanged.

Config

hb-api.env

Option Type Description
DEBUG Boolean logs additional debug information when enabled
LOGFILE String the logfile
SECRET_KEY String differs for all installations and provides an additional security layer
RABBIT_VHOST String RabbitMQ virtual host
RABBIT_PORT String RabbitMQ port
RABBIT_USER String RabbitMQ username
RABBIT_PASS String RabbitMQ password

Heartbeat Exchange

The Heartbeat Exchange is master-worker architecture which handles the messaging workload inside the DCM.

Config

hb-exchange.env

Option Type Description
DEBUG Boolean logs additional debug information when enabled
LOGFILE String the logfile
SECRET_KEY String differs for all DCM installation and provides an additional security layer
RABBIT_VHOST String RabbitMQ virtual host
RABBIT_PORT String RabbitMQ port
RABBIT_USER String RabbitMQ username
RABBIT_PASS String RabbitMQ password
POSTGRES_HOST String PostgreSQL host
POSTGRES_PORT String PostgreSQL port
POSTGRES_USER String PostgreSQL username
POSTGRES_PASS String PostgreSQL password
COMMAND_WORKERS Integer amount of workers responsible for command messages
HEARTBEAT_WORKERS Integer amount of workers responsible for heartbeat messages

Alert Manager

The Alert Manager gathers information on the server status and might detect any faults for which then alerts might be created and be pushed to the manager.

Config

alert-manager.env

Option Type Description
DEBUG Boolean logs additional debug information when enabled
LOGFILE String the logfile
LOG_INTERVAL String the logfile
LOG_DIR String log directory containing all other logs
POSTGRES_HOST String PostgreSQL host
POSTGRES_PORT String PostgreSQL port
POSTGRES_USER String PostgreSQL username
POSTGRES_PASS String PostgreSQL password
REDIS_HOST String Redis host
REDIS_PORT String Redis port
REDIS_USER String Redis username
REDIS_PASS String Redis password

License Proxy

The License Proxy transfers any incoming license related request to the Tuxguard license server. The response is then pushed forward to the manager service, which will act accordingly.

Config

lic-proxy.env

Option Type Description
DEBUG Boolean logs additional debug information when enabled
LOGFILE String the logfile
RABBIT_VHOST String RabbitMQ virtual host
RABBIT_PORT String RabbitMQ port
RABBIT_USER String RabbitMQ username
RABBIT_PASS String RabbitMQ password
NUM_WORKERS Integer amount of worker subprocesses
SSL Boolean whether the connection to the TUXGUARD WORKER should use ssl or not
TG_LIC_WORKER String TUXGUARD WORKER which communicates with the DCM

License API

The License API is the second entrypoint for all endpoints. This API deals with all license related requests.

Config

lic-api.env

Option Type Description
DEBUG Boolean logs additional debug information when enabled
LOGFILE String the logfile
SECRET_KEY String differs for all installations and provides an additional security layer
RMQ_HOST String RabbitMQ host
RMQ_VHOST String RabbitMQ virtual host
RMQ_PORT String RabbitMQ port
RMQ_USER String RabbitMQ username
RMQ_PASS String RabbitMQ password

Extern

Redis

Redis is a cache based database, see https://redis.io/.

RabbitMQ

RabbitMQ is a queueing message broker, see https://www.rabbitmq.com/.

Postgres

Postgres is an open source, object-relational database, see https://www.postgresql.org/

NginX

NginX is a web server, which can be utilized as load balancer, see https://www.nginx.com/