Webserverlogboeken-logo

nginx, Apache, IIS Nieuw

Verbinden Webserverlogboeken naar Excel, Sheets en AI

Je toegangslogboek is al een tabel — begin er query's op uit te voeren. Nginx, Apache, Caddy en IIS schrijven elk verzoek naar de schijf in een formaat dat al tientallen jaren stabiel is — en vervolgens wordt het bijna door niemand meer opgevraagd. Richt Query Streams op de logmap en die bestanden worden SQL-tabellen: statuscodes, responstijden, client-IP's, paden, user agents. Rotaties en .gz Inclusief archieven, geen logboekverzender ertussen.

1verbinding
0inkomende poorten
alleen-lezenafgedwongen
4 weblogformaten nginx · Apache · Caddy · IIS Inclusief rotaties en .gz-archieven. Alleen-lezen · niets geïnstalleerd op de server
Het grote idee

Een logmap wordt een tabel die je kunt groeperen en samenvoegen.

Query Streams leest de bestanden die uw webserver al schrijft, behoudt het formaat en geeft u getypte kolommen. Geen agent op de server, geen verzendpipeline, geen index om te onderhouden — en een regel die de parser niet kan lezen, wordt als een rij met een reden bewaard in plaats van stilzwijgend te worden verwijderd.

Logmapop de host
toegang.logCaddy
access.log.2.gznginx
u_ex260909.logIIS

Rotaties, gecomprimeerde archieven en opnieuw ingelezen bestanden — verwerkt

slow-errors.sqlSQL
SELECT pad,
       graaf(*) AS treffers,
       ronde(gemiddelde(duur_seconden) * 1000) AS mevrouw
VAN   fileset.events
WAAR  status >= 500
GROEP DOOR pad
ORDER BY hits DESC
Resultaat5xx via pad
padhitsmevrouw
/api/export4128,140
/api/rapport963,502
/checkout311,208
/zoekopdracht7944

Voeg het in dezelfde query toe aan uw applicatiedatabase.

Bestanden die uw server al schrijft, nu een tabel waarover u rapporten kunt genereren.

Servers

Vier servers, vier formaten, geen configuratie

Elke kaart vermeldt de exacte bestanden die Query Streams op die server leest en waar ze zich bevinden. U hoeft uw logboekconfiguratie niet aan te passen om dit te laten werken; het standaardformaat is het ondersteunde formaat.

Ondersteunde webserverlogboeken

4 formaten · 4 servers
nginxToegang en fout
  • toegang.log het standaard gecombineerde formaat
  • fout.log niveau, pid, verbinding en bericht
  • Gebruikelijk /var/log/nginx
  • Bijlagen; genummerde rotaties gevolgd
Apache HTTP-serverToegang
  • toegangs_log gecombineerde en gangbare formaten
  • Eén parser is geschikt voor Apache en nginx — de toegangsmethode is hetzelfde.
  • /var/log/apache2, of httpd op RHEL
  • Bijlagen; genummerde rotaties gevolgd
CaddyCaddy 2 JSON
  • toegang.log één JSON-object per verzoek
  • De naam van de TLS-server, de versie en de mogelijkheid tot sessiehervatting zijn inbegrepen.
  • Reactieduur tot op de microseconde nauwkeurig.
  • Rollen naar toegang-<tijdstempel>.log.gz; elk lid las het één keer voor
Microsoft IISW3C uitgebreid
  • u_ex*.log W3C uitgebreid formaat
  • De #Velden: De header bepaalt de kolommen, dus uw veldselectie wordt gevolgd.
  • C:\inetpub\logs\LogFiles\W3SVC<site>
  • Elke dag een nieuw, gedateerd bestand, dat nooit wordt hernoemd.
Meer op komstDit is het begin, niet het eindpunt.

Met elke nieuwe Agent-release worden nieuwe logformaten voor webservers en proxy's toegevoegd. Omdat Agents zichzelf automatisch bijwerken, verschijnt een later toegevoegd formaat in uw connector zonder dat iemand een server hoeft aan te raken.

