JSON- und Anwendungsprotokolle

Machen Sie Application Logs zu abfragbaren Tabellen.

JSON-Zeilen von ECS, Serilog, pino oder Bunyan sowie einfacher Zeitstempel [LEVEL] Logger: Nachrichtentext – Stacktraces bleiben weiterhin an der Zeile angehängt, die sie ausgelöst hat, statt sich über vierzig nutzlose Zeilen zu verteilen.

Verwende die Ergebnisse in Excel, Google Sheets, KI-Tools und deinen Apps über die Database REST API.

Jeder Connector-Typ ist im Free-Tarif verfügbar. Starte mit 2 Datenquellen und 1 Agent.

AnwendungsprotokolleDateien direkt an ihrem Speicherort lesen
Innerhalb deines NetzwerksAbfrage von Datenströmen Netzwerk-Agent

Auf Ihrem Computer lesen, organisieren und abfragen.

Schreibgeschützte Abfragen · ausgehende Verbindung

Die Quelldateien bleiben an ihrem Speicherort. Ihre Tools erhalten Abfrageergebnisse.

Quelle → Agent → zulässige Ergebnisse

Query Streams macht Anwendungsprotokolle zu Live-SQL-Tabellen, die sich mit Microsoft Excel, Google Sheets, KI-Assistenten über MCP, der REST API und Power BI auslesen lassen. Strukturierte JSON-Zeilen – ECS, Serilog, pino, Bunyan – werden als typisierte Spalten eingelesen; einfache Textprotokolle werden anhand ihrer Grammatik analysiert. Der entscheidende Unterschied ist der Umgang mit mehrzeiligen Einträgen: Ein Stacktrace gehört zu der Zeile, die ihn ausgelöst hat, und der Log-Treiber belässt ihn dort, statt eine Ausnahme in vierzig verwaiste Zeilen zu zerlegen. Unter Debian und Ubuntu werden auch die dpkg- und apt-Protokolle unterstützt. So lässt sich abfragen, was sich auf dem Rechner geändert hat, und mit den Aussagen der Anwendung dazu vergleichen.

  • Stacktraces bleiben in einer Zeile
  • ECS, Serilog, pino und Bunyan
  • Auch dpkg und apt werden unterstützt

Verbinden Sie Application Logs mit den passenden Einstellungen.

Lassen Sie die Verbindung auf dem Network Agent bestehen. Hier finden Sie die für Application Logs spezifischen Angaben.

Ordner
Das Protokollverzeichnis der Anwendung oder der Ordner, in dem Protokolle gesammelt werden – auf einem lokalen Datenträger oder einer Netzwerkfreigabe im Format \\server\share (niemals ein zugeordnetes Laufwerk; unter Linux oder Mac zuerst einhängen)
Formate
JSON-Zeilen strukturierter Logger und einfacher Zeitstempel [LEVEL] Logger: Nachrichtentext; außerdem dpkg und apt unter Debian und Ubuntu
Mehrzeilige Einträge
Ein Datensatz endet dort, wo der nächste Zeitstempel beginnt. Stacktraces und eingerückte Fortsetzungen bleiben daher in der Zeile, die sie ausgelöst hat.
Rotation
Zehn benannte Rotationsmuster sowie nicht rotierte Dateien; komprimierte Archive werden direkt gelesen
Nicht zugeordnete Zeilen
Unverändert in events_raw_lines gespeichert und niemals verworfen
Anmeldedaten
Keiner – es gibt keinen Server; der Agent liest die Dateien direkt am Speicherort
SQL-Dialekt
DuckDB – Standard-SQL, keine logger-spezifischen Kenntnisse erforderlich

Wenn Ihr Logger ein Format schreibt, das keinem dieser Profile entspricht – was bei internen Anwendungen häufig vorkommt –, beschreiben Sie es einmal mit dem Custom Logs-Connector. Es wird dann zu derselben Art von Tabelle. Am Rest dieser Seite ändert sich nichts; nur die Herkunft der Spaltennamen ist eine andere.

Entwickelt für die Funktionsweise von Application Logs.

Stacktraces bleiben angehängt

