Introducing Fleetd: Open-Source Management for Linux Servers and Routers
Managing a few servers and routers seems straightforward. Connect over SSH to check their state, read logs when a service fails, and run a few commands to update software. The awkward part is that those actions happen in different places. A server has one entry point, a router another. Once an alert arrives, you still have to find the right machine, establish its context and start investigating.…
Fleetd is an open-source management tool for Linux servers and routers. It aims to provide a unified management interface for everyday actions such as monitoring system metrics, inspecting machine status, and running commands. The codebase is openly available under the MIT license, with version 0.3.0 being the first public release. Documentation is available in both English and Chinese.
The primary goal of Fleetd is to create a continuous workflow for managing a small fleet of machines by providing a dashboard that maintains context for each machine, allowing users to monitor metrics, check system status, and execute remote commands when needed. Currently, Fleetd offers monitoring capabilities for CPU, memory, load, disks, and network rates, with seven days of historical data.
It also provides runtime status details, such as failed systemd units, Docker containers, and WireGuard peers. Fleetd can send alerts for offline machines, sustained resource thresholds, low disk space, and relevant service problems, with optional email notifications.
Remote commands are available, but they are subject to each agent's permissions. Signed commands can be executed on one or more machines, ensuring that only authorized actions are taken. A web terminal is also provided for full access on machines configured for it. Agent management involves approving new machines and distributing signed agent releases.
The Fleetd server hosts the admin interface, machine records, metrics, and operation history, using PostgreSQL for storage. Each managed Linux machine runs an agent responsible for collecting state, receiving requests, and deciding whether to execute them. The Vue 3 interface is integrated into the Go server binary, while the agent is also written in Go and supports Linux amd64 and arm64 architectures.
One server, a database, and individual agents with their own configurations make up the boundaries of the Fleetd system. Troubleshooting follows these boundaries closely, determining whether agents are connected, reporting data, and processing requests, as well as why approvals or rejections occur.
For routers, Fleetd agents initiate connections to the server, eliminating the need for dedicated inbound agent-management ports. However, routers may be behind NAT, requiring additional configuration and maintenance. The server must have an address reachable by the agents, and production deployments should implement HTTPS and WebSocket forwarding.
Newly connected machines are initially pending approval, with administrators verifying fingerprints shown by the installer compared to the dashboard before approving or rejecting the machine. A familiar hostname or a row in a table cannot serve as identity verification. The next article will delve into enrollment, fingerprints, and reconnection processes in greater detail.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.