11 Open Source Log Collectors do scentralizowanego logowania

wpis w: Articles | 0

różnica między przeciętnymi produktami a świetnymi produktami jest rejestrowanie. Dowiedz się, dlaczego tak jest i jak to wszystko połączyć.

podobnie jak bezpieczeństwo, logowanie jest kolejnym kluczowym składnikiem aplikacji internetowych (lub aplikacji w ogóle), który zostaje odsunięty na bok z powodu starych nawyków i niemożności patrzenia na przyszłość. To, co wielu postrzega jako bezużyteczne ryzy taśmy cyfrowej, to potężne narzędzia do zaglądania do aplikacji, poprawiania błędów, poprawiania słabych obszarów i zachwycania klientów.,

zanim przejdziemy do scentralizowanego logowania, najpierw przyjrzyjmy się, dlaczego logowanie jest taką wielką sprawą.

dwa typy (poziomy) logowania

komputery są systemami deterministycznymi, chyba że nie są.

jako profesjonalny programista natknąłem się na wiele przypadków, w których obserwowane zachowanie aplikacji zaskoczyło wszystkich przez wiele dni, ale klucz był zawsze w dziennikach. Każdy uruchomiony przez nas program generuje (a przynajmniej powinien generować) logi, które mówią nam, przez co przechodził, gdy wystąpiła problematyczna sytuacja.,

obecnie logowanie, jak widzę, jest dwóch typów: automatycznie generowanych logów i generowanych przez programistów. Proszę zauważyć, że nie jest to żadne podręcznikowe różnicowanie, a cytowanie mnie w tej terminologii wpakuje cię w kłopoty. 😉

powyższy obrazek pokazuje, co można określić jako automatycznie wygenerowany dziennik.

w tym konkretnym przypadku jest to system WordPress rejestrujący nieoczekiwany stan (powiadomienie) podczas uruchamiania kodu PHP., Logi takie jak te są generowane przez cały czas niestrudzenie – przez narzędzia bazodanowe, takie jak MySQL, serwery internetowe, takie jak Apache, Języki i środowiska programowania, urządzenia mobilne, a nawet systemy operacyjne.

rzadko zawierają wiele wartości, a programiści nawet nie zadają sobie trudu, aby je sprawdzić, z wyjątkiem sytuacji, gdy coś pójdzie nie tak. W takich momentach kopią głęboko w dzienniki, próbując zrozumieć, co poszło nie tak.

ale automatycznie generowane logi mogą pomóc tylko tak bardzo., Jeśli na przykład kilka osób ma dostęp administratora do witryny, a jedna z nich usuwa istotną informację, niemożliwe jest wykrycie winowajcy za pomocą automatycznie wygenerowanych dzienników. Z perspektywy systemów powiązanych ze sobą jako aplikacja, był to po prostu kolejny dzień w pracy — ktoś miał potrzebne uprawnienia do wykonania zadania, a więc system je wykonał.

potrzebna jest tu dodatkowa warstwa wyraźnego, obszernego logowania, które tworzy szlaki dla ludzkiej strony rzeczy., Są to logi generowane przez programistów, które stanowią podstawę wrażliwych branż, takich jak bankowość. Oto przykład jak taki schemat logowania może wyglądać:

źródło: joomlatools.com

Logowanie to moc

tak więc, biorąc pod uwagę te dwa rodzaje dzienników w systemie, oto jak możesz je wykorzystać i zwiększyć wpływ.

wyprzedzanie klienta

„Customer delight” stał się znany jako bezużyteczny chwyt marketingowy, ale dzięki logowaniu może być bardzo realny., Znam Produkty cyfrowe, które monitorują swoje dzienniki jak jastrząb, a gdy tylko klient złamie coś na stronie, może zadzwonić do klienta i zaoferować pomoc.

pomyśl o tym — w ciągu kilku sekund od pojawienia się brzydkiego błędu, otrzymujesz telefon od firmy, która mówi: „Hej, rozumiem, że próbowałeś dodać ten przedmiot do koszyka, ale wciąż umierał. Czy Mogę dodać ten czas i zrealizować zamówienie dla Ciebie?”

zachwycony klient? Jasne!,

morale i produktywność zespołu

tak jak mówiłem wcześniej, gdy błędy nie są śledzone przez długi czas, Programiści w Twoim zespole stają się sfrustrowani i tracą coraz więcej czasu goniąc za ogonami. A oto sprawa z debugowaniem — wymaga świeżego, ciekawego umysłu od samego początku. Jeśli WTF myśli tyle, co wchodzi do mózgu, cały proces idzie na rzut.

