Installing and configuring Zato components


Thoroughly familiarize yourself with the high-level overview and the technical one as well with Zato’s architecture, OS-level and application users and the attack surface before you start to install and configure Zato components.

It’s also highly recommeded that you go through the tutorial first.


  • Each Zato environment is comprised of one or more clusters
  • Clusters store their configuration in an SQL ODB
  • Each cluster has a load-balancer
  • A web admin console is needed to manage a cluster however a single web admin instance can be used to administer more than one cluster
  • Each cluster has zero or more servers
  • Incoming and outgoing connections are handled by servers and certain types of protocols - AMQP, JMS WebSphere MQ and ZeroMQ - require separate connector processes to handle the traffic. The connectors are started and managed automatically, they don’t need manual configuration.


Cluster is a logical being - its mere physical manifestation is that it has its own configuration in the ODB. However, servers, web-admin, load-balancer, connectors are all components that actually start operating system-level processes, write out log entries and otherwise behave like objects that need to be administered.

Creating a new environment

To set up a completely new Zato environment you need to:

  • Make sure Redis 2.8.4+ is installed and configured to allow access for Zato

  • Ensure an SQL database is installed and a schema/username for Zato is created. Supported databases are:

    • PostgreSQL 9.x
    • Oracle 11.2.x
    • MySQL 5.5+
    • SQLite 3.x+
  • Create a new cluster by:

    • Using a a quickstart cluster

    • Manually creating each of the components needed:

      • SQL ODB
      • Cluster’s config
      • Web admin
      • Load-balancer
      • Servers

      SQL ODB and a cluster’s config need to be created first and in that order, the rest can be installed in any order.

Config files are versioned

A history of changes to any config file is automatically kept in a given component’s Bazaar repository, i.e. in the ./config/repo directory.

This allows one to compare different config versions or to revert to a safe state after a mix-up.

The repository is created and managed completely behind the scenes and needs no manual management however it’s worth pointing out that it contains the whole history of a given config file, possibly including any old secrets, such as passwords.

user@dev1:~/zato/server/config/repo$ bzr log
revno: 2
committer: user@dev1
branch nick: repo
timestamp: Fri 2013-05-03 12:53:40 +0200
  Committed modified files
revno: 1
committer: user@dev1
branch nick: repo
timestamp: Fri 2013-05-03 12:52:27 +0200
  Added new unversioned files
user@dev1:~/zato/server/config/repo$ bzr diff -r1..2
=== modified file 'server.conf'
--- server.conf       2013-05-03 10:52:27 +0000
+++ server.conf       2013-05-03 10:53:40 +0000
@@ -1,7 +1,7 @@
user@dev1:~/zato/server/config/repo$ bzr revert -r 1
 M  server.conf
user@dev1:~/zato/server/config/repo$ cat server.conf | grep gunicorn_workers

Read more

Subsequent chapters present information on how to install each of the Zato components along with a discussion on their config files.

Component Install chapter Configure chapter
Web admin How to install How to configure
Server How to install How to configure
Cluster's config How to install Documented along with other web admin features
Quickstart cluster A quickstart cluster is a shortcut way to create a working Zato environment as described here Not applicable
Load-balancer How to install How to configure
SQL ODB How to install Not applicable - once created, the ODB needs no configuration
Redis broker The Redis project provides information on how to install the software Not applicable
CA How to install Not applicable - the CA should be used only for development clusters, it's recommeded you don't reconfigure it