Agregacja i analiza logów
Transcript of 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
Problemy logów
Brak spójnego formatu logów.
http://blog.tersmitten.nl/how-to-colorize-your-log-files-with-ccze.html
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
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
https://www.elastic.co/blog/kibana-4-literally
K jak Kibana
Wykres słupko y:
https://www.elastic.co/blog/kibana-4-beta-2-get-now
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
Geolokalizacja:
https://www.elastic.co/blog/kibana-4-literally
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 - Architektura
Wydaj ość + skalo al ość Ko figura ja z ykorzysta ie e ha iz u kolejkują ego
Indekser
Dostawcy
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
Narzędzia
Marvel Aplika ja do iągłego o itori gu Elasti Sear h’a
http://blog.qbox.io/elasticsearch-marvel-released
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 :)
VS
http://blog.rootshell.be/tag/unix/
http://imgbuddy.com/kibana-demo.asp