Ein vierzigzeiliger Stacktrace ist ein Ereignis, nicht vierzig. Jeder Parser, der standardmäßig eine Zeile pro Datensatz verwendet, macht es falsch. Das Ergebnis ist eine Tabelle, in der der Ausnahmetext und die auslösende Nachricht in getrennten Zeilen stehen, ohne dass sie miteinander verknüpft sind.

  • Die Datensatzgrenze ist Teil des Formats. Ein Datensatz endet daher dort, wo der nächste Zeitstempel beginnt, und nicht am nächsten Zeilenumbruch.
  • Der vollständige Trace bleibt in der Zeile, die ihn ausgelöst hat. Ausnahmen nach Typ zu gruppieren, erfordert daher nur ein GROUP BY statt mühsamer Rekonstruktion.
  • Strukturierte Logger behalten ihre Felder bei – level, logger, message und alle weiteren im JSON enthaltenen Angaben werden als Spalten eingelesen, nicht als ein Textblock.
  • Zeilen, die keiner Grammatik entsprechen, werden unverändert in events_raw_lines aufbewahrt. So geht eine Protokollzeile aus einer unerwarteten Bibliothek nicht unbemerkt verloren.
-- Welche Logger melden Fehler, und wie häufig
SELECT   logger, level, COUNT(*) AS events
FROM     fileset.events
WHERE    level IN ('ERROR','FATAL')
GROUP BY logger, level
ORDER BY events DESC

Und was sich auf dem Rechner geändert hat

Unter Debian und Ubuntu verzeichnen die dpkg- und apt-Protokolle mit Zeitstempel jedes installierte, aktualisierte oder entfernte Paket. Dafür gibt es hier Profile, denn damit lässt sich eine Frage beantworten, die sich nach den meisten Vorfällen stellt: Die Anwendung fiel um vier Uhr aus – was hat sich davor auf diesem Rechner geändert?

Formate und Verhalten im Detail.

Öffnen Sie die Referenz, die Sie für Application Logs benötigen.

Ihr Protokollordner wird zu einer Tabelle, nach der Sie gruppieren können.
Die große Idee

Ihr Protokollordner wird zu einer Tabelle, nach der Sie gruppieren können.

Kein grep und kein Log-Stack. Query Streams liest die Dateien, die Ihre Anwendung bereits schreibt, legt das Format fest und stellt typisierte Spalten bereit – so ist die Frage „Welcher Logger wirft diese Woche die meisten Fehler?“ mit einer einzigen Abfrage beantwortet, statt einen Nachmittag in Anspruch zu nehmen. Eine Zeile, die der Parser nicht lesen kann, bleibt mit einer Begründung als Datensatz erhalten, statt unbemerkt verworfen zu werden.

Protokollordnerauf Ihrem Server
shopfront-api/app.jsonlJSON
shopfront-worker/app.logText
history.loggeeignet

Rotationen, komprimierte Archive und erneut gelesene Dateien – alles wird verarbeitet

noisiest-loggers.sqlSQL
SELECT App, Logger,
       zählen(*) AS Fehler
VON   fileset.events
WHERE  Niveau = 'FEHLER'
GROUP BY App, Protokollierer
ORDER BY Fehler DESC
ErgebnisFehler des Loggers
AppProtokolliererFehler
Shopfront-APIPaymentClient412
Shopfront-APIOrderRepo96
LadenangestellteE-Mail-Absender31
Shopfront-WebSessionFilter4

Verknüpfen Sie es in derselben Abfrage mit Ihrer Anwendungsdatenbank.

Die Dateien, die Ihre App bereits schreibt, jetzt in einer Tabelle, über die Sie Berichte erstellen können.

Zwei Formen, die Ihre App schreibt, zwei, die die Box schreibt
Quellen

Zwei Formen, die Ihre App schreibt, zwei, die die Box schreibt

Jede Karte nennt die genauen Dateien, die Query Streams liest, und zeigt, was Sie daraus erhalten. Sie müssen weder eine Logging-Bibliothek einführen noch das Format ändern – unterstützt werden Formate, die diese Tools standardmäßig ohnehin erzeugen.

Unterstützte Anwendungsprotokolle

4 Formate
Elastic-Logo – Query Streams liest Elastic Common Schema JSON-Anwendungsprotokolldateien JSON-ZeilenECS, Serilog kompakt, Pino, Bunyan
  • Ein JSON-Objekt pro Zeile in .jsonl, .ndjson oder *-json.log
  • ECS-Feldnamen werden direkt übernommen – log.level, Hostname, Dienstname
  • Serilog Compact, Pino und Bunyan Read auch: gleiche Tasten, unterschiedliche Schreibweisen
  • Verschachtelte Objekte werden zu gepunkteten Spalten vereinfacht; alles Nicht-Zugeordnete landet in Daten
  • Anhänge; datierte Rotationen und .gz folgte
