11 Åpen Kildekode Logg Samlere for Sentralisert Logging

posted in: Articles | 0

forskjellen mellom middelmådige produkter og gode produkter er logging. Finn ut hvorfor det er slik, og hvordan du skal binde det hele sammen.

Akkurat som sikkerhet, logging er en annen viktig del av web-programmer (eller programmer generelt) som blir satt på sidelinjen på grunn av gamle vaner og manglende evne til å se fremover. Det mange ser på som ubrukelig store mengder digital tape er kraftig verktøy for å se inn i dine programmer, rette feil, forbedre svake områder, og glede kundene.,

Før vi får på sentralisert logging, la oss først se på hvorfor logging er en så big deal.

To typer (nivåer) for å logge

Datamaskiner er deterministiske systemer, bortsett fra når de ikke er.

Som en profesjonell utbygger, har jeg kommet over mange tilfeller hvor den observerte atferden til app forbløffet alle for dager på slutten, men nøkkelen var alltid i loggene. Hvert stykke programvare som kjører vi produserer (eller i det minste burde generere) logger, som kan fortelle oss hva det var å gå gjennom når den problematiske situasjonen oppstod.,

Nå, logging, slik jeg ser det, er av to typer: auto-genererte logger og programmerer-genererte logger. Vær oppmerksom på at dette er ikke noen lærebok differensiering, og sitere meg på denne terminologien vil lande deg i trøbbel. 😉

bildet ovenfor viser hva som kan betegnes som en automatisk generert logg.

I denne konkrete saken, det er en WordPress-systemet for logging en uventet tilstand (en melding) når du kjører noen PHP-koden., Logger som disse blir generert hele tiden utrettelig — av database verktøy som MySQL, web-servere som Apache, programmeringsspråk og-miljøer, mobile enheter, og selv operativsystemer.

Disse sjelden inneholder mye verdi, og programmerere ikke engang gidder å se på dem, bortsett fra når noe går galt. I slike øyeblikk, de grave dypt inn i loggene, prøver å forstå hva som gikk galt.

Men auto-genererte logger kan hjelpe så mye., Hvis flere personer har administratortilgang til et nettsted, for eksempel, og en av dem skjer for å slette en viktig bit av informasjon, er det umulig å oppdage den skyldige med bruk av auto-genererte logger. Fra perspektivet av systemer bundet sammen som programmet, det var bare en annen dag på jobben — noen hadde den nødvendige myndighet til å utføre en oppgave, og så systemet, bar det ut.

Hva er nødvendig her er et ekstra lag av eksplisitt, omfattende logging som skaper stier for den menneskelige siden av ting., Dette er hva jeg begrepet som programmerer-genererte logger, og de danner ryggraden i sensitive bransjer som bank. Her er et eksempel på hva en slik logging ordningen kan se slik ut:

Kilde: joomlatools.com

Logging er makt

Så, gitt at disse to typer av stokkene i et system, her er hvordan du kan utnytte dem og øke effekten.

Bo i forkant av kunde

«Kunde delight» har kommet for å bli kjent som en ubrukelig markedsførings-gimmick, men takket være logging, kan det bli veldig ekte., Jeg vet av digitale produkter som overvåker sine logger som en hauk, og så snart en kunde bryter noe på siden, kan de ringe kunden og tilby å hjelpe.

Bare tenk på det — i løpet av sekunder for å få en stygg feil, kan du få en telefon fra selskapet som sier, «Hei, jeg forstår at du forsøker å legge til elementet i handlekurven, men det holdt døende. Er det greit for meg å legge til denne gangen og fullføre bestillingen for deg?»

Fornøyd kunde? Du satser!,

Team moral og produktivitet

Som jeg sa før, når bugs gå usporet for en lang tid, utviklerne i team bli frustrert og mister mer og mer tid på å jage sine haler. Og her er saken med debugging — det krever en frisk, nysgjerrig sinn fra start. Hvis en WTF tenkte så mye som går inn i hjernen din, hele prosessen går for en kaste.

