Repository navigation
Releases
v0.7.0
Changed
- Refreshing a server's inventory from Server Chief now refreshes the package lists first (
apt-get update,yum/dnf makecache), so it shows updates published since the agent's last scheduled refresh, which runs every 6 hours. Pending updates and repositories are reported once the refresh finished. A refresh within 5 minutes of the previous one reuses its package lists, a package manager that holds its lock is not waited for, and an operator who turned the metadata refresh off keeps it off. Refreshing withrefresh_metadata: falsecollects from the existing package lists as before.
More information: README · install with curl -fsSL https://pkg.server.chief.app/install.sh | sudo bash, then run the setup command from Server Chief
v0.6.5
Fixed
- Fixed agent updates and package upgrades always failing where the agent runs as root, on systemd before 229 (such as CentOS 7) and under SysV. The package handed
/var/lib/serverchiefto theserverchiefuser anyway, so the update helper refused the requests the daemon wrote (update-request.json is owned by uid 0) and the daemon refused the ones left from before (is owned by uid 981). The package now keeps the directory owned by root there and removes requests that theserverchiefuser left behind instead of running them. Agents already on 0.6.x need this version installed once by hand, for example withyum update serverchief.
More information: README · install with curl -fsSL https://pkg.server.chief.app/install.sh | sudo bash, then run the setup command from Server Chief
v0.6.4
Fixed
- Phased updates that the host is not yet selected for, such as an Ubuntu update marked
(phased 10%)inapt-cache policy, are no longer listed as pending updates. Installing updates already skipped them, so they used to stay pending after every run. In the agent's sandboxed unit, apt took the private mount namespace for a chroot and included every phased update.
More information: README · install with curl -fsSL https://pkg.server.chief.app/install.sh | sudo bash, then run the setup command from Server Chief
v0.6.3
Fixed
- Fixed installing package updates failing with
exit status -1when the agent updated itself first: needrestart restarted the upgrade's ownserverchief-upgradeunit, which stopped apt along with the restarts of the other services./etc/needrestart/conf.d/serverchief.confnow keeps every unit of the agent out of needrestart's restarts. - A command that is killed by a signal is reported as such, for example
apt-get was killed by SIGTERM, instead ofexit status -1.
More information: README · install with curl -fsSL https://pkg.server.chief.app/install.sh | sudo bash, then run the setup command from Server Chief
v0.6.2
Changed
- Updated dependencies
More information: README · install with curl -fsSL https://pkg.server.chief.app/install.sh | sudo bash, then run the setup command from Server Chief
v0.6.1
Added
- Disks report what they know about their own health through SMART: the overall verdict, NVMe critical warnings, spare capacity and wear, media errors, reallocated, pending and uncorrectable sectors, CRC errors and the result of the latest self-test. The root helper reads it hourly with
smartctlfrom smartmontools when it is installed, on physical servers only; it never starts a self-test and leaves sleeping disks asleep. The package suggests smartmontools. - The
storagedataset reports ZFS pools: their state, the layout of their mirrors, raidz and other vdevs with each device's state and read, write and checksum errors, the last scrub or resilver and whether files have permanent errors, and the pool's volumes (zvols) by name, so Server Chief can warn when a pool degrades. It runszpool statusas the unprivileged agent user. Disks also report their firmware version, RAID arrays their layout (which members mirror each other in RAID 10) and whether a rebuild waits for another array to finish and the devices of a ZFS vdev being replaced or covered by a spare whichreplacingorsparegroup they belong to.
Fixed
- Fixed Hetzner dedicated servers being reported as KVM virtual machines: Hetzner names itself the vendor of its dedicated servers too, only its cloud servers (vServer) are virtual.
- Fixed file systems showing as read-only, and the agent's own directories and temporary directory showing as file systems, because the agent read the mounts of its own sandbox instead of the host's.
- ZFS volumes (
zd*) are reported as block devices of typezvolinstead ofother.
More information: README · install with curl -fsSL https://pkg.server.chief.app/install.sh | sudo bash, then run the setup command from Server Chief
v0.6.0
Added
- The new
storagedataset reports the health of software RAID (md) arrays and their members, and the state of NVMe and SCSI/SATA disks, every 5 minutes, so Server Chief can warn when an array is degraded or a disk fails. It reads sysfs only and needs no extra privileges or tools. A dead NVMe disk, which disappears from thehardwaredataset's block devices, is still listed here.
Fixed
- Fixed Plesk sites losing their document root, PHP version and certificate for a round right after a reboot, and their certificates their Let's Encrypt manager, while the Plesk database was still starting. The agent no longer falls back to listing the sites by name at once when the database cannot be queried: the sites keep what was collected before, or, right after the agent starts, the sites, certificates and applications are collected again 10 to 15 minutes later. Only a database that fails for 30 minutes still reports the sites by name, and the agent now logs when it does.
More information: README · install with curl -fsSL https://pkg.server.chief.app/install.sh | sudo bash, then run the setup command from Server Chief
v0.5.0
Changed
- The output of scheduling a reboot shows on the dashboard right away, instead of only once the server is back. The result adds a line on when the server booted again and how long after the reboot was scheduled, or which boot it still runs when it did not reboot.
- The agent speaks revision 1.3.0 of the agent protocol.
More information: README · install with curl -fsSL https://pkg.server.chief.app/install.sh | sudo bash, then run the setup command from Server Chief
v0.4.0
Added
- Server Chief can reboot the server from the dashboard with the new
rebootcommand. The agent waits for a running package manager to finish, schedules the reboot a minute ahead withshutdown -r +1so logged-in users are warned, and reports the result with the new boot time after the server is back. Application containers such as Docker cannot be rebooted and report why. - Server Chief can install package updates from the dashboard with the new
upgrade_packagescommand: the security updates or all pending updates, never theserverchiefpackage itself, keeping local configuration files. When the dashboard asks for it, the agent first updates itself the usual way, with its readiness check and rollback. Services that use updated libraries can be restarted afterwards (needrestart on Debian and Ubuntu,needs-restarting -son RHEL and derivatives), so most updates take effect without a reboot, and the result says whether a reboot is still required. The upgrade runs in its ownserverchief-upgradeunit, survives the agent restarting and reports what it ran. Its output streams to the dashboard while it runs, step by step, so an update can be followed live. - A reboot can be asked to happen only when the server needs one (
if_required): the agent checks right before rebooting and reports when no reboot was needed, or when it could not tell, instead of rebooting. - Reboots and package updates can carry a deadline (
not_after): the agent does not start them later than that, also not after waiting for a running package manager, and reports them as too late instead. serverchief disable,serverchief enableandserverchief capabilitiesturn remote actions (rebootandupgrade_packages) off and on again on the server itself. The setting is stored in/etc/serverchief/disabled-capabilities.json, and the dashboard shows a turned-off action as such.- The dashboard can turn reboots and package updates off on a server with the new
disable_capabilitycommand, so nobody has to log in to do it. Onlyserverchief enableon the server turns them on again. - Command results include the output of what the command ran, so the dashboard can show it.
- The Debian package installs
/etc/needrestart/conf.d/serverchief.conf, so needrestart never restarts the agent. - The agent speaks revision 1.2.0 of the agent protocol.
Fixed
- Fixed the agent collecting the sites, certificates and applications of busy Plesk servers every minute. Every request writes a site's access log under
/var/www/vhosts/system, which the agent took for a change of the web server configuration, so it ranapachectl -Sseveral times a minute. Only the generated configuration in each domain'sconfdirectory counts now, without the files of Plesk's daily statistics run. - One inventory round runs
apachectl -Sand the Plesk queries once instead of once for each of the sites, certificates and applications datasets. - A source that keeps changing is collected at most once every 5 minutes. A first change is still collected right away.
- Fixed configuration changes of some Plesk domains going unnoticed until the next scheduled collection on servers with many domains, because their logs counted towards the limit of entries checked for changes.
- Fixed one application being listed twice when its sites use document roots linked to the same directory, such as DirectAdmin's
private_htmllinked topublic_html. These sites are now one application, reported at the directory itself rather than at the link.
More information: README · install with curl -fsSL https://pkg.server.chief.app/install.sh | sudo bash, then run the setup command from Server Chief
v0.3.1
Fixed
- Fixed CentOS 7 and other EL7 servers failing to read the Server Chief RPM repository with "Parsing primary.xml error: Start tag expected". The repository metadata was compressed with zstd, which the yum of EL7 cannot read, and is gzip compressed again from the next release on.
More information: README · install with curl -fsSL https://pkg.server.chief.app/install.sh | sudo bash, then run the setup command from Server Chief