Symbol für Anwendungsprotokolle – Abfragestreams liest zeitgestempelte Text-Anwendungsprotokolldateien mit Stacktraces TextprotokollZeitstempel, Ebene, Protokoller, Nachricht
  • Die Standardform: ein Stempel, eine Ebene in Klammern, ein Protokolleintrag, eine Nachricht
  • Ein Stacktrace wird mit der Zeile verknüpft, die ihn ausgelöst hat – eine Zeile, nicht vierzig
  • bei …, Verursacht durch: und Traceback alle lesen als Fortsetzung
  • Liest .Protokoll, .aus und .txtJSON-Dateien sind durch die Deklaration ausgeschlossen.
  • Millisekunden mit Komma oder Punkt; lokale Uhrzeit wie die des Agents interpretiert
Debian-Logo – Query Streams liest das dpkg-Paketprotokoll unter Debian und Ubuntu. dpkgPaketprotokoll
  • Eine Zeile pro Verpackungsschritt: installieren, Upgrade, entfernen, konfigurieren
  • Paket, Version und neue_Version als ihre eigenen Kolumnen
  • Status Die Zeilen enthalten den Status, in den dpkg das Paket verschoben hat.
  • /var/log/dpkg.log und seine Nummer .gz Rotationen
  • Keine Zeitzone in der Datei; wird als lokale Uhrzeit des Agents interpretiert
Debian-Logo – Query Streams liest das apt-Verlaufsprotokoll unter Debian und Ubuntu. geeignetVerlaufsprotokoll
  • Eins Schlüssel: Wert Block pro Transaktion, Leerzeile zwischen den Blöcken
  • Das genaue Befehlszeile das lief, und was es veränderte
  • Startdatum ist der Zeitpunkt des Ereignisses; Enddatum ist eine eigene Spalte
  • Eine unvollendete Transaktion wird nicht halbiert, sondern bleibt vorerst unvollendet.
  • /var/log/apt/history.log plus seine .gz Rotationen
Mehr kommenDies ist der Anfang, nicht das Ende.

Mit jeder Agentenversion werden neue Anwendungs- und Paketprotokollformate hinzugefügt. Da sich die Agenten selbst aktualisieren, wird ein später hinzugefügtes Format in Ihrem Connector angezeigt, ohne dass ein Serverzugriff erforderlich ist.

Alle vier Parser wurden anhand echter aufgezeichneter Protokolldateien getestet und entwickelt, einschließlich rotierter Protokolle und komprimierter Archive. Die beiden Paketprotokolle sind auf Debian und Ubuntu beschränkt – es gibt kein Profil für RPM-basierte Distributionen oder den Paketverlauf unter Windows. Das sagen wir lieber offen, statt dass Sie es erst während der Einrichtung herausfinden.
Die Protokolle Ihrer Anwendung aus jeder Region – dort gelesen, wo sie ausgeführt wird
Überall, wo es läuft

Die Protokolle Ihrer Anwendung aus jeder Region, Lies, wo es läuft

Eine Anwendung besteht selten aus nur einem Server. Eine API in einer Cloud-Region, Worker in einer anderen, und manches läuft noch auf einem Rechner im Büro. An jedem Standort läuft ein Network Agent, der die Logdateien dort ausliest, wo sie bereits liegen, und eine Verbindung zu Query Streams aufbaut. Aus Sicht Ihrer Firewall ist das eine gewöhnliche ausgehende Verbindung – nichts, was freigeschaltet werden muss, kein VPN, das eingerichtet werden muss, und keine Logging-Bibliothek, die Sie Ihrer App hinzufügen müssen.

EU-Westen Die API schreibt JSON-Zeilen, eine Datei pro Dienst. Wählt aus
US-Osten Arbeiter schreiben Textprotokolle, Stacktraces und alles Wählt aus
Hauptsitz Eine ältere Box, daneben die dpkg- und apt-Historie. Wählt aus

Drei ausgehende Verbindungen, ein Ort, an dem Sie sie abfragen können – kein eingehender Port, kein VPN, keine Änderung an der Firewall

Ein Agent pro Standort

Ein Agent deckt einen ganzen Standort ab, nicht nur ein einzelnes Log: Die JSON-Zeilen, das Textlog und der Paketverlauf an diesem Standort werden jeweils zu einem eigenen File-Set-Connector auf demselben Agent. Im Free-Tarif läuft ein einzelner Agent, in den kostenpflichtigen Tarifen sind es mehr.

1 Standort = 1 Agent = viele Verbindungen

Nichts zum Öffnen

Der Agent baut eine einzige verschlüsselte ausgehende Verbindung auf, über die sowohl die Anfrage nach draußen als auch die zurückkommenden Zeilen übertragen werden. Kein eingehender Port, kein VPN, keine Firewall-Änderung, um die Sie erst bitten müssen – und nichts, was Sie Ihrer Anwendung hinzufügen müssen, damit es funktioniert.

eine Verbindung, in beide Richtungen

