Skip to content

Fleet Management ​

Last updated

Fleet (admin section of the sidebar, /admin/fleet) lets one appliance look after several others. One appliance is the hub; paired appliances that choose it are its agents. From the hub you see every agent's health, keep backups of them, send them software updates, and push configuration to them.

Fleet runs entirely over the Mesh link between paired appliances (see Paired Appliances (Mesh)): the pairing is the trust, and the link is the connection. So Mesh Networking must be on (Settings → Feature Toggles) on the hub and on every agent, and each agent must be paired with the hub. The page appears once Mesh Networking is on. Admin only. There is nothing to license separately.

Roles ​

At the top of the page, choose this appliance's role and click Save:

RoleWhat it does
OffNot part of a fleet. The default.
HubAsks every paired appliance for its health and shows the agents, backups, updates, configuration push and activity panels.
AgentReports to the paired appliance chosen under Hub, and accepts only what is allowed below it.

When an agent is saved, it tells its hub straight away. If the hub is not set to Hub yet, the page says so (Saved, but the hub did not confirm: …); it enrolls by itself once the hub is a hub.

What an agent allows ​

An agent answers only the hub its admin chose, over the link that hub authenticated with its node key. The hub can always see the agent's health. Everything else starts off and is turned on separately, on the agent:

  • Accept backup requests from the hub: the hub may take a full backup of this appliance and keep it.
  • Accept software updates from the hub: the hub may send a release (verified here exactly as the Software update page would), install it and roll it back.
  • Accept configuration pushes from the hub: the hub may import dashboards, scripts, alarm rules and other configuration.

Fleet settings are not part of a configuration export, so a push from the hub can never change what the agent allows. Switching the role away from Agent turns all three off.

Every remote action is recorded in the audit log of both appliances (see Audit Log): on the hub as fleet_backup, fleet_update_send, fleet_update_install, fleet_update_rollback, fleet_update_rollout, fleet_config_push and so on, under the admin who did it; on the agent as fleet_backup_sent, software_update_staged, software_update_apply, software_update_rollback or import, naming the hub.

Agents (hub) ​

One row per paired appliance:

  • Appliance: its name, whether the link is connected, and when it last reported. A paired appliance that has not chosen this hub shows why (… is not an agent of …); one on an older version shows Runs a version without fleet management.
  • Version and Uptime (of the Scada.Ink service).
  • System: CPU, memory and disk use, and the CPU temperature where the board has a sensor. These are the agent's own _STATUS/System/ tags, sampled every 10 seconds there.
  • Devices: how many of its enabled devices are connected (paired appliances and Local Tags not counted).
  • Alarms: its own active alarms and how many are unacknowledged.
  • Backups: the newest backup of it kept on this hub, and its own scheduled backup's last run.
  • Software: a running install or rollback, a staged version, and the last result.

The hub asks every agent for its health every 20 seconds; Refresh asks now. An offline agent keeps its last report.

Actions, each greyed out unless the agent is connected, enrolled and allows it:

  • Back up to this hub (archive icon): the agent takes a backup, the hub copies it and keeps it.
  • Send this version (paper-plane icon, with a version list): sends a release the hub holds for that appliance; the agent verifies it and keeps it staged.
  • Install <version>: once a version is staged, installs it with the agent's own updater.
  • Roll back (arrow icon): returns the agent to its previous version.

One action runs per agent at a time; another is refused until it finishes.

Backups (hub) ​

Backups on this hub lists the backups kept, newest first, with Download and Delete. Under the hub's role settings, Backups kept per agent (1 to 365, default 7) sets how many are kept; after each new backup the oldest beyond that number are deleted. Back up every agent daily at pulls a backup from every enrolled agent that accepts backups, once a day at that local time; an agent offline at that moment is listed as failed in Activity.

A backup is the same kind of file as the agent's own Export Backup (see Backup and Restore): one SQLite file with both databases and the files kept beside them. To restore one, download it from the hub and import it on that appliance with Import Backup. Backups kept on the hub are files in the fleet/backups/ folder beside the hub's database; they are not inside the hub's own backups.

Software updates (hub) ​

An appliance installs only a release downloaded for its own hardware ID (see Software updates). So, in Scada.Ink Cloud, download the release once for each agent, and upload every file with Upload .siupdate files. The hub keeps the release once, plus one authorization per appliance; each row shows which agents it can go to. A file without an authorization, or one whose signatures do not check out, is refused.

Send puts that agent's copy (the release plus its own authorization, byte for byte as the cloud issued it) on the agent, which runs every check its own Software update page runs and keeps it staged. Install starts the agent's updater, which swaps the release in, restarts, checks that the new version comes up and rolls back by itself if it does not. The hub follows the agent until it reports the outcome (up to 15 minutes) and records it in Activity.

Roll out sends one release to several agents, one at a time:

ModeWhat happens
Send and stage onlyEach agent verifies and stages it; install later from each row.
Send and install, one at a timeEach agent installs and the hub waits for it to come back on the new version before the next one. The rollout stops at the first failure, so one bad release never reaches every agent.

Software updates need an installed appliance (Linux, production service); an agent where they are not available says so in its row and refuses.

Configuration push (hub) ​

Sends configuration from the hub to agents, the way a selective export and import would (see Selective export):

  1. What to send: tick entity types from this hub (dashboards, scripts, alarm rules and so on; their dependencies come along). Leave out passwords and secrets is on by default. Or click Or send an export file instead and choose a partial-export JSON file.
  2. Send to: tick the agents. Agents that do not accept configuration pushes cannot be ticked.
  3. Existing items: Keep (skip what already exists there) or Overwrite.
  4. Preview on agents: each agent reports what it would add and what already exists, without changing anything.
  5. Apply on <n> agents: applies exactly the previewed file on the agents whose preview succeeded, and shows each one's result.

Change anything above and the preview is cleared; a preview is good for 30 minutes.

Activity (hub) ​

Every remote action, with its agent, who started it (or Daily schedule), its status (Running, Done, Failed) and the result or error. An action still running when the hub restarts is marked failed.

How large files travel ​

Backups, update packages and configuration bundles are never sent in one piece. The side that has the file offers it to that one appliance, and the other side fetches it in 128 KB pieces over the existing Mesh link, then checks the whole file's checksum before using it. A link that drops mid-way fails the action cleanly; nothing half-received is used. Each Mesh message stays under its 256 KB limit.

Troubleshooting ​

MessageCauseFix
… is not an agent of …That appliance's role is not Agent, or it chose another hubOn that appliance, open Fleet, choose Agent and this hub
… does not allow this. An admin on … can turn on "…"The matching accept switch is off on the agentTurn it on there
… is not a fleet hub.The chosen hub's role is not HubSet it to Hub there
… runs a version without fleet management. Update it first.The paired appliance is on an older versionUpdate it
"…" is not connected.The Mesh link is downCheck the agent on the Mesh page
This hub has no authorization of version … for that applianceNo file downloaded for that agent's hardware ID was uploadedDownload the release for it from Scada.Ink Cloud and upload it
Software updates are not available on …The agent is not an installed appliance, or its updater is not set upSee its own Software update card
Not enough free disk spaceThe receiving side has less free space than the file plus 100 MBFree space, or lower Backups kept per agent
This preview has expired. / The conflict mode changed since the preview.More than 30 minutes passed, or Existing items was changedPreview again

See also ​

Scada.Ink Help Center