rozdíl mezi průměrnými produkty a skvělými produkty je protokolování. Zjistěte, proč je to tak, a jak to všechno spojit dohromady.
Stejně jako zabezpečení, přihlášení je další klíčovou součástí webové aplikace (nebo aplikace obecně), která se dostane na vedlejší kolej, protože staré zvyky a neschopnost vidět dopředu. To, co mnozí vidí jako zbytečné stohy digitální pásky jsou výkonné nástroje, aby se podívat dovnitř vaše aplikace, opravit chyby, zlepšit slabé oblasti, a potěší zákazníky.,
než se dostaneme k centralizovanému protokolování, podívejme se nejprve na to, proč je protokolování tak velké.
dva typy (úrovně) protokolování
počítače jsou deterministické systémy, s výjimkou případů, kdy tomu tak není.
Jako profesionální developer, přišel jsem přes mnoho případů, kdy pozorované chování aplikace bezradný všem za dny na konci, ale klíč byl vždy v protokolech. Každý kus softwaru, který provozujeme, produkuje (nebo by měl alespoň generovat) protokoly, které nám říkají, čím procházel, když nastala problematická situace.,
nyní je protokolování, jak to vidím, dvou typů: automaticky generované protokoly a protokoly generované programátorem. Vezměte prosím na vědomí, že to není žádná diferenciace učebnic, a citovat mě v této terminologii vás dostane do potíží. 😉
výše uvedený obrázek ukazuje, co lze nazvat jako automaticky generovaný protokol.
v tomto konkrétním případě je to systém WordPress, který zaznamenává neočekávaný stav (oznámení) při spuštění nějakého kódu PHP., Protokoly, jako jsou tyto, jsou generovány po celou dobu neúnavně-databázovými nástroji, jako je MySQL, webovými servery, jako je Apache, programovacími jazyky a prostředími, mobilními zařízeními a dokonce i operačními systémy.
tyto zřídka obsahují velkou hodnotu a programátoři se ani neobtěžují podívat se na ně, s výjimkou případů, kdy se něco pokazí. V takových okamžicích kopají hluboko do protokolů a snaží se pochopit, co se pokazilo.
ale automaticky generované protokoly mohou pomoci jen tolik., Pokud má například několik lidí přístup správce k webu a jeden z nich odstraní základní informace, není možné zjistit viníka pomocí automaticky generovaných protokolů. Z pohledu systémů svázaných jako aplikace to byl jen další den v práci-někdo měl potřebnou autoritu k provedení úkolu, a tak ho systém provedl.
to, co je zde potřeba, je další vrstva explicitního, rozsáhlého protokolování, které vytváří stezky pro lidskou stránku věcí., To je to, co jsem termín jako programátor generované protokoly, a tvoří páteř citlivých odvětví, jako je bankovnictví. Tady je příklad, jak takové přihlášení schéma by mohlo vypadat takto:
Přihlášení je síla
vzhledem k tomu, tyto dva typy protokolů v systému, zde je návod, jak můžete využít a rozjet dopad.
zůstat před zákazníkem
„customer delight“ se stalo známým jako zbytečný marketingový trik, ale díky protokolování může být velmi reálný., Vím o digitálních produktech, které sledují své protokoly jako jestřáb, a jakmile zákazník něco na stránce rozbije, mohou zavolat zákazníkovi a nabídnout pomoc.
jen o tom přemýšlejte-během několika sekund od získání ošklivé chyby dostanete hovor od společnosti, která říká: „Hej, chápu, že jste se snažili přidat tuto položku do košíku, ale stále umírala. Je to v pořádku pro mě přidat tentokrát a dokončit objednávku pro vás?“
potěšený zákazník? To se vsaď!,
týmová morálka a produktivita
Jak jsem řekl dříve, když se chyby po dlouhou dobu nesledují, vývojáři ve vašem týmu jsou frustrovaní a ztrácejí stále více času pronásledováním ocasů. A tady je věc s laděním-od začátku to vyžaduje čerstvou, zvědavou mysl. Pokud WTF myslel tolik, jak vstoupí do mozku, celý proces jde o hod.
a co ztěžuje ladění? Podle mých zkušeností, nedostatek protokolování, nebo nedostatek znalostí o protokolování., Pro začátek, možná si neuvědomujete, že vaše oblíbené databáze je také jen další kus softwaru, který generuje protokoly, nebo nejste přihlášení značně ve vaší aplikaci (viz programátor-generované protokoly výše).
zvláště si pamatuji případ, kdy aplikace nereagovala a nikdo nevěděl proč. O několik dní později byl viníkem limit i/o disku dosažený kvůli nadměrnému provozu. Protože se tam nikdo neobtěžoval podívat, nikdo nemohl přijít na to proč.,
audit trails
Co když dva roky po řádku váš zákazník říká, že všechny tyto objednávky nebyly zadány jimi, ale nějakým hackerem?
jaký argument by musel bavit nebo odmítnout jejich žádost? Pokud máte rozsáhlé protokolování (IP adresa, datum a čas, kreditní karta atd.), pak budete moci analyzovat vše, co a dosáhnout rozhodnutí. Dobré nebo špatné, bude mít alespoň nějaký objektivní základ, spíše než připomínající výstřel ve tmě.
totéž platí, pokud se dostanete pod nějakou regulační čočku nebo jste povinni podstoupit audit třetí strany v rámci nového, důležitého projektu. Nemít robustní protokolovací systém vám ukáže ve špatném světle.
zlepšení stávajících systémů
Jak se chystáte zlepšit současný systém?
měli byste na něj jen hodit více vláken RAM a CPU? Co když je vaše aplikace pomalá i přes dostatek zdrojů? Kde je překážka? Častěji než ne, logování je odpověď.,
například všechny hlavní databázové systémy mají funkci pro protokolování pomalých dotazů.
Pokud navštívíte slow query log pravidelně, budete vědět, které činnosti a s co nejvíce času, a tedy odhalit malé, ale důležité oblasti, které potřebují práci. Taková malá změna často funguje lépe než zdvojnásobení hardwarové kapacity.
neexistuje žádné počítání, kolik způsobů vám pomůže dobrý protokolovací systém., Snad nejlepším argumentem je, že se jedná o automatizovanou činnost, která jakmile je nastavena, nepotřebuje žádné sledování a jednoho dne vás zachrání před zkázou.
s tím, že z cesty, pojďme se podívat na některé z úžasných Open Source Log kolektorů (unified logging tools) tam venku. Jen v případě, že vás to zajímá, pokryli jsme komerční nástroje pro protokolování založené na cloudu v dřívějším příspěvku.
Graylog
Graylog je jedním z předních jmen v oboru, pokud jde o průmyslové logování a vizualizační schopnosti., Je to také jedinečné v tom, že skenuje vaše shromážděné protokoly pro známky zranitelnosti zabezpečení a okamžitě vás upozorní.
zatímco Graylog je centralizovaný protokolovací systém, má flexibilitu, kterou potřebujete, což vám umožní přizpůsobit upozornění, dashboardy a další.
Greylog je open-source, ale pokud jsou vaše potřeby složité, existuje podnikový plán.
s klienty jako SAP, Cisco a LinkedIn na svém seznamu je Graylog nástrojem, kterému můžete věřit se zavřenýma očima.,
Logstash
Pokud jste fanouškem nebo uživatelem elastického zásobníku, vyplatí se odhlásit Logstash (zásobník losů je již věc, pokud jste to nevěděli). Stejně jako ostatní nástroje pro protokolování v tomto seznamu, Logstash je-li plně open-source, což vám umožní svobodu nasazení a použití, jak si přejete.
Ale nenechte se oklamat: Logstash je mateřskou s možností daleko převáží jakékoliv pokorný protokolování nástroj. Je schopen shromažďovat obrovské množství dat z více platforem, umožňuje definovat a spouštět vlastní datové potrubí, dávat smysl pro nestrukturované skládky protokolu a další.,
jediným omezením je samozřejmě to, že funguje pouze s elastickou sadou produktů, ale pokud brzy začínáte a hledáte měřítko, Logstash je způsob, jak jít!
Fluentd
Mezi centralizované protokolování nástroje, které fungují jako střední vrstva pro data požití, Flutend je první mezi rovnými. S vynikající knihovna pluginů, Fluentd je schopen zachytit data z prakticky jakéhokoliv výrobního systému, hníst ji do požadované struktury, vybudovat vlastní potrubí, a krmit své oblíbené analytics platformy, MongoDB nebo Elasticsearch.,
Fluentd je postaven na Ruby, je zcela open source a je značně populární díky své flexibilitě a modularitě.
s významnými společnostmi jako Microsoft, Atlassian a Twilio používajícími platformu nemá Fluentd co dokazovat. 🙂
Flume
Pokud opravdu, opravdu velké datové sady jsou vaší výzvou, a nakonec chcete nakrmit vše do něčeho jako Hadoop, Flume je jednou z nejlepších možností v okolí. Je to“ čistý “ open source projekt v tom smyslu, že je udržován naší milovanou nadací Apache, což znamená, že neexistuje žádný podnikový plán.,
to může nebo nemusí být to, co přesně hledáte. 🙂
Napsáno v Javě (která neustále udivuje mě, když jde o přelomovou technologii), Flume je zdrojový kód je zcela otevřený. Flume je pro vás nejlepší, pokud hledáte distribuovanou platformu pro příjem dat odolných vůči chybám pro těžké věci.,
Octopussy
dám jim nula z deseti pro pojmenování výrobků, ale Octopussy může být dobrou volbou, pokud se vaše potřeby jsou jednoduché, a jste přemýšlel o tom, co všechno ten poprask týkající se potrubí, požití, agregace, atd., je vše kolem.
podle mého názoru, Chobotnička pokrývá potřeby většiny výrobků (odhadované statistiky jsou k ničemu, ale kdybych měl hádat, řekl bych, že to má o 80% případů použití v reálném světě).
Octopussy nemá velké uživatelské rozhraní (viz zde) vůbec, ale vynahrazuje to, pokud jde o rychlost a nedostatek nadýmání., Zdroj je k dispozici na Githubu, jak se očekávalo, a myslím, že to stojí za vážný pohled.
Rsyslog
Rsyslog znamená raketově rychlý systém pro zpracování protokolu.
jedná se o nástroj pro operační systémy podobné Unixu. Z technického hlediska se jedná o směrovač zpráv s dynamicky načitatelnými vstupy a výstupy a je vysoce konfigurovatelný.
může přijímat vstupy z více datových zdrojů, transformovat je a odeslat výstup do několika destinací. S Rsyslog, můžete doručit 1 milion zpráv za sekundu v místních destinacích.,
Rsyslog také poskytuje agenta Windows, který velmi úzce spolupracuje s agentem Rsyslog Linux. Používá se pro integraci mezi oběma prostředími. Tento agent systému windows se používá k předávání protokolů událostí služby Windows a setup file monitor.
Níže jsou další funkce, které nabízí Rsyslog:
- Flexibilní konfigurace
- Poskytuje multi-threading schopnosti
- Log manipulace ochrana pomocí protokolu podpisy a šifrování.,
- Podporuje Velké Datové platformy
- Poskytuje obsah-založené filtrování
LOGalyze
LOGalyze byl komerční produkt, který byl nedávno dělal open source. I když jsem nemohl Projekt na Githubu, dělají instalační program Windows a veškerý zdrojový kód ke stažení.
Pokud máte v úmyslu na komunitu, můžete najít podrobnosti o mailing listu zde.
LOGalyze je relativně flexibilní a výkonná nabídka, která bude fungovat dobře pro nasazení jednoho systému, které se snaží kombinovat protokolování ze známých zdrojů, jako je Postfix, Apache atd.,, a produkují výstup ve formátu CSV, PDF, HTML nebo podobných formátů. Ano, nedělá všechno, ale protože to byl komerční produkt najednou, dělá to docela dobře.
LogPacker
pokud jde o výběr nástroje pro práci, mám dvě kritéria: musí být zaměřena a musí být podpořena aktivním obchodním modelem. Problém s open-source softwarem obecně spočívá v tom, že několik měsíců/let po silnici jsou šance na stagnaci nebo smrt vysoké. Neexistuje žádný počet, kolik nástrojů pro protokolování bylo spuštěno s gustem, ale nyní se nachází na hřbitově GitHub.,
měřeno tímto měřítkem, LogPacker je pro mě oblíbený.
jak můžete zjistit ze snímku obrazovky, LogPacker je o protokolech a nic jiného. Jejich tlak je určitě směrem k jejich cloudovým nabídkám, ale jste více než vítáni ke stažení a instalaci na vaše servery (stránka GitHub zde).
Clustering a agregace jsou k dispozici pro ty, kteří ji chtějí používat v netriviálním měřítku, a jsou k dispozici Podnikové plány, které chtějí pracovat s API nebo potřebují větší nasazení., Osvěžující minimalistický (zaměřený, i když ne feature-chudý) vzít na řízení protokolování, podle mého názoru!
Logwatch
jsem si jistý, že mezi námi jsou ti, kteří nechtějí veškerý obřad spojený s „sjednoceným“ „centralizovaným“ systémem protokolování. Jejich podnikání pochází z jednotlivých serverů a hledají něco rychlého a efektivního pro sledování souborů protokolu. Dobře, pozdrav Logwatch.
po instalaci může LogWatch skenovat systémové protokoly a vytvořit zprávu typu, který chcete., Je to poněkud datovaný kus softwaru (číst „spolehlivý“), ačkoli, a byl napsán v Perlu. Takže budete potřebovat Perl 5.6 + na vašem serveru jej spustit. Nemám žádné screenshoty, které bych mohl sdílet, protože je to čistě příkazový řádek, daemonizovaný proces.
Pokud jste CLI junkie a máte lásku ke starému způsobu, jak dělat věci, budete milovat Logwatch!
Syslog-ng
nástroj Syslog-ng byl vyvinut jako způsob zpracování datových souborů Syslog (zavedený protokol klient-server pro protokolování systému) v reálném čase., Postupem času však přišla na podporu dalších datových formátů: nestrukturovaných, SQL a NoSQL. Jak protokol Syslog funguje, je do značné míry shrnuto úhledně na následujícím obrázku.
syslog-ng je výrobní, spolehlivý nástroj pro sběr a klasifikaci protokolů, který byl napsán v jazyce C a byl v průmyslu dlouho zavedeným názvem. Nejlepší část je její rozšiřitelnost, která vám umožní psát Pluginy v C, Python, Java, Lua nebo Perl.
lnav
zkratka pro (Log Navigator), lnav je čistě terminálový nástroj, který pracuje na jednom stroji, jediném adresáři., Je to pro ty, kteří mají své přihlášení sjednocené do jednoho adresáře nebo chtějí filtrovat a zobrazovat protokoly v reálném čase z jediného zdroje.
Pokud jste si mysleli, že lnav není nic jiného než oslavovaný tailf |
grep
mýlíte se. Existuje několik funkcí, díky nimž se do něj zamilujete: zobrazení časových řad, pěkný tisk (pro JSON a další formáty), barevné zdroje protokolu, výkonné filtry, schopnost porozumět několika protokolům protokolování a další.,
je to jen to, že někdy chcete nulové potíže, nulové nastavení, možná dočasnou vrstvu protokolování a lnav dokonale vyhovuje účtu!
závěr
a tady to máte!
bylo těžké sestavit seznam, abych byl upřímný, protože protokolování není tak populární jako například správa obsahu a zdá se, že všechny mindshare byly popadnuty třemi nebo čtyřmi nástroji. Přesto jsou potřeby každého jiné a snažil jsem se je rozsáhle pokrýt.
od hloupého příkazového řádku, nástrojů bez nastavení až po plnohodnotné datové juggernauty, je to všechno tady! Něco mi uniklo? Samozřejmě, že ano!
Napsat komentář