Eine regionsübergreifende Abfrage

Jede Quelle in einem föderierte Abfrage benennt seinen eigenen Agent, sodass eine einzelne Anweisung die Fehler der API in einer Region neben denen der Worker in einer anderen platzieren kann – oder neben dem Paketverlauf, der erklärt, wann es angefangen hat. In Business und Enterprise enthalten.

2 Regionen → 1 Ergebnismenge

Sie halten sich auf dem Laufenden

Die Agenten aktualisieren sich selbst, sodass ein in einer späteren Version hinzugefügtes Protokollformat ohne eigene Installation überall verfügbar ist. Deshalb ist die obige Liste eher ein Ausgangspunkt als eine feste Liste.

Neue Formate kommen mit dem Agenten.

Stacktraces, Taktgeber und ähnliche Signale
Der schwierige Teil

Stacktraces, Taktgeber und ähnliche Signale

Das Anwendungsprotokoll ist die unübersichtlichste Datei auf dem Server: Ein einzelnes Ereignis kann sich über vierzig Zeilen erstrecken, zwei voneinander unabhängige Formate können identisch aussehen, und die Hälfte dieser Dateien enthält überhaupt keine Zeitzoneninformationen. Jedes dieser Probleme wird durch explizite Deklaration und nicht durch bloßes Raten gelöst.

Eine Veranstaltung, nicht vierzig Reihen

Eine Zeile ohne Zeitstempel gehört zur darüberliegenden Zeile. Dadurch bleibt der Stacktrace mit der auslösenden Nachricht verknüpft, anstatt in Dutzende von Fragmenten zerfallen zu werden, die niemand mehr lesen kann. GROUP BY kann wieder zusammengebaut werden.

Fortsetzungszeilen → zusammengefügt, bis zu 200

Zwei Baumstämme, die einander ähnlich sehen

Eine Anwendungszeile im JSON-Format, ein Docker-Umschlag und eine JSON-Zugriffszeile eines Webservers sind allesamt „JSON mit einem Zeitstempel“. Das Format wird durch den Inhalt der Zeile bestimmt, sodass jede ihr eigenes Profil erhält – niemals durch eine Verzweigung anhand des Dateinamens.

Der Inhalt entscheidet, nicht der Dateiname.

Eine Uhr ohne Zeitzone

Textlogs, dpkg und apt schreiben alle die lokale Hostzeit ohne angehängten Offset. Statt zu raten, geben diese Profile an, dass der Zeitstempel lokal ist, und lesen ihn als Zeitzone des Agents aus – der ursprüngliche String bleibt in jedem Fall in einer eigenen Spalte erhalten.

Lokale Uhr → angegeben, niemals abgeleitet

Eine Transaktion läuft noch.

apt schreibt den Beginn eines Upgrades sofort und die Endzeile erst, wenn dpkg abgeschlossen ist, was Minuten dauern kann. Ein noch nicht geschlossener Block wartet, anstatt geteilt und als Ereignis ohne Anfang angezeigt zu werden.

Wartet bis zum Enddatum, bis zu 30 Minuten

In der Datei5 Zeilen
2026-09-08 14:02:11,431 [FEHLER] PaymentClient: Zahlung fehlgeschlagen java.net.SocketTimeoutException: Zeitüberschreitung beim Lesen bei java.base/java.net.SocketInputStream.read bei PaymentClient.charge(PaymentClient.java:88) … 24 weitere
In der Tabelle1 Zeile
Ereigniszeit
2026-09-08 14:02:11.431
Ebene
FEHLER
Protokollierer
PaymentClient
Nachricht
Zahlung fehlgeschlagen ↵ java.net.SocketTimeoutException: Zeitüberschreitung beim Lesen ↵ bei …
Zähle die Ausnahme, nicht die von ihr ausgegebenen Zeilen.
Die Spalten, die Sie tatsächlich erhalten
Das Schema

Die Spalten, die Sie tatsächlich erhalten

Kein Textblock mit einem danebenstehenden Zeitstempel. Jedes Format wird in typisierte Spalten geparst, die Sie direkt filtern, gruppieren und aggregieren können – und wenn Ihre Anwendungslogs strukturiertes JSON enthalten, werden auch die darin enthaltenen Felder in Spalten aufgeschlüsselt.

Elastisches Logo
JSON-ZeilenECS · Serilog · pino · Bunyan
EbeneProtokolliererNachrichtGastgeberServiceStromDaten
Symbol für Anwendungsprotokolle
TextprotokollStacktraces wurden zusammengeführt
EbeneProtokolliererNachricht
Debian-Logo
dpkg-PaketprotokollDebian · Ubuntu
AktionZustandPaketVersionneue_VersionDetail
Debian-Logo
apt Verlaufsprotokollein Block pro Transaktion
Befehlszeileangefordert voninstallierenUpgradeentfernensäubernFehlerEnddatumDaten