Og hva gjør debugging vanskelig? I min erfaring, manglende logging, eller mangel på kunnskap om logging., For det første, du kan ikke innse at dine favoritt-databasen er også bare et stykke programvare som genererer logger, eller du ikke være logging mye i søknaden (se programmerer-generert loggene ovenfor).

jeg husker spesielt et tilfelle hvor programmet skulle reagere, og ingen visste hvorfor. Et par dager senere, den skyldige ble det disk i/O-grensen er nådd på grunn av for høy trafikk. Fordi ingen gidder å se det, ingen kunne finne ut hvorfor.,

gjennomsyn

Hva om to år ned linjen din kunde sier at alle disse ordrene ikke var plassert av dem, men noen hacker?

Hva argumentet ville ha til å underholde eller avvise forespørselen? Hvis du har omfattende logging (IP-adresse, dato og klokkeslett, kredittkort, etc.), så vil du være i stand til å analysere alt som og komme frem til en avgjørelse. God eller dårlig, det vil i det minste ha noen objektivt grunnlag, snarere enn som ligner et skudd i mørket.

Kilde: signatur-leser.,com

Det samme gjelder hvis du kommer under noen lover objektiv eller er pålagt å gjennomgå en tredjeparts revisjon som en del av en ny, viktig prosjekt. Ikke å ha en robust logging system vil vise deg i et dårlig lys.

å Forbedre eksisterende systemer

Hvordan vil du gå om å forbedre dagens system?

Skulle du bare kaste mer RAM og CPU-tråder på det? Hva hvis appen din er treg til tross for at du har nok ressurser? Der er flaskehalsen? Oftere enn ikke, logging er svaret.,

For eksempel, alle de store database-systemer har en funksjon for å logge treg spørringer.

Kilde: speedawarenessmonth.com

Hvis du besøker de sakte spørring logg regelmessig, vil du få vite hvilke operasjoner og tar mest tid, og dermed avdekke små, men viktige områder som trenger arbeid. Ofte, en liten endring som dette fungerer bedre enn det dobbelte av maskinvare kapasitet.

Det er ikke telling på hvor mange måter en god logging system hjelper deg., Kanskje det beste argumentet er at det er en automatisert aktivitet som en gang satt opp, trenger ikke noen overvåking, og vil spare deg fra å ødelegge en dag.

Med det ute av veien, la oss se på noen av de fantastiske Open Source Logg Samlere (unified logging verktøy) ut det. Bare i tilfelle du lurer på, vi gjorde dekke kommersielle cloud-basert logging verktøy i et tidligere innlegg.

Graylog

Graylog er en av de ledende navnene i bransjen når det kommer til industri-klasse logging og visualisering evner., Det er også unik i det at den søker samlet logger for tegn på sikkerhetsproblemer og varsler deg umiddelbart.

Mens Graylog er en sentralisert logging system, det har den fleksibiliteten du trenger, slik at du kan tilpasse varsler, oversikter, og mer.

Greylog er open-source, men det er en enterprise-plan hvis dine behov er komplekse.

Med klienter som SAP, Cisco, og LinkedIn på sin vaktliste, Graylog er et verktøy du kan stole på med øynene lukket.,

Logstash

Hvis du er en fan eller bruker av Elastisk stabel, Logstash er verdt å sjekke ut (ELK stack er allerede en ting, i tilfelle du ikke visste det). Som andre logging verktøy på denne listen, Logstash hvis helt åpen kildekode, slik at du friheten til å distribuere og bruke som du ønsker.

Men ikke bli lurt: Logstash er en mothership med evner langt outweighing noen ydmyke logging verktøy for. Det er i stand til å samle inn store mengder data fra flere plattformer, gir deg mulighet til å definere og utføre dine egne data rørledninger, fornuftig av ustrukturerte logg dumper og mye mer.,

