Software Development

Zapanuj nad logami, czyli przykład użycia narzędzi: Elasticsearch, Logstash, Kibana

Maj 11, 2016 0
Podziel się:

Wpis poświęcony jest magicznej trójce: elastic-search, logstash, kibana co w sieci można znaleźć pod skrótem ELK. Opisuje w prosty sposób jak uruchomić i skonfigurować narzędzie wspomagające pracę z plikami logów. Ideą tego rozwiązania jest wykorzystanie istniejących narzędzi jako centrum indeksującego i prezentującego logi. Narzędzie to jest bardzo przydatne w przypadku, gdy monitorujemy kilka środowisk, czy też jedno środowisko, które jest rozproszone. Opisywane zastosowanie dotyczy monitorowania logów w ramach jednej maszyny.

Wymagania

Przechodząc do sedna. Wiemy co chcemy zrobić, pojawia się pytanie jak? Otóż w pierwszej kolejności należy pobrać trzy moduły ze strony dostawcy https://www.elastic.co/:

Do ich uruchomienia niezbędna będzie java w wersji co najmniej 7, aczkolwiek jako że jest narzędziem ciągle rozwijanym, sugeruję użyć najnowszej stabilnej wersji.

Instalacja

  • instalacja javy
  • rozpakowanie archiwów z powyższymi paczkami

Konfiguracja

    • Elasticsearch – konfiguracja znajduje się w pliku:
      • <ELASTIC_SEARCH_HOME> /config/elasticsearch.yml – istnieje mozliwość zmiany podstawowych parametrów, domyślnymi są: 9200 oraz 9300, a zmiana ich nie jest konieczna.
    • Kibana – konfiguracja znajduje sie w pliku:
      • <KIBANA_HOME>/config/kibana.yml – należy zdefiniować źródło danych, w tym przypadku zmienna: elasticsearch.url: “http://localhost:9200
      • Logstash – plik konfiguracyjny podaje się w parametrach startowych. Zawartość tego pliku może wyglądać następująco:
input {
  file {
    type => "nazwa środowiska|węzła"
    path => "/*"
    codec => multiline { →sekcja odpowiedzialna za złożenie stacktrace’a w jeden wpis
      pattern => "^%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{TIME}.*"
      negate => "true"
      what => "previous"
    }
  }
}
output {
  elasticsearch { hosts => [":9200"] }
  stdout { codec => rubydebug } → linnia opcjonalna, wypisuje na wyjściu standardowym publikowane wpisy, przydatne podczas debugowania
}

Uruchamianie

Aby wszystko działało, należy w pierwszej kolejności uruchomić elasticsearch skryptem:

/bin/elasticsearch

następnie w dowolnej kolejności należy uruchomić:

/bin/kibana
/bin/logstash -f logstash.conf

Dla przykładu filtrowanie logów za pomocą komendy grep Exception:

1

A tu ten sam log wyszukany komendą kibana *Exception* (stack trace ucięty przez rozmiar okna przeglądarki):

2

Oczywiście da się to zrobić prościej np. poprzez uruchomienie gotowego obrazu docker’a. Warto pamiętać, że ścieżka ta nie zawsze jest dostępna ze względu na różnego rodzaju polityki bezpieczeństwa. Narzędziem, które warto dopisać to tego zestawu, jest pakiet filebeat dostępny w stajni elastic, będący sugerowanym narzędziem do przesyłania logów wewnątrz sieci.

5 / 5
Emil Murawski
Autor: Emil Murawski
Jestem developerem Java od ok. 3 lat, w międzyczasie miałem okazję sprawdzić się jako programista aplikacji mobilnych. Obecnie zajmuję się czysto backendowymi zagadnieniami. Projekt który prowadzę to pionierski plan uporządkowania podbiurkowego systemu.

Imię i nazwisko (wymagane)

Adres email (wymagane)

Temat

Treść wiadomości

Zostaw komentarz