Jede Reihe trägt außerdem Ereigniszeit, dem Rohdatenstempel, aus dem die Daten gelesen wurden, und der Datei, aus der sie stammen. Ihre Anwendungsprotokolle werden identifiziert durch App und die beiden Paketprotokolle von Gastgeber — beides wird aus dem Ordner übernommen, in dem die Datei liegt. Ein Ordner pro Dienst oder Rechner liefert Ihnen also eine saubere Spalte zum Gruppieren. Das dreispaltige Textlog ist bewusst so gestaltet: Statt Felder zu erraten, die eine Freitextnachricht nicht zuverlässig enthält, bleibt die Nachricht vollständig erhalten, einschließlich ihres Stacktraces.

Was dies absichtlich nicht tut

Was dies absichtlich nicht tut

Es handelt sich nicht um eine Live-Ausgabe. Query Streams liest die Dateien so, wie sie sich auf der Festplatte befinden, während Sie die Abfrage ausführen. Daher werden Fehlerspitzen als einzelne Zeilen und nicht als beobachteter Datenstrom angezeigt. Wenn Sie Benachrichtigungen im Subsekundenbereich benötigen, sobald eine Zeile ausgegeben wird, ist eine Log-Pipeline das richtige Werkzeug – darauf weisen wir hin.

Das Log Ihrer Anwendung enthält alles, was Ihre Anwendung ausgibt, und das sollte man klar sagen: Wenn darin ein Token, eine Kunden-E-Mail-Adresse oder ein vollständiger Request-Body protokolliert wird, steht dieser String bereits in der Datei und erscheint auch in der Spalte. Es gibt keine Feldzuordnung zum Ausschließen wie bei einem Webserver-Log. Behandeln Sie die resultierende Tabelle mit genau derselben Sorgfalt wie die Datei.

Einige der in den Paketprotokollen aufgezeichneten Informationen lassen sich eher anhand ihrer Struktur erkennen als durch eine explizite Erfassung nachweisen. dpkg dokumentiert eine Zeile in der Konfigurationsdatei und säubern und verschwinden Maßnahmen; geeignete Dokumente Angefordert von, Fehler, Säubern, Neuinstallation und Herabstufung. Nichts davon kam in den Logs vor, für die diese Profile erstellt wurden. Daher sind diese Profile zwar definiert, aber nicht durch Beispiele belegt – und keines der beiden Paket-Logs deckt RPM-basierte Distributionen oder Windows ab.

Ein Detail bei der Einrichtung, keine Einschränkung: Die Spalte „Identität“ stammt aus dem Unterordner, in dem sich die Datei befindet. Verweist man auf ein Verzeichnis mit einem Unterordner pro Dienst oder Rechner, erhält man automatisch aussagekräftige Namen. Verweist man direkt auf ein Verzeichnis mit einzelnen Dateien, wird jede Zeile nach diesem Verzeichnis benannt. Das ist bei der Einrichtung dreißig Sekunden wert.

Der Rest entspricht dem üblichen Design. Der Agent stellt ausgehende Verbindungen her und liest Dateien; es wird nichts neben Ihrer Anwendung installiert, nichts wird zurückgeschrieben, kein Prozess wird angehängt oder instrumentiert, und der Zugriff ist schreibgeschützt.

Von der Verbindung zu nützlichen Ergebnissen.

  1. Installieren Sie den Network Agent an einem Ort, von dem aus er den Log-Ordner der Anwendung sehen kann – auf dem App-Server, einem Container-Host oder einer Freigabe, auf der die Logs gesammelt werden.
  2. Verweisen Sie den Connector darauf und wählen Sie das Profil: JSON-Zeilen für strukturierte Logger oder das Klartextprofil für Zeitstempel [LEVEL] Logger: Nachrichtenlayouts.
  3. Mehrzeilige Datensätze werden anhand ihrer Datensatzgrenze verarbeitet, nicht durch Zufall: Ein neuer Datensatz beginnt dort, wo der Zeitstempel beginnt, sodass ein eingerückter Stacktrace mit seiner eigenen Zeile verbunden bleibt.
  4. Bei jeder Synchronisierung werden nur neue Bytes gelesen, und auch die Rotation wird berücksichtigt. Ein stark schreibender Dienst verursacht daher nicht jeden Tag höhere Kosten.
  5. Führen Sie Abfragen aus. Fehlerraten nach Logger, gruppierte Ausnahmen nach Typ oder eine Request-ID, die dienstübergreifend nachverfolgt wird.

