11 Open Source Log samlare för centraliserad loggning

posted in: Articles | 0

skillnaden mellan mediokra produkter och bra produkter loggning. Lär dig varför det är så, och hur man knyter allt ihop.

precis som säkerhet är loggning en annan nyckelkomponent i webbapplikationer (eller applikationer i allmänhet) som blir åsidosatta på grund av gamla vanor och oförmågan att se framåt. Vad många ser som värdelösa reams av digital tejp är kraftfulla verktyg för att titta inuti dina program, korrigera fel, förbättra svaga områden, och glädja kunder.,

innan vi går vidare till centraliserad loggning, låt oss först titta på varför loggning är så stor.

två typer (nivåer) av loggning

datorer är deterministiska system, utom när de inte är det.

som professionell utvecklare har jag stött på många fall där appens observerade beteende förvirrade alla i dagar i slutet, men nyckeln var alltid i loggarna. Varje mjukvara vi kör producerar (eller åtminstone bör generera) loggar, som berättar vad det gick igenom när den problematiska situationen inträffade.,

nu loggning, som jag ser det, är av två typer: auto-genererade loggar och programmerare-genererade loggar. Observera att detta inte är någon lärobok differentiering, och citera mig på denna terminologi kommer att landa dig i trubbel.

bilden ovan visar vad som kan betecknas som en automatiskt genererad logg.

i det här specifika fallet är det ett WordPress-system som loggar ett oväntat tillstånd (ett meddelande) när du kör en PHP-kod., Loggar som dessa genereras hela tiden outtröttligt-av databasverktyg som MySQL, webbservrar som Apache, programmeringsspråk och miljöer, mobila enheter och till och med operativsystem.

dessa innehåller sällan mycket värde, och programmerare bryr sig inte ens om att titta på dem, förutom när något går fel. Vid sådana tillfällen gräver de djupt in i stockarna och försöker förstå vad som gick fel.

men automatiskt genererade loggar kan bara hjälpa till så mycket., Om flera personer har administratörsåtkomst till en webbplats, till exempel, och en av dem råkar ta bort en viktig information, är det omöjligt att upptäcka den skyldige med hjälp av automatiskt genererade loggar. Ur systemens perspektiv bundet ihop som ansökan var det bara en annan dag i jobbet-någon hade den nödvändiga myndigheten att utföra en uppgift, och så utförde systemet det.

vad som behövs här är ett extra lager av explicit, omfattande loggning som skapar spår för den mänskliga sidan av saker., Det här är vad jag kallar programmerare-genererade loggar, och de utgör ryggraden i känsliga branscher som bank. Här är ett exempel på hur ett sådant loggningssystem kan se ut:

källa: joomlatools.com

loggning är effekt

så, med tanke på dessa två typer av loggar i ett system, så här kan du utnyttja dem och rampa upp effekten.

vistas före kunden

”Customer delight” har kommit att bli känd som en värdelös marknadsföring gimmick, men tack vare loggning, det kan göras mycket verklig., Jag känner till digitala produkter som övervakar sina loggar som en hök, och så snart en kund bryter något på sidan kan de ringa kunden och erbjuda sig att hjälpa.

tänk bara på det-inom några sekunder efter att ha fått ett fult fel får du ett samtal från företaget som säger: ”Hej, jag förstår att du försökte lägga till det här objektet i vagnen, men det fortsatte att dö. Är det okej för mig att lägga till den här gången och slutföra ordern för dig?”

nöjd kund? Du satsar!,

lagmoral och produktivitet

som jag sa tidigare, när buggar går untracked under lång tid, blir utvecklarna i ditt lag frustrerade och förlorar mer och mer tid att jaga sina svansar. Och här är saken med felsökning-det kräver ett nytt, nyfiken sinne från början. Om en WTF trodde så mycket som kommer in i din hjärna, går hela processen för en kasta.

och vad gör felsökning svårt? Enligt min erfarenhet, brist på loggning, eller bristen på kunskap om loggning., Till att börja med, du kanske inte inser att din favorit databas är också bara en annan mjukvara som genererar loggar, eller om du inte loggar i stor utsträckning i din ansökan (se programmerare genererade loggar ovan).

Jag minns särskilt ett fall där programmet gick svarar inte, och ingen visste varför. Några dagar senare var den skyldige disken i/O-gränsen uppnådd på grund av överdriven trafik. Eftersom ingen brydde sig om att titta där, ingen kunde räkna ut varför.,

revisionsspår

Tänk om två år nerför linjen din kund säger att alla dessa order inte placerades av dem utan någon hacker?

vilket argument skulle behöva underhålla eller avvisa deras begäran? Om du har omfattande loggning (IP-adress, datum och tid, kreditkort, etc.), då kommer du att kunna analysera allt detta och nå ett beslut. Bra eller dåligt, det kommer åtminstone att ha någon objektiv grund, snarare än att likna ett skott i mörkret.

källa: signatur-läser.,com

