SIEMLite

Troubleshooting

I lost the admin password

The first start prints it once. With Docker the first container's logs hold it (docker compose logs siemlite | grep -A1 'username: admin'), but rebuilding replaces them. Set a new one:

docker compose exec siemlite siemlite users passwd -username admin    # Docker
./siemlite users passwd -username admin                               # plain binary

Pass -db if your database is not ./siemlite.db. This also signs the user out everywhere.

The browser warns about the certificate

SIEMLite generates a self-signed certificate on first start. Trust siemlite.crt on your machine, or supply your own with -tls-cert and -tls-key. With Docker, copy the certificate out with docker compose cp siemlite:/data/siemlite.crt ..

The certificate doesn't match the name I use

The certificate is generated once. Set -tls-hosts (Docker: SIEMLITE_TLS_HOSTS) to every name or IP people use before the first start. To regenerate later, delete the certificate and key and restart; see Installation for the Docker command.

Sending a log returns an error

Status Meaning
202 Accepted.
401 The token is wrong, the source is disabled, or its source was deleted. Check the Sources page.
403 The token was used for something other than sending logs. Tokens can only post to /api/v1/logs and /api/v1/events.
503 SIEMLite is busy. Wait for the Retry-After seconds and send again.
405 on a preflight Browsers can't call SIEMLite directly (no cross-origin calls). Send from your own backend instead; see Sending logs.

Events dated before the retention period, or more than a day ahead, are refused and counted as rejected with the reason.

Syslog isn't arriving

My lines aren't parsed the way I expect

Look at the source's setting on the Sources page: Automatic, None or a parser. A line that doesn't match the source's parser is still stored, parsed as Automatic would, with a parse_error field. Use the parser editor's preview with sample lines.

Search doesn't find part of the original line

Search covers the parsed event (message, program, host, user, addresses and parsed fields). The original line is removed 24 hours after the event arrives, so search for what the parser understood. See Search.

An update or restore didn't work

The test email fails

The message is the mail server's own answer. The usual causes:

Let's Encrypt doesn't issue a certificate

The HTTPS certificate section of the System page says why, and Check this address tests the same path Let's Encrypt uses. Meanwhile the site stays reachable by IP address or LAN name with the self-signed certificate. The usual causes:

See Run on the internet.

Can't change your password

The admin account can't sign in

"This account can only sign in on the server itself" means Keep the admin account to this server is on (Users page), or Only allow sign-in with Microsoft is. Sign in at https://localhost:8444 on the server. From another computer, tunnel to it first: ssh -L 8444:localhost:8444 you@server, then open https://localhost:8444. A "this port only answers the server itself" error means the connection didn't come from the server: use localhost on the server or the tunnel, not the server's address. If the local port doesn't answer at all, check that docker compose ps shows 127.0.0.1:8444->8444 (it needs the v0.17 compose.yaml; update with git pull), or that SIEMLite was started with -local-addr.

If nothing works, lift the restrictions on the server with docker compose exec siemlite siemlite signin reset (or ./siemlite signin reset); a running SIEMLite applies it within a minute. See Sign-in restrictions.

The sign-in page has no password form

Only allow sign-in with Microsoft is on, so only Microsoft accounts can sign in. The built-in admin account can still sign in on the server, at https://localhost:8444, where the password form is shown. Turning sign-in with Microsoft off brings passwords back.

Sign in with Microsoft doesn't work

The sign-in page shows a short reason, and the server log has the detail.

See Sign in with Microsoft.

AI Parsers doesn't suggest anything

./update.sh doesn't finish

Events are refused as too old, or a "Mass ingestion of late logs" alert

Still stuck

Check the server log, GET /health (details when signed in), and the audit log, then open an issue.