Nutzen Sie die Ergebnisse Ihrer Application Logs.

Eine Verbindung versorgt Ihre Tabellen, Apps und KI-Tools. Erteilen Sie die Berechtigung, eine gespeicherte Abfrage auszuführen; Empfänger sehen die zulässigen Ergebnisse, während SQL und Quell-Login verborgen bleiben.

Für Ihr Team, Ihre Lieferanten und Partner

Übernehmen Sie aktuelle Application-Logs-Ergebnisse direkt in ein Arbeitsblatt und aktualisieren Sie sie bei Bedarf – in Excel für den Desktop, Excel Online oder Microsoft 365.

Excel entdecken

Stellen Sie eine Frage in einfachem Englisch. Nova kennt Ihre Application-Logs-Tabellen bereits, schreibt und führt das SQL aus, erklärt die Antwort und erstellt ein Diagramm – keine Abfrage zu schreiben und keine Zugangsdaten weiterzugeben.

So funktioniert Nova

Teilen Sie ein aktuelles Application-Logs-Ergebnis mit beliebigen Personen – Kolleginnen und Kollegen, einem Anbieter oder einem Partner – als speicherbare Lesezeichenansicht, die beim Öffnen neue Daten abruft, auf Smartphone, Tablet oder Desktop. Sie sehen die Ergebnisse, niemals das SQL oder die Dateien.

So funktioniert der Datenbetrachter

Für Apps und Systeme

Veröffentlichen Sie eine Application-Logs-Abfrage als authentifizierten JSON-Endpunkt, den jede Anwendung aufrufen kann, inklusive OpenAPI-3.1-Spezifikation und fertigen Sammlungen für Postman, Insomnia und Hoppscotch. Es wird kein Datenbankport geöffnet.

REST API erkunden

Fügen Sie den generierten Power Query M-Code in den Power-BI-Editor für erweiterte Abfragen ein. Der Bericht liest aktuelle Application-Logs-Ergebnisse über HTTPS – ohne ODBC-Treiber und ohne geöffneten Datenbankport.

Power BI erkunden

Für KI-Tools

Geben Sie einem KI-Assistenten schreibgeschützten Zugriff auf Application Logs und das Schema, das er zum Schreiben korrekter SQL-Abfragen benötigt – ohne Zugangsdaten im Chat.

MCP entdecken

An Personen geliefert

Verknüpfen Sie Application Logs mit Ihren übrigen Daten.

Führen Sie Datenbanken, Business-APIs, Dateien und Protokolle in einer schreibgeschützten Abfrage zusammen. Jeder Connector unterstützt föderierte Abfragen.

Geben Sie Verbindungen und Tabellen an. Query Streams übernimmt die Quellabfragen und führt die Ergebnisse zusammen.

Föderierte Abfragen erkunden
Beispiel für eine quellenübergreifende Abfrage
– nichts kopiert, nichts zusammengeführt, nichts geplant
SELECT   c.region, COUNT(*) AS orders, SUM(i.amount_due) AS invoiced
VON     applogs.fileset.orders1  f
JOIN     pg_crm.public.customers2 c ON c.id = f.customer_id
JOIN     Abrechnung.stripe.invoices3 i ON i.customer = c.stripe_id
GROUP BY c.region
ORDER BY in Rechnung gestellte Beschreibung;

Verwenden Sie Ihre eigenen Namen für Verbindungen, Schemas, Tabellen und Spalten.

Gilt für die gesamte Connector-Familie.

Jeder Log-Connector stellt außerdem Folgendes bereit:

  • events – eine Zeile pro geparster Zeile, mit Zeitstempel, den von der Grammatik benannten Feldern und _source_file, das die Quelldatei angibt.
  • events_raw_lines – Zeilen, auf die die Grammatik nicht zutraf, werden unverändert beibehalten statt verworfen, sodass Sie auch zu einem nicht vorhergesehenen Format noch Fragen stellen können.
  • files_current und files_events – das aktuelle Inventar und der Prüfpfad: was hinzugekommen ist, rotiert wurde oder verschwunden ist sowie alles, was zurückgehalten wurde, jeweils mit Dateiname und Grund.
  • Rotation wird verstanden, nicht umgangen – zehn benannte Rotationsmuster plus nicht rotierte Dateien, sodass das Log von gestern und sein komprimiertes Archiv dieselbe Tabelle sind wie die Dateien von heute.