a co utrudnia debugowanie? Z mojego doświadczenia wynika, że brak logowania lub brak wiedzy o logowaniu., Na początek możesz nie zdawać sobie sprawy, że Twoja ulubiona baza danych jest również kolejnym oprogramowaniem generującym logi lub nie logujesz się intensywnie w swojej aplikacji (Zobacz dzienniki generowane przez programistów powyżej).

szczególnie pamiętam przypadek, w którym aplikacja nie reagowała i nikt nie wiedział dlaczego. Kilka dni później winowajcą był limit We/Wy dysku osiągnięty z powodu nadmiernego ruchu. Ponieważ nikt nie pofatygował się tam szukać, nikt nie mógł dowiedzieć się dlaczego.,

ścieżki audytu

a co jeśli dwa lata później twój klient powie, że wszystkie te zamówienia nie zostały złożone przez niego, ale przez jakiegoś hakera?

Jaki argument musiałby przyjąć lub odrzucić ich prośbę? Jeśli masz rozległe logowanie (adres IP, Data i godzina, karta kredytowa itp.), wtedy będziesz w stanie to wszystko przeanalizować i podjąć decyzję. Dobre czy złe, będzie to przynajmniej miało jakąś obiektywną podstawę, a nie przypominało ujęcia w ciemności.

Source: signature-reads.,com

to samo jest prawdą, jeśli poddajesz się pewnym wymogom regulacyjnym lub musisz przejść audyt strony trzeciej w ramach nowego, ważnego projektu. Brak solidnego systemu rejestrowania pokaże cię w złym świetle.

ulepszanie istniejących systemów

jak usprawnić obecny system?

czy wystarczy wrzucić do niego więcej wątków RAM i CPU? Co zrobić, jeśli aplikacja jest wolna pomimo wystarczającej ilości zasobów? Gdzie jest wąskie gardło? Najczęściej odpowiedzią jest logowanie.,

na przykład, wszystkie główne systemy baz danych mają funkcję rejestrowania wolnych zapytań.

źródło: speedawarenessmonth.com

Jeśli regularnie odwiedzasz dziennik powolnych zapytań, dowiesz się, które operacje i poświęcisz najwięcej czasu, a tym samym odkryjesz małe, ale ważne obszary, które wymagają pracy. Często taka mała zmiana działa lepiej niż podwojenie pojemności sprzętu.

nie liczy się, na ile sposobów pomaga dobry system logowania., Być może najlepszym argumentem jest to, że jest to zautomatyzowana aktywność, która po skonfigurowaniu nie wymaga monitorowania i pewnego dnia uratuje cię przed zniszczeniem.

mając to na uwadze, przyjrzyjmy się niektórym niesamowitym kolektorom dzienników Open Source (zunifikowanym narzędziom rejestrującym). Na wypadek, gdybyś się zastanawiał, omówiliśmy komercyjne narzędzia do logowania oparte na chmurze we wcześniejszym poście.

Graylog

Graylog jest jedną z wiodących firm w branży, jeśli chodzi o możliwości rejestrowania i wizualizacji na poziomie branżowym., Jest również wyjątkowy, ponieważ skanuje zebrane dzienniki w poszukiwaniu oznak luk w zabezpieczeniach i natychmiast powiadamia Cię o tym.

chociaż Graylog jest scentralizowanym systemem rejestrowania, ma potrzebną elastyczność, umożliwiając dostosowywanie alertów, pulpitów nawigacyjnych i innych.

Greylog jest open-source, ale istnieje plan enterprise, jeśli twoje potrzeby są złożone.

dzięki takim klientom, jak SAP, Cisco i LinkedIn, Graylog to narzędzie, któremu możesz zaufać z zamkniętymi oczami.,

Logstash

Jeśli jesteś fanem lub użytkownikiem Elastic stack, warto sprawdzić Logstash(ELK stack to już rzecz, gdybyś nie wiedział). Podobnie jak inne narzędzia do logowania na tej liście, Logstash jest w pełni open-source, co pozwala na dowolne wdrażanie i używanie.

ale nie daj się zwieść: Logstash to statek matka z możliwościami znacznie przewyższającymi wszelkie skromne narzędzie do logowania. Jest w stanie zbierać ogromne ilości danych z wielu platform, umożliwia definiowanie i wykonywanie własnych potoków danych, wykrywanie niestrukturalnych zrzutów dziennika i wiele innych.,