selvfølgelig, den eneste begrensningen er at det fungerer med Elastisk suite av produkter, men hvis du starter og som ønsker å trappe snart, Logstash er veien å gå!

Fluentd

Blant sentralisert logging verktøy som fungerer som en middels lag for data inntak, Flutend er en første blant likemenn. Med en utmerket bibliotek av plugins, Fluentd er i stand til å fange opp data fra nesten alle production system, kna den til den ønskede struktur, bygge en tilpasset rørledning, og mate den til din favoritt analytics-plattformen, være det MongoDB eller Elasticsearch.,

Fluentd er bygget på Ruby, er helt åpen kildekode, og er mye populær på grunn av sin fleksibilitet og fleksibilitet.

Med store selskaper som Microsoft, Atlassian, og Twilio bruke plattformen, Fluentd har ingenting å bevise. 🙂

Flume

Hvis du virkelig, virkelig store datasett er din utfordring, og du til slutt ønsker å mate alt inn i noe som Hadoop, Flume er en av de beste valgene rundt. Det er en «ren» åpen kildekode-prosjekt, i den forstand at det er opprettholdt av vår kjære Apache Foundation, som betyr at det er ingen helhetlig plan.,

Dette kan eller kan ikke være det du er akkurat ute etter. 🙂

Kilde: beyondcoder.com

Skrevet i Java (som fortsetter å forbause meg når det kommer til banebrytende tech), Flume kildekode er helt åpen. Flume er best for deg hvis du leter etter et distribuert, feiltolerant data inntak plattform for heavy-duty ting.,

Octopussy

jeg gir det null av ti etter produkt navn, men Octopussy kan være et godt valg hvis dine behov er enkle, og du lurer på hva alt oppstyret knyttet til rørledninger, inntak, aggregering, etc. er alle om.

etter min mening, Octopussy dekker behovene til de fleste av produktene der ute (anslått statistikk er ubrukelig, men hvis jeg skulle gjette, ville jeg si det tar vare på 80% av tilfeller i den virkelige verden).

Octopussy ikke har et flott GRENSESNITT (se her), men det gjør opp for det om fart og mangel på bloat., Kilden er tilgjengelig på GitHub, som forventet, og jeg tror det er verdt en alvorlig titt.

Rsyslog

Rsyslog står for en rakett-rask system for å logge behandling.

Det er et verktøy for Unix-lignende operativsystemer. I tekniske termer, er det en melding ruter med dynamisk lastbare innganger og utganger, og er svært konfigurerbar.

Det kan ta innspill fra flere datakilder, bearbeider det, og sende utdata til flere destinasjoner. Med Rsyslog, kan du levere 1 million meldinger per sekund over lokale destinasjoner.,

Rsyslog gir også en Windows-agent som arbeider svært tett med Rsyslog Linux-agent. Det er brukt for integrasjon mellom to miljøer. Denne windows-agent brukes til å videresende event logger av windows og setup file monitor tjenesten.

Nedenfor, er andre funksjoner som tilbys av Rsyslog:

  • Fleksible konfigurasjoner
  • Gir multi-threading evner
  • Logg-fil manipulering beskyttelse ved hjelp av logg signaturer og kryptering.,
  • Støtter Big Data plattformer
  • Gir innhold-filtrering basert på evner

LOGalyze

LOGalyze var et kommersielt produkt som nylig ble gjort for åpen kildekode. Selv om jeg kunne ikke prosjektet på GitHub, de gjør en Windows installer og alle kildekoden nedlastbare.

Hvis du er innstilt på et fellesskap, kan du finne detaljer om en mailing-liste her.

LOGalyze er en relativt fleksibel og kraftig tilbud som vil fungere fint for enkelt-system for distribusjon som søker å kombinere logging fra kjente kilder som Postfix, Apache, etc., og produsere output i CSV -, PDF, HTML eller lignende formater. Ja, det gjør ikke alt, men siden det var et kommersielt produkt på en gang, det gjør det så ganske godt.