Gut zu wissen

  • Schreibgeschützt und strikt durchgesetzt – jeweils nur eine Anweisung, ausschließlich SELECT und ähnliche Befehle. Ihre Logs werden von uns niemals geschrieben, verschoben, rotiert oder gekürzt.
  • Es wird nichts hochgeladen – die Zeilen werden auf Ihrem eigenen Rechner neben dem Agenten analysiert und verschlüsselt zwischengespeichert. Nur das Ergebnis einer Abfrage verlässt Ihr Netzwerk.
  • Es werden nur neue Bytes gelesen – der Agent setzt in jeder Datei dort fort, wo er aufgehört hat, statt sie erneut einzulesen. So verursacht ein stark ausgelastetes Log nicht jeden Tag mehr Aufwand.
  • Der SQL-Dialekt ist DuckDB – dieselbe SQL-Sprache, die Sie auch für jeden anderen Connector verwenden würden.

Fragen zu Anwendungsprotokollen

Wo kann ich Abfrageergebnisse aus Application Logs verwenden?

Verwenden Sie Ergebnisse aus Application Logs in Excel, Google Sheets und im Data Viewer, in Ihren Apps über die Database REST API sowie in KI-Tools über MCP oder Nova. Gespeicherte Ergebnisse dienen außerdem als Grundlage für unterstützte Automation-Ziele, Berichte und Benachrichtigungen. Die Verfügbarkeit von Zielen und die Kontingente hängen von Ihrem Tarif ab.

Muss ich für Application Logs einen eingehenden Port öffnen?

Nein. Installieren Sie den Network Agent auf einem Computer, der auf Application Logs zugreifen kann. Der Agent stellt ausgehend eine Verbindung zu Query Streams her; ein eingehender Port oder VPN ist nicht erforderlich. Ihre Quelle muss dem Agent-Computer gemäß ihren eigenen Zugriffsregeln weiterhin eine Verbindung erlauben.

Werden meine Application-Logs-Dateien hochgeladen?

Der Network Agent liest Dateien an ihrem Speicherort und speichert seinen Cache auf dem Agent-Computer. Quelldateien werden weder hochgeladen noch verschoben oder umgeschrieben. Nur angeforderte Abfrageergebnisse verlassen Ihr Netzwerk über die verschlüsselte ausgehende Verbindung.

Was benötige ich, um Application Logs zu verbinden?

Ordner: Das Protokollverzeichnis der Anwendung oder ein Ordner, in dem Protokolle gesammelt werden – auf einer lokalen Festplatte oder einer Netzwerkfreigabe, angegeben als \\server\share (niemals als zugeordnetes Laufwerk; unter Linux oder Mac zuerst einbinden). Formate: JSON-Zeilen strukturierter Logger und einfache Zeitstempel [LEVEL] Logger: Nachrichtentext sowie dpkg und apt unter Debian und Ubuntu. Mehrzeilig: Ein Datensatz endet dort, wo der nächste Zeitstempel beginnt. Dadurch bleiben Stacktraces und eingerückte Fortsetzungen in der Zeile, die sie ausgelöst hat. Rotation: Zehn benannte Rotationsmuster sowie einfache, nicht rotierte Dateien; komprimierte Archive werden direkt am Speicherort gelesen

Kann ich Application Logs mit anderen verbundenen Quellen zusammenführen?

Ja. Föderierte Abfragen unterstützen alle Connector-Typen, einschließlich Datenbanken, Business-APIs, Dateien und Protokollen. Geben Sie Verbindungen und Tabellen in einer einzigen schreibgeschützten Abfrage an. Query Streams übersetzt die Quellabschnitte bei Bedarf und führt die Ergebnisse zusammen. Erfahren Sie, wie föderierte Abfragen funktionieren.

Welche Logging-Bibliothek muss ich verwenden?

Nichts Besonderes. Wenn Sie JSON-Zeilen schreiben, werden die Feldnamen des Elastic Common Schema direkt übernommen. Auch das kompakte Format von Serilog, pino und Bunyan wird eingelesen, da sie dieselben Schlüssel auf oberster Ebene mit abweichenden Schreibweisen verwenden – der Zeitstempel wird dem jeweils üblichen Namen entnommen, den Ihre Zeile tatsächlich enthält.

Wenn Sie Klartext schreiben, Zeitstempel [LEVEL] Protokollierer: Nachricht Shape ist ein eigenständiges, unterstütztes Format. Es muss nichts angepasst und nichts neu konfiguriert werden.

Was genau passiert mit einem Stack-Trace?

Sie bleibt bei dem Fehler, der sie verursacht hat. Ein Datensatz beginnt mit einer Zeile, die mit einem Zeitstempel anfängt; jede folgende Zeile ohne Zeitstempel wird als Fortsetzung davon behandelt – genau so sehen Java-, .NET- oder Python-Traces aus. Die Ausnahmeklasse, die bei … Rahmen, ein Verursacht durch: Kette und ein Python Traceback Die Überschriften werden alle als zur darüber liegenden Zeile gehörig erkannt.

