| Version | Datum | Autor | Beschreibung |
|---|---|---|---|
| 1.0 | 2026-02-10 | IceDataEmphasise Team | Initiale Erstellung des Installationshandbuchs |
| Ressource | Minimum | Empfohlen |
|---|---|---|
| Linux-Kernel | >= 3.10 | 5.x oder hoeher |
| CPU-Kerne | 4 | 8 |
| Arbeitsspeicher (RAM) | 8 GB | 16 GB |
Festplatte (/opt) |
5 GB frei | 20 GB frei |
| Paket | Zweck | Pruefung |
|---|---|---|
curl |
HTTP-Downloads und API-Aufrufe | curl --version |
tar |
Entpacken der Cribl-Tarballs | tar --version |
jq |
JSON-Verarbeitung in Skripten | jq --version |
openssl |
TLS-Zertifikatspruefungen | openssl version |
systemctl |
Systemd-Service-Management | systemctl --version |
cdn.cribl.io (Port 443) fuer den Download der Cribl-Paketepkgs.tailscale.com (Port 443) fuer Tailscale-Installation.env definiert)sudo
ausgefuehrt werden. Die Skripte pruefen dies automatisch und brechen mit einer Fehlermeldung ab,
falls sie ohne Root-Rechte gestartet werden.
Vor der Installation muss die Datei .env im Projektroot erstellt und konfiguriert werden.
Eine Vorlage befindet sich in .env.example.
# Beispiel .env Konfiguration
CRIBL_VERSION=4.16.1
CRIBL_EDGE_HOME=/opt/cribl-edge
CRIBL_SERVICE_USER=cribl
CRIBL_SERVICE_GROUP=cribl
CRIBL_EDGE_MGMT_PORT=4200
CRIBL_STREAM_API_PORT=9000
CRIBL_ADMIN_USER=admin
CRIBL_ADMIN_PASSWORD=<sicheres_passwort>
HEADSCALE_URL=https://<headscale-server>
HEADSCALE_AUTH_KEY=<pre-auth-key>
SPLUNK_HOST=<splunk-host>
SPLUNK_HEC_PORT=8088
SPLUNK_HEC_TOKEN=<hec-token>
.env-Datei muessen Unix-Zeilenenden (LF) verwenden.
Windows-Zeilenenden (CRLF) fuehren zu Ausfuehrungsfehlern. Nach dem Klonen des Repositories auf einem Windows-System
oder nach Bearbeitung mit einem Windows-Editor muessen die Zeilenenden konvertiert werden:
# Alle Skripte auf Unix-Zeilenenden konvertieren
sed -i 's/\r$//' scripts/*.sh scripts/lib/*.sh splunk/*.sh .env
| Phase | Skript | Beschreibung | Dauer (ca.) |
|---|---|---|---|
| 0 | git clone |
Repository klonen | 1 Min. |
| 1 | 01-install-tailscale.sh |
Tailscale installieren und mit Headscale verbinden | 3-5 Min. |
| 2a | 00-preflight-check.sh |
Systemvoraussetzungen pruefen | 1 Min. |
| 2b | 02-install-cribl-stream.sh |
Cribl Stream installieren und starten | 5-10 Min. |
| 3 | 03-install-cribl-edge-linux.sh |
Cribl Edge als Managed-Edge-Node installieren | 5-10 Min. |
scripts/
00-preflight-check.sh # Systemvoraussetzungen pruefen
01-install-tailscale.sh # Tailscale + Headscale
02-install-cribl-stream.sh # Cribl Stream Installation (geplant)
03-install-cribl-edge-linux.sh # Cribl Edge (Linux)
09-uninstall-cribl.sh # Deinstallation (geplant)
lib/
common.sh # Gemeinsame Hilfsfunktionen
api-helpers.sh # Cribl REST API Wrapper
scripts/lib/common.sh,
die Logging, Farbausgabe, Root-Pruefung, Netzwerk-Hilfsfunktionen und weitere Utilities bereitstellt.
Die API-Interaktion erfolgt ueber scripts/lib/api-helpers.sh.
# Repository klonen
git clone <repository-url> IceDataEmphasise
cd IceDataEmphasise
# Umgebungsdatei erstellen
cp .env.example .env
# .env mit den korrekten Werten befuellen (siehe Abschnitt 1.5)
nano .env
.env enthaelt sensible Zugangsdaten (Passwoerter, API-Tokens).
Sie ist in .gitignore eingetragen und darf niemals in das Repository eingecheckt werden.
Tailscale stellt ein verschluesseltes VPN-Overlay-Netzwerk bereit, ueber das die Cribl Stream Web-UI sicher erreichbar ist. Die Verbindung erfolgt zum selbstgehosteten Headscale-Koordinationsserver.
# Skript: scripts/01-install-tailscale.sh
sudo ./scripts/01-install-tailscale.sh
/etc/os-release aus, um die Distribution (Debian/Ubuntu) und den Codename (z.B. bookworm) zu bestimmen./usr/share/keyrings/tailscale-archive-keyring.gpg.tailscale-Paket via apt-get.tailscaled.service via systemd.tailscale up --login-server <HEADSCALE_URL> aus.
HEADSCALE_AUTH_KEY: Automatische Registrierung>>> Adding Tailscale package repository
[OK] GPG key installed to /usr/share/keyrings/tailscale-archive-keyring.gpg
[OK] APT source added
[OK] Package index updated
>>> Installing Tailscale package
[OK] Tailscale package installed: 1.76.1
>>> Starting tailscaled service
[OK] tailscaled is running
>>> Connecting to Headscale
[OK] tailscale up completed
>>> Verifying Tailscale connection
[OK] Tailscale IPv4 address: 100.64.x.x
# Systemvoraussetzungen pruefen
sudo ./scripts/00-preflight-check.sh
Der Preflight-Check validiert folgende Punkte:
| Pruefung | Kriterium | Methode |
|---|---|---|
| Kernel-Version | >= 3.10 | uname -r |
| CPU-Kerne | >= 4 | nproc |
| Verfuegbarer RAM | >= 8 GB | /proc/meminfo (MemAvailable) |
| Freier Festplattenspeicher | >= 5 GB auf /opt |
df -BG |
| Freie Ports | 9000, 9420, 9997, 4200, 514 | ss -tlnp |
| Netzwerk-Konnektivitaet | cdn.cribl.io (HTTPS), Splunk-Host | curl, check_port_open() |
| Installierte Pakete | curl, tar, jq, openssl | command -v |
# Cribl Stream installieren (Skript 02)
sudo ./scripts/02-install-cribl-stream.sh
https://cdn.cribl.io/dl/latest-x64 aufgeloest.
Ein statisches URL-Muster funktioniert nicht, da die CDN-URLs einen Build-Hash enthalten
(z.B. cribl-4.16.1-20904e45-linux-x64.tgz)./opt/criblcribl mit passender Gruppenzugehoerigkeit erstellen/opt/cribl dem cribl-Benutzer zuweisencribl.service erstellen, aktivieren und startenadmin.
Ein Bootstrap ueber users.json funktioniert in Version 4.16.x nicht zuverlaessig.
Das Passwort muss nach dem ersten Login ueber die Web-UI geaendert werden.
Anforderungen: Mindestens 8 Zeichen, 3 verschiedene Zeichenklassen (Gross-/Kleinbuchstaben, Zahlen, Sonderzeichen).
# Service-Status pruefen
systemctl status cribl
# Web-UI Erreichbarkeit testen
curl -s -o /dev/null -w '%{http_code}' http://localhost:9000
# API Health-Check
curl -s http://localhost:9000/api/v1/health | jq .
# Cribl Edge (Linux) installieren
sudo ./scripts/03-install-cribl-edge-linux.sh
Das Skript 03-install-cribl-edge-linux.sh fuehrt folgende Schritte durch:
curl, tar, systemctl, id, getentCRIBL_VERSION, CRIBL_EDGE_HOME, CRIBL_SERVICE_USER, CRIBL_SERVICE_GROUP, CRIBL_EDGE_MGMT_PORTcribl existiertcdn.cribl.io, oder gecachte Version unter /tmp/ verwenden./opt/cribl-edge mit Backup bestehender lokaler Konfiguration.cribl.yml mit distributed.mode: managed-edge und Master-Verbindung zu 127.0.0.1:4200.cribl-edge.service mit:
criblsystemd-journal, adm, docker (falls vorhanden)
SupplementaryGroups-Direktive in der systemd-Unit
erwartet leerzeichen-getrennte Werte, nicht komma-getrennt:
SupplementaryGroups=systemd-journal adm docker
CAP_DAC_READ_SEARCH, CAP_SYSLOGProtectSystem=full, ProtectHome=trueLimitNOFILE=65536, LimitNPROC=8192Die generierte Konfigurationsdatei /opt/cribl-edge/local/cribl/cribl.yml:
distributed:
mode: managed-edge
master:
host: "127.0.0.1"
port: 4200
tls:
disabled: true
authToken: ""
# Service-Status
systemctl status cribl-edge
# Edge-Version pruefen
/opt/cribl-edge/bin/cribl version
# Edge-Registrierung im Stream pruefen (API)
curl -s -u admin:<passwort> http://localhost:9000/api/v1/edge/nodes | jq .
# Logs pruefen
journalctl -fu cribl-edge
tailscale status zeigt Verbindung ansystemctl is-active cribl gibt active zuruecksystemctl is-active cribl-edge gibt active zurueckhttp://<tailscale-ip>:9000 zeigt Login-Seitejournalctl -u cribl --no-pager -n 50# Schnellpruefung aller Services
for svc in tailscaled cribl cribl-edge; do
printf "%-20s: %s\n" "$svc" "$(systemctl is-active $svc 2>/dev/null || echo 'nicht gefunden')"
done
# Port-Pruefung
for port in 9000 9420 4200; do
if ss -tlnp | grep -q ":${port} "; then
echo "Port $port: OFFEN"
else
echo "Port $port: GESCHLOSSEN"
fi
done
# Service stoppen und deaktivieren
sudo systemctl stop cribl-edge
sudo systemctl disable cribl-edge
# Systemd-Unit entfernen
sudo rm /etc/systemd/system/cribl-edge.service
sudo systemctl daemon-reload
# Installationsverzeichnis entfernen
sudo rm -rf /opt/cribl-edge
# Service stoppen und deaktivieren
sudo systemctl stop cribl
sudo systemctl disable cribl
# Systemd-Unit entfernen (falls manuell erstellt)
sudo rm /etc/systemd/system/cribl.service
sudo systemctl daemon-reload
# Installationsverzeichnis entfernen
sudo rm -rf /opt/cribl
# Verbindung trennen
sudo tailscale down
# Paket entfernen
sudo apt-get remove --purge tailscale
sudo rm /usr/share/keyrings/tailscale-archive-keyring.gpg
sudo rm /etc/apt/sources.list.d/tailscale.list
sudo apt-get update
scripts/09-uninstall-cribl.sh wird eine vollstaendige
Deinstallation aller Komponenten in umgekehrter Installationsreihenfolge durchfuehren. Bis zur
Fertigstellung des Skripts koennen die oben beschriebenen manuellen Schritte verwendet werden.
# Nur ausfuehren, wenn der cribl-User nicht mehr benoetigt wird
sudo userdel cribl
sudo groupdel cribl 2>/dev/null || true
/opt/cribl/local/ und /opt/cribl-edge/local/.
Diese enthalten alle angepassten Einstellungen.