Skip to content

Troubleshooting

Web interface is unavailable

The supplied mapping exposes the TLS-enabled web service on port 8000. Start with service state and logs:

docker compose ps
docker compose logs --tail=200 siematic-web
docker compose port siematic-web 8000
curl -vk https://localhost:8000/accounts/login/

Run Django diagnostics inside the web container:

docker compose exec siematic-web python manage.py check
docker compose exec siematic-web python manage.py showmigrations

Common causes include a missing certificate volume or an invalid DJANGO_SECRET_KEY. Other causes include an incomplete DJANGO_ALLOWED_HOSTS or a database connection failure. The connection also fails if you use http:// when the supplied Compose service expects https://.

For a remote host, connect to its published address or use a temporary tunnel:

ssh -L 8000:localhost:8000 user@remote-host

Then browse to https://localhost:8000/ locally.

Agent sends no events

docker compose logs --tail=200 siematic-agent siematic-indexer
docker compose exec siematic-agent python -c "import os; print(os.getenv('INDEXER_HOSTNAME'), os.getenv('INDEXER_PORT'))"

Make sure that the indexer username exists and belongs to the Agent group. Make sure that it matches the agent environment. For TLS, INDEXER_CA_BUNDLE must name a readable CA or server certificate that verifies the indexer's hostname. Verification is not disabled when the bundle is absent. The system trust roots are used instead.

Crawlers or alerts do not run

docker compose logs --tail=200 siematic-crawler
docker compose exec siematic-crawler python manage.py run_crawlers --plugin failed_login_crawler

Check that the configured crawler instance is enabled, its name matches a loaded plugin, and a scheduled instance has valid cron syntax. If you use the default file backend, inspect sent_emails/. For a production backend, make sure that the SMTP variables are correct.

Container health

Compose runs service-specific health probes for the web and indexer services. The web probe requests the local login page. The indexer probe connects to its local TCP port.

The agent and crawler do not expose health endpoints. Compose reports their process state without a synthetic health value. Inspect their logs and use the functional checks in the sections above.

Run the test suite

docker compose exec siematic-web python manage.py test --settings SIEMatic.settings.web

For local development, activate the virtual environment and run the same management command without Compose.