Alle vier de parsers zijn gebouwd en getest met echte vastgelegde logbestanden, inclusief rotaties en gecomprimeerde archieven — het Caddy-profiel met logbestanden die rechtstreeks van onze eigen productiehost afkomstig waren.
Elke regio

Toegangslogboeken vanaf elke rand, lees waar ze landen

Een verzoek bereikt niet altijd twee keer hetzelfde continent. Uw edge-server bevindt zich in de ene regio, uw origin-server in een andere, en er draait nog een ouder systeem op kantoor. Elke locatie heeft een Network Agent die de logbestanden leest waar ze binnenkomen en verbinding maakt met Query Streams. Voor uw firewall is dit een gewone uitgaande verbinding: niets om te openen, geen VPN om op te zetten en geen log shipper om in leven te houden.

eu-west Caddy aan de rand, JSON-toegangslogboeken die op tijdstempel worden bijgewerkt belt uit
ons-oost nginx origin erachter, logrotate en .gz archieven belt uit
Hoofdkantoor Een IIS-server die nog steeds één interne applicatie host. belt uit

Drie uitgaande verbindingen, één plek om ze op te vragen — geen inkomende poort, geen VPN, geen firewallwijziging

Eén agent per locatie

Een agent bestrijkt een hele locatie in plaats van een enkel logbestand, en binnen één locatie is een mappenstructuur met veel hosts één enkele connector — elke rij bevat zijn eigen gegevens. siteDe gratis versie ondersteunt één agent, terwijl de hogere versies er meer ondersteunen.

1 regio = 1 agent = veel hosts

Niets om te openen

De agent maakt één versleutelde uitgaande verbinding, en zowel het uitgaande verzoek als de teruggestuurde gegevens gaan via die verbinding. Geen inkomende poort, geen VPN, geen firewallwijziging die aangevraagd hoeft te worden — en niets dat uw logbestanden doorstuurt naar een derde partij.

één verbinding, beide richtingen

Eén zoekopdracht in meerdere regio's

Elke bron in een gefedereerde query Het benoemt zijn eigen agent, waardoor een enkele instructie de rand in de ene regio naast de oorsprong in een andere kan plaatsen, of beide kan koppelen aan uw applicatiedatabase. Inbegrepen in de Business- en Enterprise-versies.

2 regio's → 1 resultaatset

Ze houden zichzelf op de hoogte.

Agents werken zichzelf bij, waardoor een logformaat dat in een latere release is toegevoegd, elke regio bereikt zonder dat u zelf een implementatie hoeft uit te voeren. Dat is de reden waarom de bovenstaande lijst een uitgangspunt is in plaats van een vaste lijst.

Nieuwe formaten verschijnen met de Agent.

Het moeilijke gedeelte

Door de rotatie is dit niet zomaar een CSV-import.

Weblogs staan niet stil. Ze worden voortdurend geroteerd, hernoemd, gecomprimeerd en opnieuw aangemaakt. Het correct verwerken hiervan – zonder hiaten en zonder een regel dubbel te tellen – is het grootste deel van het werk.

Genummerde rotaties

De klassieke logaritmische rotatie: het bestand van vandaag behoudt zijn naam en het bestand van gisteren schuift een nummer omlaag. Query Streams volgt de inhoud, niet de naam.

access.log → access.log.1 → access.log.2.gz

Gedateerde bestandsnamen

IIS hernoemt nooit bestanden; het opent elke dag een nieuw bestand met de datum in de naam. Oude bestanden blijven precies zoals ze waren, dus die worden eenmaal gelezen en vervolgens met rust gelaten.

u_ex260909.log · u_ex260910.log

Gecomprimeerde archieven

Een geroteerd logbestand wordt meestal gecomprimeerd met gzip. Query Streams leest... .gz De onderdelen blijven op hun plaats — u hoeft niets eerst uit te pakken of te verplaatsen.

