Als je meerdere logbestanden tegelijk wilt analyseren of monitoren, zeker verspreid over meerdere machines, dan is een logbeheertool essentieel. Maar in heel wat omstandigheden is dat net wat overkill en wil je gewoon even snel door meerdere logbestanden tegelijk kunnen greppen. Het programma Chip, geschreven door Yahoo!-werknemer Kenny Katzgrau, komt daarbij van pas. Het combineert de mogelijkheden van de programma's swatch, tee, tail, grep, ccze en mail.

Het 'Zwitserse zakmes' Chip kan overweg met meerdere logbestanden tegelijk, zelfs op remote machines (via ssh). Dat is handig als je bijvoorbeeld meerdere machines achter een load balancer hebt opgesteld en op al deze machines hetzelfde logbestand wil monitoren of analyseren. Dankzij Chip zijn al die logs eenvoudig in één stream te bundelen, waarop je dan kunt greppen of die je door elkaar heen live kunt monitoren.

Voorbeelden

Enkele voorbeelden van wat er zoal mogelijk is, vind je op de GitHub-pagina van Chip. Het volgende voorbeeld is representatief:

$ chip -f -m0='HTTP 500' -s0='red' [email protected] -L0=servererrors.log -m1='.*' -s1 [email protected]:/var/log/apache2/error.log [email protected]:/var/log/apache2/error.log

Hiermee geef je aan dat je op interne serverfouten zoekt (statuscode HTTP 500) in het logbestand /var/log/apache2/error.log op www1.example.com en www2.example.com. Deze fouten filter je eruit en log je dan naar het bestand servererrors.log. Tegelijk mail je met dit voorbeeld het gefilterde resultaat ook naar [email protected] Daarnaast duid je het in het terminalvenster in het rood aan, terwijl de rest van de logbestanden ook in het terminalvenster getoond wordt maar dan in de standaardkleur.

Tips

Als je vaak Chip uitvoert met remote servers als argumenten, dan is het beveiligingsadvies om inloggen via een publieke sleutel in te stellen. Het beste is om dat te doen zónder passphrase of juist met een ssh keychain, wat nog veiliger is. Wil een Chip-commando om een onbekende reden niet lukken, gebruik dan de optie -d waardoor het programma in detail toont wat het allemaal doet. Fouten zijn zo op te sporen.

Tot slot is er met de optie --exec0 een specifiek commando uit te voeren bij elke match. Hiermee kun je bijvoorbeeld tijdelijke bestanden verwijderen wanneer Chip de melding 'out of space' in een logbestand ziet. Meer informatie over Chip krijg je te zien met het commando chip --help.