Naar de inhoud

Command Line Tool met AI

Logfile samenvatting

Freelance Freelance developer 2026

Logfiles. Zeer belangrijke bestanden die informatie bevatten over allerlei processen die op een server draaien. Informatie kan zijn dat iemand een website bezocht heeft (informatie), maar ook dat er een fout is opgetreden (waarschuwing of error). Het is zaak om alle waarschuwingen en foutmeldingen in de gaten te houden en waar nodig op in te grijpen. Alleen, die logfiles bevatten heel veel data. Zo veel, dat ik als freelancer erg veel tijd kwijt zou zijn als ik dit allemaal handmatig moet doen. Ik wil echter dat de websites en applicaties die ik maak optimaal presteren en dus wil ik zo snel mogelijk in grijpen als er wat mis dreigt te gaan en ook de problemen die individuele personen ondervinden graag oplossen.

Om dit voor elkaar te krijgen, heb ik een PHP-applicatie gemaakt die via de 'Command Line' werkt. Symfony biedt mij de mogelijkheid om een applicatie te bouwen die niet in de browser draait, maar toch een soort van grafische interface heeft: een TUI. TUI staat voor Terminal User Interface en zorgt er voor dat ik op eenvoudige wijze er voor kan zorgen dat ik servers toe kan voegen aan deze applicatie, logfiles kan selecteren en de verbindingen kan testen.

De applicatie die ik gemaakt heb, haalt de informatie van de gekoppelde servers op en verwerkt de logfiles in een tijdelijke database, waarbij alleen nieuwe meldingen verwerkt worden. Van alle regels wordt bepaald of het informatieve regels zijn, of dat het gaat om een foutmelding waar ik iets mee moet. Foutmeldingen worden gegroepeerd en vervolgens wordt met behulp van AI een samenvatting gemaakt en naar mij gemaild. Die koppeling met AI is gerealiseerd met behulp van de Symfony AI bundle. Als platform heb ik Anthropic (Claude.ai) gebruikt.

Deze applicatie heb ik gebouwd met behulp van Claude Code. Hierdoor heb ik deze applicatie in een zeer korte tijd kunnen ontwikkelen. Omdat het hier een applicatie betreft die ik zelf gebruik en niet voor een klant of algemene internetbezoeker bedoeld is, kon ik de interface eenvoudig houden en heb ik er voor gekozen om een TUI te maken. Deze is op bepaalde punten nog voor verbetering vatbaar, maar ik kan nu eenvoudig servers en logfiles toevoegen zonder dat ik in configuratiebestanden moet gaan werken. De applicatie draait op dit moment op een Raspberry Pi en mailt drie keer per dag een overzicht van de waarschuwingen en fouten die zijn opgetreden. Er wordt gekeken naar de Apache access- en error-logs, de ModSecurity logfiles en de Symfony applicatie logfiles die ik in mijn websites en webapplicaties gebruik om te zien of er problemen optreden die ik zelf nog niet heb ondervonden.

De samenvatting die door AI gemaakt wordt, maakt gebruik van een API-koppeling met Anthropic. Het model en de effort zijn instelbaar in de TUI. Op dit moment is dat Haiku 5.5 met medium effort. Dit zorgt er voor dat elke samenvatting slechts een fractie van een cent kost en dus de kosten per maand erg meevallen. Mocht het nodig zijn, dan kan er in de toekomst een ander model gekozen worden of zelfs een ander platform gekoppeld worden. Met de Symfony AI bundle is het namelijk erg eenvoudig om een applicatie te koppelen met verschillende AI-platformen.

Dankzij deze applicatie en de dagelijkse mails die hier uit komen, kan ik snel ingrijpen in geval van (nieuwe) problemen. Zo kan ik mijn websites en applicaties up-to-date houden en problemen zoveel mogelijk voorkomen.

Veelgestelde vragen

Logfiles bevatten heel nuttige informatie. Zo kan ik achterhalen of er bijvoorbeeld bots actief zijn die op zoek zijn naar beveiligingsproblemen, of dat er bezoekers zijn die problemen ondervinden. Die problemen kunnen bijvoorbeeld ontstaan uit een combinatie van device browser die ik (nog) niet getest heb. Niet iedereen de problemen heeft met het bezoeken van een website laat dit weten, dus het is van groot belang zo snel mogelijk in te grijpen als er problemen dreigen te ontstaan.

Ja. Op dit moment worden alleen Apache, ModSecurity en Symfony Monolog files bekeken, maar dit is zo opgezet dat er voor alle andere mogelijke logfiles een 'parser' gemaakt kan worden. Zo wordt op dit moment al de voorbereidingen getroffen voor het bijhouden van logfiles uit MySQL (o.a. trage queries) en mail server logs.

Zeker. De Symfony AI bundle is feitelijk niet meer dan een raamwerk van functies die je in een applicatie aan kunt roepen. Door middel van de installatie van het juiste Symfony AI platform package (in mijn geval Anthropic) kan elk AI platform naar keuze gekoppeld worden. Mocht ik op een later tijdstip alsnog willen switchen dan kan dat heel eenvoudig door het installeren van een ander Symfony AI platform package. De applicatie merk hier niets van. Ook kan ik (in het geval van Anthropic, maar ook van andere aanbieders zoals Google) het model en de effort instellen om zo de juiste balans te vinden tussen kosten en output.

Binnen dit project gebruikte technieken

Apache

Apache

Apache

Apache HTTP Server is een webservice die wordt gebruikt voor het hosten van websites.

Claude

Claude

Claude

Claude.ai is een kunstmatige intelligentie-assistent (AI) en taalmodel (LLM) ontwikkeld door Anthropic.

Claude Code

Claude Code

Claude Code

Claude Code is de AI-codeeragent van Anthropic die helpt bij het ontwikkelen.

Composer

Composer

Composer

Composer is een dependency manager voor PHP. Hiermee kun je eenvoudig PHP libraries installeren en updaten.

Doctrine ORM

Doctrine ORM

Doctrine ORM

Object-relational mapper (ORM) voor PHP. Maak het mogelijk database modellen eenvoudig om te zetten in entiteiten zonder query's te schrijven.

Linux

Linux

Linux

Het open source besturingssysteem waar veel webservers op draaien.

PHP

PHP

PHP

PHP. De programmeertaal achter heel veel websites, applicaties en webshops.

PhpStorm

PhpStorm

PhpStorm

Geavanceerde op PHP gerichte IDE van JetBrains. Biedt uitgebreide ondersteuning voor de meeste recente versies van PHP maar ook frameworks als Symfony en Laravel.

Symfony

Symfony

Symfony

Symfony is een van de meest populaire PHP frameworks voor developers.

Ook zo'n project?

Benieuwd wat ik voor jouw website, webshop of maatwerkapplicatie kan betekenen? Neem gerust contact met mij op.