SIEMLite

Backups and updates

Keeping events

SIEMLite keeps events for two years by default. Change it on the System page (Keep events: 30 days, 90 days, 1 year, 2 years or any number of days up to ten years); it takes effect at once. Once a day, events older than that are deleted, whole days at a time, and making the period shorter deletes them straight away (after asking). Before the page sets it, -retention-days (SIEMLITE_RETENTION_DAYS) does.

Each event is stored under its own date, even when it arrives late, such as a batch of old logs sent at once. An event dated before the retention period is refused, since it would be deleted straight away. When 50 or more events more than 30 days old arrive from one source in one go (a burst ends after a quiet minute, or after ten minutes), SIEMLite records it in the audit log and the built-in rule Mass ingestion of late logs raises a High alert naming the source, how many events, and the dates they cover. The events themselves keep their own severity. Old logs loaded in bulk on purpose raise it too: close the alert once you know why.

Backups

On the System page, choose Create backup now, or set automatic backups to run every 6 hours, every day or every week, keeping the newest 1-365. A backup is a compressed copy of everything (every day's events, users, sources, parsers, rules, alerts and settings), made while SIEMLite keeps running and logging.

From the command line (works while the server runs; a restore is applied at the next start):

./siemlite backups create
./siemlite backups list
./siemlite backups restore -name siemlite-20261003-211924-manual.tar.gz

Updates

The System page shows the version you're running and checks GitHub for a newer release (at most every six hours, or when you choose Check now). When one is out, Update and restart downloads the build for your platform, checks it against the release's SHA256SUMS, swaps it in for the running program and restarts, usually within seconds. Nothing changes if the download or check fails. Updates are recorded in the audit log. Make a backup first if you might want to go back: a newer version can upgrade the database in ways older versions can't read. Pass -update-check=false (or SIEMLITE_UPDATE_CHECK=false) to stop SIEMLite contacting GitHub at all.

Everyone is signed out when SIEMLite changes version, however it was updated (the button, docker compose pull, a new binary, or going back to an older one), so people sign in again on the new version. Restarting the same version keeps sessions. The audit log records it ("SIEMLite changed from v0.25 to v0.26: everyone was signed out"), and the person who used Update and restart is told why when the sign-in page comes back.