Agregacja i analiza logów

37
Agregacja i analiza logów

Transcript of Agregacja i analiza logów

Agregacja i analiza

logów

Agenda

● Problemy z logami

● Jak to robimy w Divante - ELK Stack o Elasticsearch

o Logstash

o Kibana

o Architektura

o Dodatko e arzędzia

● Podsumowanie

● Pytania

Jakie problemy z logami

oże y apotkać?

Problemy logów

• cat

• grep

• awk

• sed

• tail

• yraże ia regular e

Bardzo utrud io a a aliza logów, wydłużo y czas reakcji.

Przeszukiwanie, analiza logów – old school

Problemy logów

O iąże ie ser era, ydaj ość aplika ji

• Sy hro i z y, lokują y zapis do pliku

• Opera je IO o iążają e ser er

• Ograniczona liczba i-node w systemie plików

• Relatywnie wolny zapis

• Sprząta ie logó

http://wiki.processmaker.com/index.php/Advanced_Performance_Monitor_Dashboards

Problemy logów

Złożo a ar hitektura - problem zapisu i odczytu

• Zapis/od zyt z ser eró za load ala er’e

- Zastosowanie NFS?

https://www.digitalocean.com/community/tutorials/5-common-server-setups-for-your-web-application

Problemy logów

Ciągły o itori g

• Bardzo utrud io e iągłe o itoro a ie szystki h para etró aplika ji

• Wymagana wiedza techniczna

Jak to robimy w Divante?

ELK Stack

Czym jest ELK Stack?

ELK Sta k to zesta arzędzi:

ELK zape ia s e tralizo a y syste zarządza ia loga i rozproszo y h, ysoko dostęp y h syste a h.

E jak ElasticSearch

elasticsearch

● + Baza danych NoSQL

● + Wyszuki a ie peł oteksto e

● + REST Api (json)

● + Bazuje na Apache Lucene

● + Replikacja, snapshots

● + Dostęp a ofi jal a i lioteka dla PHP i Ja aS ript

● - Brak transakcji

● Wymagania: Java

E jak ElasticSearch

Instalacja i konfiguracja

● Instalacja Java Oracle

o sudo apt-get install python-software-properties

o sudo add-apt-repository -y ppa:webupd8team/java

o sudo apt-get update

o sudo apt-get -y install oracle-java8-installer

● Instalacja ElasticSearch

o wget i unzip najnowszej paczki do pobrania z strony

https://www.elastic.co/downloads

o Wykonanie konfiguracji w pliku elasticsearch.yml

● Urucho ie ie ElasticSearch’a: o ./bin/elasticsearch -d

L jak Logstash

● Agrega ja logó z ielu źródeł

● Normalizacja (parsowanie, filtrowanie) pobranych danych

● Wysła ie z or alizo a y h da y h do roz aity h źródeł

● Wymagania : Java

INPUT FILTER

PARSE OUTPUT

L jak Logstash

Input: (41)

● elasticsearch, imap

● rabbitmq, redis

● sqlite, syslog

● tcp, twitter

● varnishlog, websocket

Output: (55) ● elasticsearch, mongodb,

● redis, email, file, csv

● hipchat, http

● jira, redmine, rabbitmq

● tcp, websocket, zabbix

Wię ej a: http://logstash.net/docs/1.4.2/

INPUT FILTER

PARSE OUTPUT

L jak Logstash

Filtry: (50)

● checksum

● csv, date

● elasticsearch

● fingerprint

● geoip, grep, grok

● json, json_encode

● ruby, split

● translate

● urldecode

● useragent, xml

Wię ej a: http://logstash.net/docs/1.4.2/

INPUT FILTER

PARSE OUTPUT

L jak Logstash

Filtr GROK

● Analizowanie i parsowanie dowolnego tekstu

● Grok jest najlepszym sposobem na przetworzenie najbardziej

nieustrukturyzowanych danych

● Po ad zor ó z ożli oś ią t orze ia łas y h

[ERROR] - 2015/13/03-11:01:31 - 192.168.0.1 - Some error message

[%{GREEDYDATA:message}] - %{DATESTAMP} - %{IP:client} - %{GREEDYDATA:message}

L jak Logstash

Instalacja i konfiguracja

● Instalacja Java Oracle i instalacja Logstash:

o wget i unzip najnowszej paczki do pobrania z strony

https://www.elastic.co/downloads

● Konfiguracja:

input {

file {

type => "syslog"

path => ["/var/log/auth.log", "/var/log/syslog"]

}}

● Urucho ie ie Logstash’a: o ./bin/logstash

K jak Kibana

● Wizualizacja danych w formie aplikacji webowej

● Wyszukiwanie, filtrowanie, analizowanie danych

● Intuicyjny interfejs, nie tylko dla programistów

● Błyska i z e t orze ie i udostęp ia ie ielu kokpitó

● Łat e dostoso a ie dash oard’u - JSON

● Eksportowanie wyników

K jak Kibana

Wykres koło y:

https://www.elastic.co/blog/kibana-4-for-investigating-pacs-super-pacs-and-your-neighbors

K jak Kibana

Histogram:

http://blog.qbox.io/kibana-4-and-elasticsearch-v-1-4-4-and-1-3-9

K jak Kibana

Tabela danych:

https://www.elastic.co/blog/kibana-4-for-investigating-pacs-super-pacs-and-your-neighbors

K jak Kibana

Wykres po iązań:

http://demo.packetbeat.com/#/dashboard/elasticsearch/Packetbeat%2520Statistics

K jak Kibana

Instalacja i konfiguracja

● Instalacja Kibany:

o wget i unzip najnowszej paczki do pobrania z strony

https://www.elastic.co/downloads

● Konfiguracja:

o Ki a a jest sko figuro a a a do yśl y port Elasti sea h’a 9

● Uruchomienie Kibany:

o ./bin/kibana

● Start w przeglądarce: o http://YOURDOMAIN.com:5601

ELK Stack

ARCHITEKTURA

ELK - Architektura

Podstawowa:

Jaki jest potencjalny problem?

ElasticSearch REST API

ELK - Architektura

Wydaj ość + skalo al ość Ko figura ja z ykorzysta ie Redis’a

Dostawcy

Indekser

ELK - Architektura

Wydaj ość + skalo al ość Ko figura ja z ykorzysta ie e ha iz u kolejkują ego

Indekser

Dostawcy

Dodatkowe

NARZĘDZIA

Narzędzia

ElasticSearch Plugin: Head Pa el o itoro a ia i zarządza ia Elasti Sear h’e

Instalacja:

● elasticsearch/bin/plugin -install mobz/elasticsearch-head

● http://localhost:9200/_plugin/head/

Narzędzia

ElasticSearch Plugin: Morfologik Plugi poz alają y ykorzystać polskie z aki w zapytaniach do ElasticSearch.

Instalacja:

● cd elasticsearch

● bin/plugin -install com.github.chytreg/elasticsearch-analysis-

morfologik/2.3.1

ELK Stack

Podsumowanie

● Ujednolicona struktura logów

● Scentralizowany system logów

● Dash orad spo agają y yszuki a ie i a alizo a ie

● Zape ie ie iągłego o itori gu

● Szybszy czas reakcji

● Sz zęśli y Klie t otrzy a kolej e ykresy :)