access-2026-09-08T03-00-00.000.log.gz

Niets telde dubbel.

Elk bestand wordt geïdentificeerd aan de hand van de eerste 4 KB, waardoor een hernoemd bestand als hetzelfde bestand wordt herkend. Een doorlopend venster detecteert overlappingen wanneer een schrijver het laatste deel van het bestand opnieuw afspeelt.

4 KB prefix-hash · venster van 20.000 records

Het schema

De kolommen die je daadwerkelijk krijgt

Geen tekstblok met een tijdstempel ernaast. Elk formaat wordt omgezet in getypte kolommen waarop u direct kunt filteren, groeperen en aggregeren.

nginx- en Apache-logo's
Gecombineerd toegangslogboeknginx · Apache
client_ipauthmethodepadhttp_versiestatusbytesverwijzertussenpersoon
nginx-logo
Foutlogboeknginx
niveaupidgetijdeverbindingbericht
Caddy-logo
JSON-toegangslogboekCaddy 2
client_ipextern_ipexterne_poortmethodepadhttp_versiestatusbytesbytes_gelezenduur_secondentls_server_nametls_versietls_resumedgebruikers-IDniveauloggerberichtgegevens
Microsoft IIS-logo
W3C uitgebreid logboekMicrosoft IIS
s_ipc_ipsportcs_methodecs_uri_stemcs_uri_querycs_gebruikersnaamcs_user_agentsc_statussc_substatussc_win32_statustijd nodig

Elke rij bevat ook event_time en siteEen enkele query kan dus meerdere hosts omvatten en er is nooit twijfel over het bestand waar de query vandaan komt.

Eén verbinding, elk oppervlak

Waar uw webserverloggegevens naartoe kunnen worden gestuurd

Logbestanden zijn geen doodlopende weg. Verbind de map één keer en dezelfde alleen-lezen verbinding voedt alle oppervlakken die Query Streams ondersteunt — geen tweede configuratie, geen tweede kopie van de gegevens en geen verschil in behandeling ten opzichte van een databaseconnector.

Ondersteund

Webserverlogboeken naar Excel

Microsoft Excel · Excel-invoegtoepassing

Haal live webserverlogresultaten rechtstreeks op in een werkblad en vernieuw ze wanneer nodig — in Excel voor desktop, Excel Online en Microsoft 365.

Hoe Excel werkt
Ondersteund

Webserverlogboeken naar Google Sheets

Sheets-add-on

Voer vanuit de zijbalk een opgeslagen query uit op het webserverlogboek en sleep de rijen naar het spreadsheet. Gedeelde medewerkers kunnen het spreadsheet zelf vernieuwen.

Hoe Google Sheets werkt
Ondersteund

Webserverlogboeken MCP-server

Claude, Cursor en MCP-clients · MCP-server

Geef een AI-assistent alleen-leestoegang tot het webserverlogboek met het schema dat nodig is om de juiste SQL-query's te schrijven — geen inloggegevens in de chat.

Hoe MCP werkt
Ondersteund

Webserverlogboeken REST API

HTTP-eindpunt

Publiceer een query voor webserverlogboeken als een geauthenticeerd JSON-eindpunt dat door elke applicatie kan worden aangeroepen, met een OpenAPI 3.1-specificatie en kant-en-klare collecties voor Postman, Insomnia en Hoppscotch. Er wordt geen databasepoort geopend.

Hoe een REST API werkt
Ondersteund

Webserverlogboeken naar Airtable

Automatiseringsplatform

Synchroniseer webserverlogboeken volgens een schema met een Airtable-database, of haal ze op vanuit een Airtable-automatiseringsscript.

Hoe Airtable werkt
Ondersteund

Webserverlogboeken naar Baserow

Automatiseringsplatform

Vul een Baserow-tabel met gegevens uit webserverlogboeken via het REST-eindpunt — zowel op een zelfgehoste als een Baserow-cloudomgeving.

Hoe Baserow werkt
Ondersteund

Webserverlogboeken naar SeaTable