Der praktische Unterschied besteht darin, dass die Fehlerzählung tatsächlich Fehler erfasst. Ohne diese Erfassung würde eine einzige Ausnahme die Zahlen um die Anzahl der Frames, in denen sie ausgegeben wurde, verfälschen, und die eigentlich gewünschte Nachricht befände sich in einer anderen Zeile als der Klassenname.

Warum sind dpkg und apt in den Anwendungsprotokollen enthalten?

Weil sie die Frage beantworten, die Sie unmittelbar nach „Wann ist das zum ersten Mal fehlgeschlagen?“ stellen – nämlich: „Was hat sich geändert?“. Es sind die eigenen Protokolle der Paketmanager im selben Ordnerbaum, die auf dieselbe Weise gelesen werden. Sie sind die nützlichsten Begleiter eines Fehlerprotokolls.

Der Verlauf von apt ist gut lesbar: ein Block pro Transaktion, mit dem genauen ausgeführten Befehl und den installierten, aktualisierten oder entfernten Paketen. Das dpkg-Protokoll ist detaillierter und enthält eine Zeile pro Paketschritt. Zusammen können Sie einer Änderung ein Datum zuordnen, statt sich daran erinnern zu müssen.

Kann ich meine Fehler dem Upgrade zuordnen, das sie verursacht hat?

Ja, aber eines ist zu beachten: Ein Connector liest nur ein Format, daher müssen Ihre Anwendungsprotokolle und /var/log/apt/history.log Es handelt sich um zwei Konnektoren anstatt um einen. Eine föderierte Abfrage verknüpft sie in einer einzigen Anweisung, derselbe Mechanismus, der ein Protokoll mit einer Produktionsdatenbank verbindet.

Auf dieser Protokollfamilie lohnt es sich, diese Abfrage aufzubauen: Fehler pro Stunde neben den an diesem Tag ausgeführten Transaktionen – beides aus Dateien gelesen, die niemand irgendwohin übertragen musste.

Ist das Echtzeit?

Die Daten werden bei Bedarf statt fortlaufend gelesen. Die Dateien werden so gelesen, wie sie zum Zeitpunkt der Abfrage vorliegen. Neue Zeilen erscheinen also, sobald Ihre Anwendung sie schreibt und die Datei erfasst wird – nicht nach einem festen nächtlichen Zeitplan, aber auch nicht als Live-Tail.

Wenn es darum geht, eine Frage der letzten Wochen zu stellen und die Antwort in einer Tabellenkalkulation oder einem geplanten Bericht zu erfassen, ist das die nützliche Form und erfordert deutlich weniger Aufwand als ein Holzstapel.

Mein Protokoll enthält Felder, die Sie nicht aufgeführt haben. Sind diese verloren gegangen?

Nein. In den JSON- und apt-Formaten wird alles, was keiner benannten Spalte zugeordnet ist, in einem separaten Bereich gespeichert. Daten Die Spalte wird nicht verworfen, sodass eine Anforderungs-ID, ein Mandant oder eine protokollierte Dauer weiterhin abfragbar ist. Verschachtelte Objekte werden beim Import in durch Punkte getrennte Namen umgewandelt.

Auch eine Zeile, die überhaupt nicht dem festgelegten Format entspricht, bleibt erhalten – als Rohdatensatz mit einem angefügten Grund. So wird eine unerwartete Formatänderung sichtbar, statt eine unbemerkte Lücke in Ihren Zahlen zu hinterlassen.

Wie sieht es mit der Pakethistorie von Red Hat, Fedora oder Alpine aus?

Es existiert kein Profil für dnf, lecker oder apk heute, und kein entsprechendes Format für Windows. Die beiden Paketformate hier sind das dpkg-Protokoll und der apt-Verlauf, die Debian und Ubuntu abdecken.

Die eigenen Protokolle Ihrer Anwendung bleiben davon unberührt – die JSON- und Textformate sind unabhängig von der Distribution, auf der sie liegen. Und wenn Sie nicht sicher sind, als was ein Ordner erkannt wird, zeigt „Verbindung testen“ an, was gefunden wurde, bevor Sie sich festlegen.

Bringen Sie Anwendungsprotokolle dorthin, wo die Arbeit stattfindet.

Beginnen Sie mit Free: alle Connector-Typen, 2 Datenquellen und 1 Network Agent. Erweitern Sie die Plan-Kontingente, wenn Ihr Bedarf wächst.