Time Synchronization
We strongly recommend keeping the host clock synchronized with NTP (Network Time Protocol). Koios timestamps every device read, model prediction, event, and historical sample using the host clock, so a well-synchronized clock keeps your trends, model history, and event timelines aligned with reality. Koios runs fine without it, but accurate time makes the data far more trustworthy and easier to compare against other systems.
What Synchronized Time Gives You
Check and Enable It
Ubuntu enables systemd-timesyncd automatically on a clean install. Verify it is running and synchronized:
The output should show System clock synchronized: yes and NTP service: active. If it isn't, enable it:
Set the timezone too. It does not affect stored timestamps, which are always UTC, but it determines how times read in the host's own logs:
Pointing at an Internal Time Server
For air-gapped sites, point the host at your own time server. Use a drop-in file so a system upgrade cannot overwrite it:
Then restart the service:
A hostname and an address both work, and an address is the better choice on a segment with no internal name resolution. A second server is optional: add it after the first, separated by a space, and it is tried when the first does not answer.
Confirm which server it actually settled on:
Virtual Machines
Most hypervisors include a guest integration service that pushes the physical host's clock into the virtual machine. If that host is not itself well synchronized, it will periodically pull the guest clock away from your time server. Because the configuration on the guest still looks correct, the symptom is a clock that drifts for no visible reason.
Pick one source of time and disable the other:
- Your own time server is authoritative. The usual choice. Disable the hypervisor's guest time synchronization service for this virtual machine, then configure the guest as described above.
- The physical host is authoritative. Leave the integration service enabled and make sure the physical host is synchronized. Do not also configure a time server inside the guest.
See Choosing a Host for other guest settings.
Troubleshooting
Check the service log first:
Root distance rejections
systemd-timesyncd refuses a time server whose declared uncertainty exceeds five seconds, and logs that it did. There are two causes, and they need opposite responses:
- The server is genuinely unsynchronized. It is running but has not locked onto its own upstream source, so it is correctly declining to vouch for its time. No setting on the Koios host fixes this. The time server needs attention.
- The server is accurate but reports a conservative uncertainty. Some time server implementations advertise a large margin by default even when their real accuracy is milliseconds. Raise the limit to just above what the server reports:
What's Next
- Installing Docker Engine: install the Docker runtime on the host
- System Overview: where clock drift is reported in the UI
