Schnellstart
Drei Schritte, kein Agent nötig. Alles andere baut darauf auf.
1. Ingest-Key erstellen
Öffne in der App API-Keys → Neuer API-Key, wähle den Typ „Log-Ingest“ und kopiere den Key. Er beginnt mit ue_ingest_ und wird nur einmal angezeigt.
2. Eine Zeile senden
shell
curl -sS -X POST "https://logs.uptimeeye.com/v1/ingest/jsonline?_stream_fields=service,env" \
-H "Authorization: Bearer ue_ingest_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-H "Content-Type: application/x-ndjson" \
--data-binary @- <<'JSON'
{"_msg":"hello from the docs","service":"demo","env":"prod","level":"info","user_id":"u_42"}
JSON3. Suchen
Öffne Logs, tippe service:=demo und drück Enter. Öffne die Zeile und klick auf das Filter-Symbol neben user_id – das ist schon der ganze Ablauf.
Klartext-Logs? Dann schick die Datei stattdessen als Text – siehe Logdateien / Klartext.
Anleitungen
AnleitungLogs durchsuchenAbfragesyntax, der Bereich „Felder“ und seine Filter, Zeiträume, Kontext um eine Zeile, Live-Tail, Download und Teilen.AnleitungLog-AlertsLass dich benachrichtigen, wenn passende Zeilen eine Schwelle überschreiten – bei Fehlerspitzen oder wenn ein Service nicht mehr loggt. Bedingungen, Zustände und Benachrichtigungen.AnleitungLogs sendenKeys, Endpoints, Felder und Stream-Felder, Zeitstempel, Optionen, Limits und Response-Codes – die Referenz hinter jeder Integration.
Integrationen
Schritt-für-Schritt-Anleitungen mit Konfiguration zum Kopieren. Wähl die, die am besten dazu passt, wie du deine Services betreibst.
Plattformen
Agents
Fluent BitLass Fluent Bit Logdateien oder Container-Ausgaben mitlesen und als JSON-Lines über den http-Output an UptimeEye Logs senden – auf Hosts, VMs und Kubernetes.VectorSammle mit Vector Logs aus Dateien, journald, Docker oder Kubernetes, form sie mit VRL um und schick sie mit Plattenpuffer an UptimeEye Logs.Grafana Alloy / PromtailPromtail oder Grafana Alloy läuft schon? Ergänz ein zweites Loki-Push-Ziel, und deine Logs landen in UptimeEye Logs, mit Labels als Stream-Feldern.
Protokolle
OpenTelemetryRichte einen OpenTelemetry Collector oder ein beliebiges OTel-SDK per OTLP/HTTP auf UptimeEye Logs.HTTP API / curlDie Ingest-API von UptimeEye Logs: JSON-Lines per curl oder eigenem Code senden, Stream-Felder wählen, mit gzip komprimieren und Antwortcodes verstehen.Log files / plain textSchick Klartext-Logs (Spring, log4j, nginx, syslog, jedes Pattern-Layout) ohne Agent an UptimeEye Logs.
Sprachen
Spring Boot / JavaVier Wege für Spring-Boot- und Logback-Logs zu UptimeEye Logs: OpenTelemetry Java Agent, Structured Logging, Logback-JSON mit Agent oder Klartext-Upload.Node.jsSchick Node.js-Logs an UptimeEye Logs: JSON nach stdout mit pino für Container, ein HTTP-Batcher ohne Abhängigkeiten oder das OpenTelemetry Logs SDK.PythonSchick Python-Logs an UptimeEye Logs: ein logging.Handler, der JSON-Lines per HTTP bündelt, structlog/JSON nach stdout für Container oder der OTel-Handler.GoSchick Go-Logs an UptimeEye Logs: slog- oder zap-JSON nach stdout für Container oder ein bündelnder io.Writer, der JSON-Lines direkt postet..NETSchick ASP.NET-Core- und .NET-Logs an UptimeEye Logs: per OpenTelemetry-Sink von Serilog, OpenTelemetry .NET SDK oder JSON auf der Konsole für Container.
Grundbegriffe
- Kein Schema. Jeder JSON-Key, den du sendest, ist ein Feld.
_msgist die Nachricht,_timedie Ereigniszeit; verschachtelte Objekte werden zu Namen mit Punkten. - Stream-Felder (
_stream_fields=service,env) sind die Labels eines Log-Streams – die schnellsten Filter und das Rückgrat des Bereichs „Felder“. Wähl wenige Felder mit geringer Kardinalität. - Abfrage plus Filter. Im Editor steht dein LogsQL, im Bereich „Felder“ stehen die Feldfilter. Ein Klick auf einen Wert im Bereich oder im Detail einer Zeile fügt einen Filter hinzu (
field = value); mehrere Werte eines Felds werden mit OR verknüpft, verschiedene Felder schränken sich gegenseitig ein (AND). Beides läuft zusammen, und beides bleibt im Link erhalten. - Kontingent und Aufbewahrung hängen vom Plan ab; die Logs-Seite zeigt beides. Ist das Kontingent aufgebraucht, antwortet der Ingest-Endpoint mit
429undRetry-After– nichts wird stillschweigend verworfen. - Live-Tail folgt der Ereigniszeit mit rund 6 s Verzögerung; nachgelieferte Zeilen erscheinen in der Suche, nicht im Tail.
FAQ
Was ist UptimeEye Logs?
Zentrale Log-Suche direkt neben deinen Uptime-Monitoren. Du schickst Logs über HTTP (JSON Lines, Elasticsearch Bulk, OpenTelemetry, Loki Push oder Klartext), UptimeEye speichert sie getrennt pro Organisation, und du durchsuchst sie mit Wörtern, Feldfiltern und einem Zeitraum – von jedem Alert direkt zur Ursache.
Welche Formate und Agents werden unterstützt?
Alles, was JSON Lines, die Elasticsearch-Bulk-API, OTLP/HTTP, die Loki-Push-API oder Klartext spricht: Vector, Fluent Bit, Filebeat, der OpenTelemetry Collector und die SDKs, Promtail, Grafana Alloy, der Docker-Loki-Treiber, curl und dein eigener Code.
Muss ich meine Anwendung ändern?
Meistens nicht. Agents lesen stdout oder Dateien; wenn deine App JSON loggt, wird jeder Key automatisch zu einem durchsuchbaren Feld. Klartext-Logs werden ebenfalls angenommen.
Wo und wie lange werden Logs gespeichert?
Auf der eigenen Infrastruktur von UptimeEye in Deutschland (Hetzner, Falkenstein), getrennt pro Organisation, ohne dass ein Drittanbieter die Inhalte berührt. Die Aufbewahrung beträgt 3 Tage bei Free, 7 bei Pro und 15 bei Agentur; das monatliche Volumen 1, 10 oder 50 GB. Löschst du deine Organisation, wird ihr Log-Tenant gelöscht.
Wie schnell sind Logs durchsuchbar?
Etwa eine Sekunde nach dem Ingest. Live-Tail folgt neuen Zeilen mit rund sechs Sekunden Verzögerung, damit Agents, die in Batches senden, in der richtigen Reihenfolge liefern können.