Automatiseringsplatform

Houd een SeaTable-database actueel met loggegevens van de webserver zonder een bestand te exporteren of de database openbaar te maken.

Hoe werkt SeaTable?
Ondersteund

Webserverlogboeken naar Smartsheet

Automatiseringsplatform

Stuur de logresultaten van de webserver door naar een Smartsheet-tabel, zodat plannen en rapporten rechtstreeks uit het bronsysteem worden gelezen en niet uit de export van vorige week.

Hoe Smartsheet werkt
Ondersteund

Webserverlogboeken naar Anvil

Anvil Works · App-platform

Ondersteun een Anvil Python-app met webserverlogboeken via het REST-eindpunt in plaats van databasegegevens in de app in te sluiten.

Hoe werkt Anvil?
Ondersteund

Webserverlogboeken naar Power BI

Power Query M

Plak de gegenereerde Power Query M in de geavanceerde editor van Power BI en het rapport leest live webserverlogresultaten via HTTPS — zonder ODBC-stuurprogramma en zonder geopende databasepoort.

Hoe Power BI werkt
Ondersteund

Webserverlogboeken, waarschuwingen en rapporten

Slack · Discord · E-mail · Webhook

Plan een query voor het loggen van een webserver in en laat de resultaten naar Slack, Discord, e-mail of een ondertekende webhook verzenden. Of wacht met het verzenden van het bericht totdat een bepaald aantal regels, een drempelwaarde of een percentageverandering de door u ingestelde grens overschrijdt.

Hoe waarschuwingen en rapporten werken
De kaart met waarschuwingen is de moeite waard om nader te bekijken voor logboeken: een geplande query op basis van uw 5xx-teller vereist geen aanwezigheid van een gebruiker, waardoor een piek automatisch naar Slack wordt verzonden. Stapsgewijze handleidingen voor specifieke logboeken zijn nog niet beschikbaar; de gelinkte pagina's beschrijven hoe elk onderdeel werkt.

Wat we bewust niet lezen

Een productietoegangslogboek bevat meer informatie dan je wellicht in een rapportagetabel wilt weergeven. Caddy registreert in JSON-formaat volledige headerkaarten van verzoeken en antwoorden, en deze bevatten doorgaans sessiecookies en bearer-tokens. Het Caddy-profiel sluit deze gegevens uit. verzoek.headers en resp_headers Door middel van een declaratie — niet via een filter dat je moet inschakelen, en ook niet achteraf. Die velden worden nooit verwerkt, dus ze komen nooit in een tabel, exportbestand of spreadsheet terecht.

De rest van het ontwerp volgt hetzelfde principe. De agent maakt verbinding met de server en leest bestanden; er wordt niets op de webserver geïnstalleerd, er wordt niets naar de server teruggeschreven en de toegang is alleen-lezen.

Hoe het werkt

Drie stappen, en er wordt niets op de webserver geïnstalleerd.

01

Wijs naar de logmap

Geef een Query Streams Agent leesrechten tot de map waarnaar uw server al logt. /var/log/nginx, /var/log/caddy, een IIS Logbestanden map, of een gedeelde map waarmee je ze synchroniseert.

02

Het herkent het formaat.

Query Streams identificeert het formaat aan de hand van de inhoud van de regels, niet aan de hand van de bestandsnaam. Een bestand met een ongebruikelijke naam wordt dus nog steeds gelezen, en een bestand dat niet overeenkomt met het vastgelegde formaat wordt met een reden geblokkeerd in plaats van de tabel te beschadigen.

03

Vraag het op, of voeg het samen.

Voer SQL-query's uit vanuit het portaal, importeer ze direct in Microsoft Excel of Google Sheets, of gebruik een gefedereerde query om aanvraaglogboeken te koppelen aan de gebruikers en bestellingen in uw applicatiedatabase — in één enkele instructie.

Veelgestelde vragen over webserverlogboeken

Moet ik mijn logboekinstellingen wijzigen?