detsamma gäller om du kommer under någon reglerande lins eller är skyldig att genomgå en tredje part revision som en del av ett nytt, viktigt projekt. Att inte ha ett robust loggningssystem visar dig i ett dåligt ljus.

förbättra befintliga system

hur går det för dig att förbättra det nuvarande systemet?

ska du bara kasta mer RAM och CPU-trådar på den? Vad händer om din app är långsam trots tillräckligt med resurser? Var är flaskhalsen? Ofta är loggning svaret.,

till exempel har alla större databassystem en funktion för att logga långsamma frågor.

källa: speedawarenessmonth.com

om du besöker den långsamma frågeloggen regelbundet får du veta vilka operationer och tar mest tid, och därmed avslöja små men viktiga områden som behöver arbete. Ofta fungerar en liten förändring som denna bättre än att fördubbla maskinvarukapaciteten.

Det går inte att räkna hur många sätt ett bra loggningssystem hjälper dig., Kanske är det bästa argumentet att det är en automatiserad aktivitet som en gång satt upp, inte behöver någon övervakning,och kommer att rädda dig från ruin someday.

med det ur vägen, låt oss titta på några av de fantastiska Open Source Log samlare (unified logging tools) där ute. Bara om du undrar, vi täckte kommersiella molnbaserade loggningsverktyg i ett tidigare inlägg.

Graylog

Graylog är ett av de ledande namnen i branschen när det gäller branschkvalitetsloggning och visualiseringsfunktioner., Det är också unikt genom att det skannar dina insamlade loggar för tecken på säkerhetsproblem och meddelar dig direkt.

medan Graylog är ett centraliserat loggningssystem har det den flexibilitet du behöver, så att du kan anpassa varningar, instrumentpaneler och mycket mer.

Greylog är öppen källkod, men det finns en företagsplan om dina behov är komplexa.

med klienter som SAP, Cisco och LinkedIn på sin roster är Graylog ett verktyg som du kan lita på med dina ögon stängda.,

Logstash

Om du är en fläkt eller användare av den elastiska stapeln är Logstash värt att kolla in (ÄLGSTACKEN är redan en sak, om du inte visste). Liksom andra loggningsverktyg på den här listan, Logstash om helt öppen källkod, så att du frihet att distribuera och använda som du vill.

men inte vilseledas: Logstash är ett moderskepp med kapacitet långt uppväger någon ödmjuk loggningsverktyg. Det kan samla stora mängder data från flera plattformar, kan du definiera och köra dina egna Dataledningar, vettigt av ostrukturerade log dumps, och mer.,

naturligtvis är den enda begränsningen att den bara fungerar med den elastiska uppsättningen produkter, men om du börjar och vill skala snart är Logstash vägen att gå!

flytande

bland centraliserade loggningsverktyg som fungerar som ett mellanlager för dataintag är Flutend en första bland jämlikar. Med ett utmärkt bibliotek med plugins kan Fluentd fånga data från praktiskt taget alla produktionssystem, knäda det i önskad struktur, bygga en anpassad rörledning och mata den till din favorit analytics-plattform, vare sig det är MongoDB eller Elasticsearch.,

Fluentd är byggd på Ruby, är helt öppen källkod, och är mycket populär på grund av dess flexibilitet och modularitet.

med stora företag som Microsoft, Atlassian och Twilio använder plattformen har Fluentd inget att bevisa.

Flume

om verkligen, riktigt stora datamängder är din utmaning, och du så småningom vill mata allt till något som Hadoop, är Flume ett av de bästa valen runt. Det är ett” rent ” open source-projekt, i den meningen att det upprätthålls av vår älskade Apache Foundation, vilket innebär att det inte finns någon företagsplan.,

det här kan eller kanske inte vara det du letar efter.

källa: beyondcoder.com

skrivet i Java (som fortsätter att förvåna mig när det gäller banbrytande teknik) är flumes källkod helt öppen. Flume är bäst för dig om du letar efter en distribuerad, feltolerant dataintagsplattform för tunga saker.,

Octopussy

Jag ger det noll av tio för produktnamngivning, men Octopussy kan vara ett bra val om dina behov är enkla, och du undrar om vad allt krångel relaterade till rörledningar, förtäring, aggregering etc., handlar om.

enligt min mening täcker Octopussy behoven hos de flesta produkterna där ute (beräknad statistik är värdelös, men om jag var tvungen att gissa, skulle jag säga att det tar hand om 80% av användningsfall i den verkliga världen).

Octopussy har inte en stor UI (se här) alls, men det gör upp för det när det gäller hastighet och brist på svälla., Källan är tillgänglig på GitHub, som förväntat, och jag tycker att det är värt ett seriöst utseende.

Rsyslog

rsyslog står för ett raket-snabbt system för loggbehandling.

det är ett verktyg för Unix-liknande operativsystem. I tekniska termer, det är ett meddelande router med dynamiskt belastningsbara ingångar och utgångar och är mycket konfigurerbar.