LogPacker

Når det gjelder å velge et verktøy for jobben, jeg har to kriterier: det må være fokusert, og det må være støttet av en aktiv forretningsmodell. Problemet med open-source programvare, generelt, er at et par måneder/år nedover veien, og sjansene for stagnasjon eller dødsfall er høye. Det er ingen oversikt over hvor mange logging verktøy, ble lansert med stor iver, bare for å bli funnet nå i GitHub kirkegården.,

Målt ved denne målestokken, LogPacker er en favoritt for meg.

Som du kan fortelle fra skjermbildet, LogPacker handler om loggene, og ingenting annet. Deres push er definitivt mot sine cloud-tilbud, men du er mer enn velkommen til å laste ned og installere det på din servere (GitHub siden her).

Gruppering og aggregering er tilgjengelig for de som ønsker å bruke det på en ikke-triviell skala, og enterprise planer er tilgjengelig som ønsker å jobbe med API eller trenger større distribusjoner., En forfriskende minimalistisk (fokusert, selv om de ikke har dårlig) ta på logging ledelse, etter min mening!

Logwatch

jeg er sikker på at det er de blant oss som ikke ønsker at alle vielsen forbundet med en «enhetlig,» «sentralisert» logging system. Deres virksomhet kommer fra enkelt-servere, og de er på jakt etter noe enkelt og effektiv for å se på deres logg-filer. Vel, si hei til Logwatch.

en Gang installert, LogWatch kan skanne systemet logger og lage en rapport av den typen du ønsker., Det er en noe datert stykke programvare (les «pålitelig»), skjønt, og ble skrevet i Perl. Så, trenger du Perl 5.6+ på din server til å kjøre den. Jeg har ikke noen skjermbilder for å dele det som det er et rent kommando linje, daemonized prosessen.

Hvis du er en CLI-junkie, og har en forkjærlighet for gamle-skolen måte å gjøre ting på, vil du elske Logwatch!

Syslog-ng

Syslog-ng verktøyet ble utviklet som en måte å behandle Syslog (en etablert klient-server-protokoll for system logging) data-filer i sanntid., Over tid, selv om det har kommet til å støtte andre data formater: ustrukturerte, SQL, og NoSQL. Hvordan Syslog-protokollen fungerer er ganske mye summert opp pent i følgende illustrasjon.

syslog-ng er en produksjons-klasse, pålitelig logg innsamling og klassifisering verktøy som ble skrevet i C og har blitt et etablert navn i bransjen lenge. Den beste delen er dens utvidelsesmuligheter, slik at du kan skrive plugins i C, Python, Java, Lua, eller Perl.

lnav

Kort for (Log Navigator), lnav er en ren-terminal verktøy som fungerer på en enkelt maskin, enkelt katalog., Det er for de som har sine logging samlet i en enkelt katalog eller ønsker å filtrere og vise real-time logger fra en enkelt kilde.

Hvis du trodde lnav var noe mer enn herliggjort tailf |grep du vil være feil. Det er flere funksjoner som vil få deg til å falle i kjærlighet med det: gang-serien vise, pen-utskrift (for JSON og andre formater), farge-kodet logg kilder, kraftige filtre, evne til å forstå flere logging protokoller, og mer.,

det er bare Det at noen ganger ønsker du en null stress, null oppsett, kanskje-midlertidig logging lag, og lnav passer regningen perfekt!

Konklusjon

Og der har du det!

Det var en vanskelig listen for å kompilere, for å være ærlig, så logging er ikke så populær som, si, content management, og alle mindshare ser ut til å ha blitt fanget av tre eller fire verktøy. Likevel, alle har ulike behov, og jeg har prøvd å dekke dem mye.

Fra dum kommando-linje, ikke-oppsett av verktøy for å full-blåst data juggernauts, det er alle her! Har jeg gått glipp av noe? Selvfølgelig, jeg gjorde!

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *