ELK Stack, dobre praktyki zarządzania logami

 

Cat | tail | grep – nierzadko jest to dla wielu osób podstawowy zestaw komend do wyszukiwania pewnych informacji w logach. Rozwijając jakąkolwiek aplikację, tworzymy pewien ekosystem składający się wielu usług, generujących własne pliki rejestru zdarzeń w różnych formatach. Na przykład w pierwszej lepszej aplikacji którą rozwijałem informacje rejestrowane są przez:

  • serwer proxy – NGINX
  • serwer http – Tomcat
  • bazę danych – PostgrteSQL
  • no i aplikację.

Już przy tak podstawowym zestawie usług, generowanych informacji jest ogrom. Przegląd i analiza takich logów jest dosyć problematyczna. Jeszcze pół biedy, gdy wszystkie z tych danych znajdują się na jednym serwerze.

Jak nad tym zapanować? W tym artykule przedstawię open source’owy zestaw narzędzi służących zarządzania logami ELK Stack w skład którego wchodzą:

  • Elasticsearch – silnik wyszukiwania pełnotekstowego oparty na Apache Lucene.
  • Logstash – narzędzie przetwarzające, filtrujące, normalizujące i wysyłające gdzieś logi (w naszym przypadku do Elasticsearch’a).
  • Kibana – interfejs, aplikacja webowa do przeglądania i wizualizacji logów w czasie rzeczywistym.

W poniższym artykule zaprezentuję przykład aplikacji wykorzystującej Javovy Log4J wysyłającej do Logstasha logi za pomocą SocketAppendera (na potrzeby wpisu w Windowsie 10).

Zaczynajmy, jak zwykle bez zbędnego rozpisywania się.

Czytaj dalej

Wykonywanie kodu JavaScript w Javie

ausmalbild-nashorn-7Wraz z pojawieniem się Javy 8 został udostępniony nowy silnik JavaScriptowy dla JVM o nazwie Nashorn. Zastąpił on starszą implementację Rhino, dostępnego od Javy 6. JavaScriptowy silnik Rhino został stworzony dawno temu przez firmę Netscape (chyba w 1997 roku), a w późniejszym czasie rozwijany był przez Mozillę. Nashorn to silnik pozwalający uruchamiać kod Javascriptowy po stronie serwera. Daje to duże możliwości, bo w łatwy sposób można udostępnić „język / składnie” jakiejś konfiguracji dla użytkownika, dzięki czemu w trakcie działania aplikacji można modyfikować implementację pewnych zachowań i dodawać nowe. Dzięki wykorzystaniu takiego silnika można np. dać użytkownikowi możliwość oprogramowania jakiegoś fragmentu systemu.
Wykorzystując taki silnik można zaimplementować np. walidację formularzy przechowując ją tylko w jednym miejscu systemu / modelu. Z formularza przekazujemy JSONa, po stronie serwera wykonujemy ten sam kod który był wykonany po stronie przeglądarki.

Bez zbędnego wstępu, przejdę do konkretnych przykładów pokazujących możliwości wywoływania kodu JavaScript z poziomu Javy.

Przykład Hello World:

W wyniku uruchomienia czego, na konsoli pojawi się tekst: „Cześć, tu Notatnik Programisty!”

Interfejs ScriptEngine posiada przeciążoną metodę eval przyjmującą obiekt klasy Reader, dzięki czemu można wywołać kod bezpośrednio z zewnętrznego pliku:

W Javie 7 metoda getEngineByName(„js”) zwróci implementację Rhino. Od wersji ósmej będzie to już silnik Nashorn.

Czytaj dalej

Dasz rybę, czy wędkę? Ty też możesz pomóc młodemu przyszłemu programiście!

Szkoła 3.0 – nowy program pomocy dla potrzebujących dzieci!

about-1

Jeśli dasz człowiekowi rybę, nakarmisz go na jeden dzień. Jeśli nauczysz go łowić ryby, nakarmisz go na całe życie.

Czy wiedzieliście, że 68% wychowanków placówek opiekuńczo-wychowawczych w dorosłym życiu NIE MA STAŁEGO ZATRUDNIENIA? Jest to naprawdę smutne. Braki w wykształceniu, wykluczenie cyfrowe, brak środków na dalszą edukację, brak praktyk zawodowych – sprawiają, że sytuacja zawodowa usamodzielnionych wychowanków domów dziecka wygląda tak, jak poniżej:

15241184_1111004095679135_4461154571250033522_n

Źródło: https://www.facebook.com/Szkola3.0/

Właśnie przed chwilą zafundowałem roczną edukację jednemu z wychowanków domu dziecka i cieszę się z tego niezmiernie oraz zachęcam każdego z was o pomoc w jakiejkolwiek formie. Ale o co tu chodzi?

Czytaj dalej

Ostatni dzwonek na przygotowanie się do e-kontroli

wizjanet_jpk_b3O wprowadzeniu e-kontroli podatkowej dla przedsiębiorstw oraz jednostek administracyjnych i samorządowych mówi się już od dłuższego czasu. Płynnie zostały już wprowadzone w dużych firmach, gdzie obowiązują od stycznia bieżącego roku, a pliki JPK przesyłane są do Urzędów Skarbowych od 1 lipca. 1 stycznia 2017 roku to ostateczny moment, w którym oprogramowanie generujące pliki JPK mają wdrożyć jednostki administracyjne i samorządowe odpowiadające sektorowi MŚP (czyli małym i średnim przedsiębiorstwom).
Wśród wielu osób zarządzających księgowością w gminach i miastach e-kontrole i zagadnienia związane z Jednolitym Plikiem Kontrolnym wywołują pewne obawy i wątpliwości. Zupełnie niepotrzebnie, ponieważ odpowiednio wcześniejsze przygotowanie do kontroli, czyli wdrożenie oprogramowania do rejestru VAT i faktur oraz generującego plik JPK, pozwoli uniknąć kłopotów i ewentualnych kar. Co ważne, e-kontrole dotyczą nie tylko prywatnych przedsiębiorców, ale też gminy, organizacje, stowarzyszenia, jednostki administracyjne oraz samorządowe. Jednym słowem wszystkie instytucje, będące podatnikiem będą podlegać e-kontroli.

Czytaj dalej