Nee. Elk ondersteund formaat is het standaardformaat voor die server: het gecombineerde toegangslogboek voor nginx en Apache, het JSON-toegangslogboek voor Caddy 2 en het uitgebreide W3C-formaat voor IIS. Als u uw logboekformaat nooit hebt gewijzigd, gebruikt u al een ondersteund formaat.

IIS is het flexibele geval en wordt correct afgehandeld — de #Velden: De instructie bovenaan een W3C-bestand benoemt de kolommen, dus de velden die u in IIS Manager hebt geselecteerd, zijn de kolommen die u krijgt.

Is dit realtime?

Het is on-demand in plaats van streaming. Query Streams leest de bestanden zoals ze op de schijf staan wanneer je de query uitvoert, dus nieuwe verzoeken verschijnen zodra je server ze schrijft en het bestand wordt opgepakt — niet volgens een vast nachtelijk schema, maar ook niet live.

Als je binnen een seconde een melding wilt ontvangen zodra een verzoek binnenkomt, is een logpipeline de juiste oplossing. Wil je daarentegen een vraag stellen over het verkeer van de afgelopen weken en het antwoord in een spreadsheet ontvangen, dan is dit een stuk eenvoudiger.

Wat gebeurt er met geroteerde en gecomprimeerde logbestanden?

Ze worden gelezen. Query Streams begrijpt de drie rotatiestijlen die deze servers gebruiken: logrotate's genummerde shuffle, IIS's nieuwe-gedateerde-bestand-per-dag en Caddy's tijdgestempelde roll, en leest deze. .gz De archieven zijn opgeslagen zonder dat u ze hoeft uit te pakken.

Bestanden worden gekoppeld aan de hand van een hash van de eerste 4 KB in plaats van aan de hand van hun naam. Een geroteerd bestand wordt dus herkend als het bestand dat al eerder is verwerkt. Dit voorkomt dat een rotatie een dag overslaat of dubbel telt.

Mijn logbestanden staan op meerdere servers. Kan ik ze allemaal tegelijk opvragen?

Ja. Elke rij bevat een site kolom, zodat één query meerdere hosts kan omvatten en kan groeperen op wat u maar wilt. U kunt een agent per omgeving of per regio implementeren, en ze tonen allemaal hun mappen in dezelfde lijst.

Omdat het gewone SQL is, kun je nog een stap verder gaan en aanvraaglogboeken koppelen aan een echte database — bijvoorbeeld een piek in 500-fouten vergelijken met een implementatietabel, of trage afrekenverzoeken koppelen aan de bestellingen waartoe ze behoren.

Leest het cookies of autorisatieheaders?

Nee. Caddy's JSON-formaat is het enige van de vier dat überhaupt header-maps vastlegt, en het profiel sluit dit uit. verzoek.headers en resp_headers Omdat ze gedeclareerd zijn, worden ze nooit in een kolom geplaatst. De gecombineerde, fout- en W3C-formaten bevatten sowieso geen kopteksten.

Client-IP-adressen en gebruikersagenten worden geanalyseerd, omdat dit de kern vormt van een toegangslogboek. Behandel de resulterende tabel met dezelfde zorgvuldigheid als het logbestand waaruit deze afkomstig is.

Wat als de parser een regel niet kan lezen?

Het wordt bewaard, niet verwijderd. Een regel die niet overeenkomt met het vastgezette formaat wordt bewaard als een onbewerkte rij met een bijbehorende reden. Zo wordt een onjuist opgemaakte invoer of een onverwachte formaatwijziging zichtbaar en kun je deze opvragen, in plaats van dat het een onzichtbare hiaat in je cijfers vormt.

Uw verkeersgegevens staan al op de schijf.

Koppel een logmap en voer binnen enkele minuten uw eerste query uit. Gratis versie, geen creditcard nodig, niets hoeft op de webserver geïnstalleerd te worden.

Alleen-lezen · alleen uitgaande verbinding · uw logbestanden blijven op uw server