Command Line Tool met AI
Logfile samenvatting
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
Binnen dit project gebruikte technieken
Ook zo'n project?
Benieuwd wat ik voor jouw website, webshop of maatwerkapplicatie kan betekenen? Neem gerust contact met mij op.