det kan ta indata från flera datakällor, omvandla den och skicka utdata till flera destinationer. Med Rsyslog, du kan leverera 1 miljon meddelanden per sekund över lokala destinationer.,

rsyslog ger också en Windows-agent som arbetar mycket nära rsyslog Linux-agenten. Den används för integration mellan de två miljöerna. Den här Windows-agenten används för att vidarebefordra händelseloggarna i Windows och setup file monitor-tjänsten.

nedan finns andra funktioner som erbjuds av Rsyslog:

  • flexibla konfigurationer
  • ger multi-threading kapacitet
  • loggfil manipulation skydd med hjälp av loggsignaturer och kryptering.,
  • Stöder stora dataplattformar
  • ger innehållsbaserade filtreringsfunktioner

LOGalyze

LOGalyze var en kommersiell produkt som nyligen gjordes öppen källkod. Även om jag inte kunde projektet på GitHub, gör de en Windows installer och all källkod nedladdningsbar.

om du är inriktad på en diskussionsgrupp kan du hitta information om en e-postlista här.

LOGalyze är ett relativt flexibelt och kraftfullt erbjudande som kommer att fungera bra för enkelsystemsutplaceringar som försöker kombinera loggning från kända källor som Postfix, Apache, etc., och producerar utdata i CSV, PDF, HTML eller liknande format. Ja, det gör inte allt, men eftersom det var en kommersiell produkt på en gång, det gör så ganska bra.

LogPacker

När det gäller att välja ett verktyg för jobbet har jag två kriterier: det måste fokuseras och det måste backas upp av en aktiv affärsmodell. Problemet med programvara med öppen källkod är i allmänhet att några månader/år på vägen är risken för stagnation eller död hög. Det finns ingen räkning på hur många loggverktyg som lanserades med gusto, bara för att hittas nu i GitHub kyrkogården.,

mätt med denna måttstock är LogPacker en favorit för mig.

som du kan berätta från skärmdumpen handlar LogPacker om loggar och inget annat. Deras push är definitivt mot sina molnerbjudanden, men du är mer än välkommen att ladda ner och installera den på dina servrar (GitHub sida här).

klustring och aggregering är tillgängliga för dem som vill använda den på en icke-trivial skala, och företagsplaner är tillgängliga som vill arbeta med API eller behöver större distributioner., En uppfriskande minimalistisk (fokuserad, men inte funktionen-Dålig) ta på loggning förvaltning, enligt min mening!

Logwatch

Jag är säker på att det finns de bland oss som inte vill ha all ceremoni i samband med ett ”enhetligt” ”centraliserat” loggningssystem. Deras verksamhet kommer från enskilda servrar, och de letar efter något snabbt och effektivt för att titta på sina loggfiler. Hälsa på Logwatch.

en gång installerat, LogWatch kan skanna dina systemloggar och skapa en rapport av den typ du vill., Det är en något daterad mjukvara (läs ”pålitlig”), dock, och skrevs i Perl. Så, du behöver Perl 5.6 + på din server för att köra den. Jag har inga skärmdumpar att dela eftersom det är en rent kommandorad, daemoniserad process.

om du är en CLI-knarkare och har en kärlek till det gamla skolans sätt att göra saker, kommer du att älska Logwatch!

Syslog-ng

Syslog-ng-verktyget utvecklades som ett sätt att bearbeta Syslog (ett etablerat klient-serverprotokoll för systemloggning) datafiler i realtid., Med tiden har det dock kommit att stödja andra dataformat: ostrukturerad, SQL och NoSQL. Hur Syslog protokollet fungerar sammanfattas ganska mycket snyggt i följande illustration.

syslog-ng är ett produktionskvalitet, pålitligt logginsamlings-och klassificeringsverktyg som skrevs i C och har länge varit ett etablerat namn i branschen. Det bästa är dess töjbarhet, så att du kan skriva plugins i C, Python, Java, Lua eller Perl.

lnav

kort för (Log Navigator), lnav är en ren terminal verktyg som fungerar på en enda maskin, enda katalog., Det är för dem som har sin loggning enhetlig i en enda katalog eller vill filtrera och visa realtidsloggar från en enda källa.

om du trodde att lnav inte var något annat än förhärligat tailf |grep skulle du ha fel. Det finns flera funktioner som gör att du blir kär i det: time-series view, pretty-printing (för JSON och andra format), färgkodade loggkällor, kraftfulla filter, förmåga att förstå flera loggningsprotokoll och mer.,

det är bara det att du ibland vill ha ett noll-krångel, nollinställning, kanske-tillfälligt loggningslager, och lnav passar räkningen perfekt!

slutsats

och där har du det!

det var en svår lista att sammanställa, för att vara uppriktig, eftersom loggning inte är lika populär som innehållshantering, och alla mindshare verkar ha gripits av tre eller fyra verktyg. Ändå är allas behov olika, och jag har försökt att täcka dem i stor utsträckning.

från silly command-line, no-setup-verktyg till fullblåsta datajuggernauts, det är allt här! Har jag missat nåt? Självklart gjorde jag det!

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *