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
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
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
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 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
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
Dziękuję!
Bartosz Picho
sales@divante.co
divante.co/blog

Agregacja i analiza logów

  • 1.
  • 2.
    Agenda ● Problemy zlogami ● Jak to robimy w Divante - ELK Stack o Elasticsearch o Logstash o Kibana o Architektura o Dodatko e arzędzia ● Podsumowanie ● Pytania
  • 3.
    Jakie problemy zlogami oże y apotkać?
  • 4.
    Problemy logów Brak spójnegoformatu logów. http://blog.tersmitten.nl/how-to-colorize-your-log-files-with-ccze.html
  • 5.
    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
  • 6.
    Problemy logów O iążeie 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
  • 7.
    Problemy logów Złożo aar 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
  • 8.
    Problemy logów Ciągły oitori g • Bardzo utrud io e iągłe o itoro a ie szystki h para etró aplika ji • Wymagana wiedza techniczna
  • 9.
    Jak to robimyw Divante? ELK Stack
  • 10.
    Czym jest ELKStack? 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.
  • 11.
    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
  • 12.
    E jak ElasticSearch Instalacjai 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
  • 13.
    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
  • 14.
    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
  • 15.
    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
  • 16.
    L jak Logstash FiltrGROK ● 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}
  • 17.
    L jak Logstash Instalacjai 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
  • 18.
    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
  • 19.
  • 20.
    K jak Kibana Wykressłupko y: https://www.elastic.co/blog/kibana-4-beta-2-get-now
  • 21.
    K jak Kibana Wykreskoło y: https://www.elastic.co/blog/kibana-4-for-investigating-pacs-super-pacs-and-your-neighbors
  • 22.
  • 23.
    K jak Kibana Tabeladanych: https://www.elastic.co/blog/kibana-4-for-investigating-pacs-super-pacs-and-your-neighbors
  • 24.
  • 25.
    K jak Kibana Wykrespo iązań: http://demo.packetbeat.com/#/dashboard/elasticsearch/Packetbeat%2520Statistics
  • 26.
    K jak Kibana Instalacjai 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
  • 27.
  • 28.
    ELK - Architektura Podstawowa: Jakijest potencjalny problem? ElasticSearch REST API
  • 29.
    ELK - Architektura Wydajość + skalo al ość Ko figura ja z ykorzysta ie Redis’a Dostawcy Indekser
  • 30.
    ELK - Architektura Wydajość + skalo al ość Ko figura ja z ykorzysta ie e ha iz u kolejkują ego Indekser Dostawcy
  • 31.
  • 32.
    Narzędzia ElasticSearch Plugin: Head Pael 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/
  • 33.
    Narzędzia ElasticSearch Plugin: Morfologik Plugipoz 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
  • 34.
    Narzędzia Marvel Aplika ja doiągłego o itori gu Elasti Sear h’a http://blog.qbox.io/elasticsearch-marvel-released
  • 35.
    ELK Stack Podsumowanie ● Ujednoliconastruktura 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 :)
  • 36.
  • 37.