Skip to main content
Version: 8.1

Automated Agent Installation

The EAM allows an agent Gateway to be automatically configured from text files when the Gateway is started. This capability is enormously useful when installing multiple agent Gateways in your network, as it saves time from manually making this configurations. To automatically configure an agent or controller, you must add two files to the Ignition /data folder before startup: init.properties and eam-install.properties. Example contents are below. After the files have been read, they are renamed to .init.properties.bak and .eam-install.properties.bak. A typical application for this capability would be a script that creates the init files and adds them to an ignition.zip that is distributed to many systems.

For both types of files, settings omitted from the file will use their default values.

note

When using our Docker image, variables defined in docker environment variables will take precedent over the settings listed on this page.

init.properties​

Multiple outgoing Gateway Network connection settings are managed by numbering each setting. The first set of connection settings must contain “0” in the setting name after “gateway.network.” For example, you can create two outgoing connections with different IP addresses like so:

Gateway Network Addresses
gateway.network.0.Host=10.20.11.18
gateway.network.1.Host=10.20.15.23
Property NameDescription
SystemNameSets the Gateway name in Gateway Settings.
AutoDetectLocalSet to true to check the first found network interface to determine local IP address. Set to false to manually set the IP address of the Gateway. Expects true or false.
LocalInterfaceManually sets the IP address of the Gateway. If set, the AutoDetectLocal setting must be set to false.
UseSSLSet to true to force all connecting web browsers to connect to the Gateway over SSL. Expects true or false.
gateway.network.#.PingRateHow often in milliseconds to ping the remote machine.
gateway.network.#.EnabledSet to false to disable the gateway connection after it is created. Expects true or false.
gateway.network.#.HostThe address of the remote machine.
gateway.network.#.PortThe port of the remote machine.
gateway.network.#.EnableSSLSet to true to use SSL to connect to the remote machine. You must change the Port setting to use the Gateway Network SSL port (which defaults to port 8060). Expects true or false.
gateway.network.#.PingTimeoutHow long in milliseconds to wait for a ping request to be processed by the remote machine.
gateway.network.#.PingMaxMissedThe number of failed pings allowed before the connection state is set to Faulted.
gateway.network.#.EnableWebSocketsSet to true to allow faster asynchronous communications with the remote machine. Expects true or false.
gateway.network.#.WebsocketTimeoutHow long to wait in milliseconds for a message to be processed over the web socket.
gateway.network.#.HttpConnectTimeoutHow long to wait in milliseconds to initially connect the http data channel.
gateway.network.#.HttpReadTimeoutHow long to wait in milliseconds to read data from the http data channel.
New in 8.1.32
Configurable Gateway Network general configuration settings are listed below with their default values.
Property NameDescription
gateway.network.enabled=trueSet to false to disable using the Gateway Network.
gateway.network.requiressl=trueDetermines if only connections using SSL to encrypt traffic are allowed. This setting applies to incoming connections.
gateway.network.requireTwoWayAuth=falseEnforces two-way SSL authentication. If true, you will need to install the remote machine's certificate on this machine, in addition to manual approval of this machine's certificate on the remote machine.
gateway.network.sendThreads=5The maximum number of threads that will be used to upload messages. Applies to outgoing connections.
gateway.network.receivethreads=5The maximum number of threads that will be used to download messages. Applies to outgoing connections.
gateway.network.receivemax=100Number of received messages that can be held until they are processed by the local system. When this capacity is exceeded, new messages are rejected and errors are reported to the remote gateway. Applies to incoming connections.
gateway.network.allowincoming=trueIf false, only outward connections defined on this Gateway will be allowed.
gateway.network.securitypolicy=ApprovedOnlyDictates what connections are allowed. By default, incoming connections must be approved from the Incoming Connections page.
gateway.network.whitelist=If connection policy is set to Specified List, this is the comma-separated list of Gateway names which will be allowed to connect.
gateway.network.allowedproxyhops=0The maximum number of proxy hops which could be used to reach the destination Gateway. Any number less than or equal to zero is equivalent to no proxy hops allowed.
gateway.network.websocketSessionIdleTimeout=30000The maximum number of milliseconds that a websocket is allowed to remain idle before it is closed. This value should always be set higher than outgoing connection ping rates to avoid premature connection termination.
gateway.network.incomingPingRate=5000How often, in milliseconds, to send a ping to a remote machine. This will allow an incoming connection's health to be monitored. Set to 0 to disable pings sent from an incoming connection.
gateway.network.incomingPingTimeout=300The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.
gateway.network.incomingPingMaxMissed=12The amount of missed pings that will force an incoming connection to be considered faulted.

Example init.properties​

init.properties
SystemName=Agent1
AutoDetectLocal=false
LocalInterface=10.20.11.17
UseSSL=false
gateway.network.0.PingRate=1000
gateway.network.0.Enabled=true
gateway.network.0.Host=10.20.11.18
gateway.network.0.Port=8088
gateway.network.0.EnableSSL=false
gateway.network.0.PingTimeout=300
gateway.network.0.PingMaxMissed=30
gateway.network.0.EnableWebSockets=true
gateway.network.0.WebsocketTimeout=10000
gateway.network.0.HttpConnectTimeout=10000
gateway.network.0.HttpReadTimeout=60000

eam-install.properties​

Before creating an eam-install.properties file, it's important to understand that each property is prepended by a key that determines the category for the property. The three categories are listed below.

  • agent.: Indicates the property pertains to an agent.
  • controller.: Indicates the property pertains to a controller.
  • setup.: Generic key used for settings that don't uniquely apply to either agents or controller.
Property NameDescription
setup.installSelectionDetermines what the gateway will be configured as. Expects either Agent or Controller.
agent.controllerServerNameSets the name of the gateway in the Gateway Network that will be the controller for this gateway.
agent.sendStatsIntervalThe amount in seconds that the agent will wait before sending new metrics and configuration data to the controller. If there are currently no interesting metrics or updated config data to send, the agent will not send any data.
controller.archivePathWhen controller.archivePath is set to Manual, this property defines the path to use.
controller.archiveLocationDetermines if the archive location should be set manually, or if the system should automatically pick a location. Expects a value of either Manual or Automatic.
controller.lowDiskThresholdMBSets the low disk space threshold property. Excepts an integer value.
controller.dataSourceSpecifies which database connection the controller should use to record agent history. Note: The database specified by this property must first exist on the gateway for this property to do anything. If the specified database does not exist, then the setting will default to "none".

Example Agent Configuration​

eam-install.properties
setup.installSelection=Agent
agent.controllerServerName=Ubuntu-Controller
agent.sendStatsInterval=5

Example Controller Configuration​

eam-install.properties
setup.installSelection=Controller
controller.archivePath=path/to my backups
controller.archiveLocation=Manual
controller.lowDiskThresholdMB=1234
controller.dataSource=MyDB