oczywiście jedynym ograniczeniem jest to, że działa tylko z elastycznym pakietem produktów, ale jeśli zaczynasz i chcesz szybko skalować, Logstash jest najlepszym rozwiązaniem!

Fluentd

wśród scentralizowanych narzędzi rejestrujących, które działają jako środkowa warstwa do pozyskiwania danych, Flutend jest pierwszy wśród równych. Dzięki doskonałej bibliotece wtyczek, Fluentd jest w stanie przechwycić dane z praktycznie dowolnego systemu produkcyjnego, zagnieść je w żądaną strukturę, zbudować Niestandardowy rurociąg i dostarczyć je do ulubionej platformy analitycznej, czy to MongoDB czy Elasticsearch.,

Fluentd jest zbudowany na Rubim, jest całkowicie open source i jest bardzo popularny ze względu na swoją elastyczność i modułowość.w przypadku dużych firm, takich jak Microsoft, Atlassian i Twilio, korzystających z platformy, Fluentd nie ma nic do udowodnienia. 🙂

Flume

Jeśli naprawdę, naprawdę duże zbiory danych są Twoim wyzwaniem, i ostatecznie chcesz karmić wszystko w coś takiego jak Hadoop, Flume jest jednym z najlepszych wyborów wokół. Jest to” czysty ” projekt open source, w tym sensie, że jest utrzymywany przez naszą ukochaną Fundację Apache, co oznacza, że nie ma planu enterprise.,

To może być to, czego dokładnie szukasz. 🙂

źródło: beyondcoder.com

napisany w Javie (co nadal mnie zadziwia, jeśli chodzi o przełomową technologię), kod źródłowy Flume jest całkowicie otwarty. Flume jest najlepszy dla Ciebie, jeśli szukasz rozproszonej, odpornej na uszkodzenia platformy do pozyskiwania danych do ciężkich materiałów.,

Octopussy

daję zero na dziesięć za nazewnictwo produktów, ale Octopussy może być dobrym wyborem, jeśli twoje potrzeby są proste, i zastanawiasz się, co całe zamieszanie związane z rurociągami, spożyciem, agregacją itp., to wszystko.

moim zdaniem Octopussy pokrywa potrzeby większości produktów (szacowane Statystyki są bezużyteczne ,ale gdybym miał zgadywać, powiedziałbym, że zajmuje się 80% przypadków użycia w świecie rzeczywistym).

Octopussy w ogóle nie ma świetnego interfejsu użytkownika (patrz tutaj), ale nadrabia to szybkością i brakiem wzdęcia., Źródło jest dostępne na Githubie, zgodnie z oczekiwaniami, i myślę, że warto spojrzeć poważnie.

Rsyslog

rsyslog oznacza szybki system do przetwarzania logów.

jest to narzędzie dla uniksopodobnych systemów operacyjnych. Pod względem technicznym jest to router komunikacyjny z dynamicznie ładowanymi wejściami i wyjściami i jest wysoce konfigurowalny.

może pobierać dane wejściowe z wielu źródeł danych, przekształcać je i wysyłać dane wyjściowe do kilku miejsc docelowych. Dzięki Rsyslog możesz dostarczać 1 milion wiadomości na sekundę przez lokalne miejsca docelowe.,

Rsyslog udostępnia również agenta systemu Windows, który ściśle współpracuje z agentem Linuksa Rsyslog. Jest on używany do integracji między dwoma środowiskami. Ten agent systemu windows służy do przekazywania dzienników zdarzeń systemu windows i usługi Monitor plików konfiguracyjnych.

Poniżej znajdują się inne funkcje oferowane przez Rsyslog:

  • elastyczne konfiguracje
  • zapewnia możliwości wielowątkowe
  • ochrona przed manipulacją plikami dziennika za pomocą podpisów dziennika i szyfrowania.,
  • obsługuje platformy Big Data
  • zapewnia funkcje filtrowania oparte na treści

LOGalyze

LOGalyze był produktem komercyjnym, który został niedawno otwarty. Chociaż nie mogłem projektu na Githubie, robią Instalator Windows i cały kod źródłowy do pobrania.

Jeśli zależy ci na społeczności, szczegóły listy mailingowej znajdziesz tutaj.

