In case you are using the CLI commands later, you don't have to write
this configuration from scratch in a text editor.
-The [ApiListener] object is used to load the SSL certificates and specify restrictions, e.g.
+The [ApiListener](09-object-types.md#objecttype-apilistener) object is
+used to load the TLS certificates and specify restrictions, e.g.
for accepting configuration commands.
It is also used for the [Icinga 2 REST API](12-icinga2-api.md#icinga2-api) which shares
## Using Multiple Environments <a id="distributed-monitoring-environments"></a>
-In some cases it might be useful to run multiple Icinga instance on the same host. Two potential scenarios include:
+In some cases it can be desired to run multiple Icinga instances on the same host.
+Two potential scenarios include:
-* running different versions of the same monitoring configuration (e.g. production and testing)
-* running disparate sets of checks for entirely unrelated monitoring environments (e.g. infrastructure and applications)
+* Different versions of the same monitoring configuration (e.g. production and testing)
+* Disparate sets of checks for entirely unrelated monitoring environments (e.g. infrastructure and applications)
-Configuration is controlled via constants and attributes of the [ApiListener].
+The configuration is done with global constants and attributes of the
+[ApiListener](09-object-types.md#objecttype-apilistener) object.
Constant | Attribute
---------------|----------
ApiBindHost | bind_host
ApiBindPort | bind_port
-In any case the constant is default value for the attribute, so that a direct configuration in the [ApiListener] object
-has more precedence. The constants have been created to allow the values to be set from the command line on startup.
+In any case the constant is default value for the attribute and the direct configuration in the ApiListener object
+has more precedence. The constants have been added to allow the values being set from the CLI on startup.
-When Icinga establishes a TLS connection to another cluster instance it automatically uses the [SNI extension]
+When Icinga establishes a TLS connection to another cluster instance it automatically uses the [SNI extension](https://en.wikipedia.org/wiki/Server_Name_Indication)
to signal which endpoint it is attempting to connect to. On its own this can already be used to position multiple
Icinga instances behind a load balancer.
I.e., it uses a single externally-visible TCP port (usually 5665) and forwards connections to one or more Icinga
instances which are bound to a local TCP port. It does so by inspecting the environment name that is sent as part of the
SNI extension.
-
-[ApiListener]: 09-object-types.md#objecttype-apilistener
-[SNI Extension]: https://en.wikipedia.org/wiki/Server_Name_Indication