LOGalyze jest stosunkowo elastyczną i potężną ofertą, która będzie dobrze działać dla wdrożeń jednosystemowych, które starają się połączyć logowanie ze znanych źródeł, takich jak Postfix, Apache, itp., i produkować dane wyjściowe w formatach CSV, PDF, HTML lub podobnych. Tak, nie robi wszystkiego, ale ponieważ był to produkt komercyjny w jednym czasie, robi to raczej dobrze.

LogPacker

jeśli chodzi o wybór narzędzia do pracy, mam dwa kryteria: musi być skoncentrowany i musi być poparty aktywnym modelem biznesowym. Ogólnie rzecz biorąc, problem z oprogramowaniem open-source polega na tym, że kilka miesięcy/lat w dół drogi, szanse na stagnację lub śmierć są wysokie. Nie ma co liczyć, ile narzędzi do logowania zostało uruchomionych z zapałem, tylko można je teraz znaleźć na cmentarzu GitHub.,

Jak widać na zrzucie ekranu, LogPacker chodzi tylko o logi i nic więcej. Ich push jest zdecydowanie w kierunku ich oferty w chmurze, ale jesteś bardziej niż mile widziany, aby pobrać i zainstalować go na swoich serwerach (strona GitHub tutaj).

klastrowanie i agregacja są dostępne dla tych, którzy chcą korzystać z niego w nietrywialnej skali, a plany enterprise są dostępne, którzy chcą pracować z API lub potrzebują większych wdrożeń., Odświeżająco minimalistyczne (skupione, choć nie ubogie w funkcje) podejście do zarządzania logowaniem, moim zdaniem!

Logwatch

jestem pewien, że są wśród nas tacy, którzy nie chcą, aby cała ceremonia była powiązana z „zunifikowanym”, „scentralizowanym” systemem logowania. Ich działalność pochodzi z pojedynczych serwerów i szukają czegoś szybkiego i wydajnego do oglądania swoich plików dziennika. Przywitaj się z Logwatch.

Po zainstalowaniu LogWatch może skanować dzienniki systemowe i tworzyć raport typu, który chcesz., Jest to jednak nieco przestarzały program (Czytaj „niezawodny”) i został napisany w Perlu. Więc będziesz potrzebował Perla 5.6+ na swoim serwerze, aby go uruchomić. Nie mam żadnych zrzutów ekranu, aby udostępnić, ponieważ jest to proces czysto wiersza poleceń, demonizowany.

Jeśli jesteś ćpunem CLI i kochasz Oldskulowy sposób robienia rzeczy, pokochasz Logwatch!

syslog-ng

narzędzie Syslog-ng zostało opracowane jako sposób przetwarzania plików danych Syslog (Protokół klient-serwer do logowania systemu) w czasie rzeczywistym., Z czasem jednak pojawiła się Obsługa innych formatów danych: unstructured, SQL i NoSQL. Jak działa protokół Syslog, podsumowano dokładnie na poniższej ilustracji.

syslog-ng to niezawodne narzędzie do zbierania i klasyfikacji logów, które zostało napisane w języku C i od dawna jest znane w branży. Najlepszą częścią jest jego rozszerzalność, pozwalająca na pisanie wtyczek w języku C, Python, Java, Lua lub Perl.

lnav

skrót od (Log Navigator), lnav jest narzędziem czysto terminalowym, które działa na jednej maszynie, jednym katalogu., Jest przeznaczony dla tych, którzy mają swoje logowanie w jednym katalogu lub chcą filtrować i wyświetlać dzienniki w czasie rzeczywistym z jednego źródła.

gdybyś myślał, że lnav to nic innego jak gloryfikacja tailf |grep to byś się mylił. Istnieje kilka funkcji, które sprawią, że zakochasz się w nim: widok szeregów czasowych, ładne drukowanie( dla JSON i innych formatów), kodowane kolorami źródła dziennika, potężne filtry, zdolność do zrozumienia kilku protokołów rejestrowania i wiele innych.,

chodzi o to, że czasami chcesz mieć zerową, zerową konfigurację, może-tymczasową warstwę logowania, a lnav pasuje idealnie!

podsumowanie

i tu masz!

To była trudna Lista do skompilowania, szczerze mówiąc, ponieważ logowanie NIE jest tak popularne jak, powiedzmy, zarządzanie treścią, a wszystkie mindshare wydaje się być chwytane przez trzy lub cztery narzędzia. Mimo to, potrzeby każdego są inne, a ja starałem się je szeroko pokryć.

od silly command-line, no-setup tools do full-blown data juggernauts, to wszystko tutaj! Coś mnie ominęło? Oczywiście, że tak!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *