SlideShare una empresa de Scribd logo
1 de 56
Descargar para leer sin conexión
Elasticsearch -> Logi & Metryki
Czyli jak ułatwić sobie życie
Rafał Kuć
Open Source
Shipping
File
Shipping
File Shipper
Shipping
Shipper
Shipping
File Shipper
File Shipper
File Shipper
Shipping
File Shipper
File Shipper
File Shipper
Centralny
Bufor
Shipping
File Shipper
File Shipper
File Shipper
Centralny
Bufor
data
Shipping
File Shipper
File Shipper
File Shipper
Centralny
Bufor
ES ES ES
ES ES ES
ES ES ES
data
Log shipper
File Shipper
File Shipper
File Shipper
Centralny
Bufor
ES ES ES
ES ES ES
ES ES ES
data
O czym pamiętać?
metrics
Centralized
Buffer
Co użyć do wysyłania logów?
Który protokół wykorzystć
Jak buforować dane
Logować do JSON czy parsować?
Bufory
wydajność & dostępność
batches & threads co jeżeli padnie centralny bufor
Typy buforów
Disk || memory || podejście typu hybrid
Na źródle || centralizowany
App
Bufor
App
Bufor
lokalny bufor
App
App
Kafka / Redis / Logstash / etc…
ES
ES
Centralny bufor
File Shipper
File Shipper
File Shipper
Centralny
Bufor
ES ES ES
ES ES ES
ES ES ES
data
Dlaczego Apache Kafka?
Szybka i łatwa w użyciu
Łatwość skalowania
Fault tolerant & highly available
Wsparcie streamingu
Działa w modelu publish/subscribe
Kafka
ZooKeeper
ZooKeeper
ZooKeeper
ensemble
Kafka
Kafka
KafkaKafka
Kafka & topics
es_metrics system_metrics
mongo_metrics app_metrics
Kafka zapisuje dane
w topikach
zapisanych na dysku
Kafka & topics & partycje & repliki
metrics
partition 2
metrics
partition 1
metrics
partition 3
metrics
partition 4
metrics replica
partition 2
metrics replica
partition 1
metrics replica
partition 3
mertics replica
partition 4
replication replication
Skalowanie
metrics
partition 1
Skalowanie
metrics
partition 1
metrics
partition 2
metrics
partition 3
mertics
partition 4
Skalowanie
metrics
partition 1
metrics
partition 2
metrics
partition 3
metrics
partition 4
metrics
partition 5
metrics
partition 6
metrics
partition 7
metrics
partition 8
metrics
partition 9
metrics
partition 10
metrics
partition 11
metrics
partition 12
metrics
partition 13
metrics
partition 14
metrics
partition 15
metrics
partition 16
O czym pamiętać korzystając z Kafki
Skaluje się poprzez dodawanie partycji nie wątków
Więcej IOPS == lepiej
Liczba konsumentów powinna być równa liczbie partycji
Repliki wyorzystywane tylko do HA & FT
Offset zapisywany jest per konsumer
Elasticsearch
File Shipper
File Shipper
File Shipper
Centralized
Buffer
ES ES ES
ES ES ES
ES ES ES
data
Elasticsearch – architektura klastra
client
client
client
data
data
data
data
data
data
master
master
master
ingest
ingest
ingest
Pamiętaj o dedykowanych masterach
client
client
client
data
data
data
data
data
data
master
master
master
discovery.zen.minimum_master_nodes -> N/2 + 1 master eligible nodes
ingest
ingest
ingest
Elasticsearch – Indeksy
Index – logiczne miejsce dla danych
Index – może być porównany do tabeli w DB
Index – zbudowany z jednego lub więcej shardów
Index – może by rozproszony
Skalowanie Elasticsearch
metrics
Shard1
Skalowanie Elasticsearch
mongo_metrics
Shard1
app_metrics
Shard1
es_metrics
Shard1
Skalowanie Elasticsearch
metrics
Shard1
metrics
Shard2
metrics
Shard3
metrics
Shard4
Skalowanie Elasticsearch
metrics
Shard3
metrics
Shard2
metrics
Shard4
metrics
Shard1
Skalowanie Elasticsearch
metrics
Shard1
metrics
Replica4
metrics
Shard2
metrics
Replica3
metrics
Shard4
metrics
Replica1
metrics
Shard3
metrics
Replica2
Jeden duży index to zły pomysł
Niewystarczająca wydajność dla timebased data
Indeksowanie zwalnia wraz ze wzrostem ilości danych
Coraz większy koszt merge
Delete by query konieczne do kontroli retencji danych
Dzienne indeksy to dobry start
2017.11.16 2017.11.17 2017.11.20 2017.11.21. . .
Indeksowanie jest szybsze na małych indeksach
Usuwanie danych jest tanie
Wyszukiwanie tylko na danych które chcemy
Statyczne indeksy są “cache friendly”
indexing
most searches
Dzienne indeksy nie są w pełni optymalne
black
friday
sobota
niedziela
load
nie jest
równy
Indeksy oparte o wielkość
limit wielkości
metrics_01
indeksowanie
Indeksy oparte o wielkość
limit wielkości
metrics_01
indeksowanie
Indeksy oparte o wielkość
metrics_01
indeksowanie
metrics_02
Indeksy oparte o wielkość
metrics_01
indeksowanie
metrics_02
Size based indices are optimal
metrics_01 metrics_02
indeksowanie
metrics_N
. . .
Indeksy oparte o wielkość
Przewidywalna wydajność
Lepszy balans danych
Mniej shardów
Łatwiejsza obsługa nagłego wzrostu danych
Mniejsze koszty poprzez lepsze wykorzystanie sprzętu
Elasticsearch - konfiguracja
Trzymaj index.refresh_interval na wartości maksymalnej
1 sec -> 100%, 5 sec -> 125%, 30 sec -> 175%
Tuning merge policy:
- możliwy ze względu na use-case
- segments_per_tier -> wyżej
- max_merge_at_once-> wyżej
- max_merged_segment -> niżej
Prefiks do powyższych
index.merge.policy
} szybsze
indeksowanie
Elasticsearch - optymalizacja
Ze względu na dane oparte o czas możemy optymalizować
client
client
client
data
data
data
data
data
data
master
master
master
ingest
ingest
ingest
Architektura hot – cold
ES hot ES cold ES cold
-Dnode.attr.tag=hot -Dnode.attr.tag=cold -Dnode.attr.tag=cold
Architektura hot – cold
metrics_2017.11.22
ES hot ES cold ES cold
-Dnode.attr.tag=hot -Dnode.attr.tag=cold -Dnode.attr.tag=cold
curl -XPUT localhost:9200/metrics_2017.11.22 -d '{
"settings" : {
"index.routing.allocation.exclude.tag" : "cold",
"index.routing.allocation.include.tag" : "hot"
}
}'
Architektura hot – cold
metrics_2017.11.22
ES hot ES cold ES cold
indeksowanie
Architektura hot – cold
metrics_2017.11.22
metrics_2017.11.23
ES hot ES cold ES cold
indeksowanie
Architektura hot – cold
metrics_2017.11.22
metrics_2017.11.23
ES hot ES cold ES cold
indeksowanie
curl -XPUT localhost:9200/metrics_2017.11.22/_settings -d '{
"index.routing.allocation.exclude.tag" : "hot",
"index.routing.allocation.include.tag” : "cold"
}'
Architektura hot – cold
metrics_2017.11.23 metrics_2017.11.22
ES hot ES cold ES cold
indeksowanie
Hot – cold architecture
metrics_2017.11.23
metrics_2017.11.24
metrics_2017.11.22
ES hot ES cold ES cold
indeksowanie
Hot – cold architecture
metrics_2017.11.23
metrics_2017.11.24
metrics_2017.11.22
ES hot ES cold ES cold
indeksowanie
Hot – cold architecture
metrics_2017.11.24 metrics_2017.11.22 metrics_2017.11.23
ES hot ES cold ES cold
indeksowanie
Hot – cold architecture
Hot ES Tier
CPU
I/O
Cold ES Tier
RAM
I/O
ES cold
Cold ES Tier
RAM
I/O
Wymagania Elasticsearch client node
client
client
client
data
data
data
data
data
data
master
master
master
ingest
ingest
ingest
Wymagania Elasticsearch ingest node
client
client
client
data
data
data
data
data
data
master
master
master
ingest
ingest
ingest
Wymagania Elasticsearch master node
client
client
client
data
data
data
data
data
data
master
master
master
ingest
ingest
ingest
Dzięki!
Rafał
rafal.kuc@sematext.com
@kucrafal
http://sematext.com
@sematext http://sematext.com/jobs

Más contenido relacionado

Similar a Elasticsearch - logi i metryki

Bazy danych SQL. Teoria i praktyka
Bazy danych SQL. Teoria i praktykaBazy danych SQL. Teoria i praktyka
Bazy danych SQL. Teoria i praktykaWydawnictwo Helion
 
Sql Dla Administratora i Dewelopera
Sql Dla Administratora i DeweloperaSql Dla Administratora i Dewelopera
Sql Dla Administratora i Deweloperanexik
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...Michal Furmankiewicz
 
SQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracjiSQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracjiSQLExpert.pl
 
HPE ProLiant DL300 - serwery rackowe
HPE ProLiant DL300 - serwery rackoweHPE ProLiant DL300 - serwery rackowe
HPE ProLiant DL300 - serwery rackowehpepolska
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Divante
 
DynamoDB – podstawy modelowania danych dla opornych
DynamoDB – podstawy modelowania danych dla opornychDynamoDB – podstawy modelowania danych dla opornych
DynamoDB – podstawy modelowania danych dla opornychThe Software House
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz
 
Roman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danychRoman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danychWomen in Technology Poland
 
1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?
1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?
1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?Tobias Koprowski
 
Jak skrócić czas wykonywania testów integracyjnych?
Jak skrócić czas wykonywania testów integracyjnych?Jak skrócić czas wykonywania testów integracyjnych?
Jak skrócić czas wykonywania testów integracyjnych?Łukasz Zakrzewski
 
Podążając śladami użytkownika Windows – elementy informatyki śledczej
Podążając śladami użytkownika Windows –elementy informatyki śledczejPodążając śladami użytkownika Windows –elementy informatyki śledczej
Podążając śladami użytkownika Windows – elementy informatyki śledczejKrzysztof Binkowski
 
DBPLUS Performance Monitor dla Oracle
DBPLUS Performance Monitor dla OracleDBPLUS Performance Monitor dla Oracle
DBPLUS Performance Monitor dla OracleDBPLUS
 
Łukasz Grala - BI w Sql 2008
Łukasz Grala - BI w Sql 2008Łukasz Grala - BI w Sql 2008
Łukasz Grala - BI w Sql 2008nexik
 
Logi dla dużych firm_Tameshi na AWS Community Day .pdf
Logi dla dużych firm_Tameshi na AWS Community Day .pdfLogi dla dużych firm_Tameshi na AWS Community Day .pdf
Logi dla dużych firm_Tameshi na AWS Community Day .pdfTameshi Team
 

Similar a Elasticsearch - logi i metryki (20)

Bazy danych SQL. Teoria i praktyka
Bazy danych SQL. Teoria i praktykaBazy danych SQL. Teoria i praktyka
Bazy danych SQL. Teoria i praktyka
 
Sql Dla Administratora i Dewelopera
Sql Dla Administratora i DeweloperaSql Dla Administratora i Dewelopera
Sql Dla Administratora i Dewelopera
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
 
Optymalizacja serwisow internetowych - Filestube
Optymalizacja serwisow internetowych - FilestubeOptymalizacja serwisow internetowych - Filestube
Optymalizacja serwisow internetowych - Filestube
 
Web Cache
Web CacheWeb Cache
Web Cache
 
SQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracjiSQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracji
 
HPE ProLiant DL300 - serwery rackowe
HPE ProLiant DL300 - serwery rackoweHPE ProLiant DL300 - serwery rackowe
HPE ProLiant DL300 - serwery rackowe
 
PHP. Rozmówki
PHP. RozmówkiPHP. Rozmówki
PHP. Rozmówki
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13
 
DynamoDB – podstawy modelowania danych dla opornych
DynamoDB – podstawy modelowania danych dla opornychDynamoDB – podstawy modelowania danych dla opornych
DynamoDB – podstawy modelowania danych dla opornych
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
 
Roman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danychRoman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danych
 
1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?
1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?
1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?
 
O danych w 2016
O danych w 2016O danych w 2016
O danych w 2016
 
Jak skrócić czas wykonywania testów integracyjnych?
Jak skrócić czas wykonywania testów integracyjnych?Jak skrócić czas wykonywania testów integracyjnych?
Jak skrócić czas wykonywania testów integracyjnych?
 
Podążając śladami użytkownika Windows – elementy informatyki śledczej
Podążając śladami użytkownika Windows –elementy informatyki śledczejPodążając śladami użytkownika Windows –elementy informatyki śledczej
Podążając śladami użytkownika Windows – elementy informatyki śledczej
 
DBPLUS Performance Monitor dla Oracle
DBPLUS Performance Monitor dla OracleDBPLUS Performance Monitor dla Oracle
DBPLUS Performance Monitor dla Oracle
 
Access 2007 PL. Kurs
Access 2007 PL. KursAccess 2007 PL. Kurs
Access 2007 PL. Kurs
 
Łukasz Grala - BI w Sql 2008
Łukasz Grala - BI w Sql 2008Łukasz Grala - BI w Sql 2008
Łukasz Grala - BI w Sql 2008
 
Logi dla dużych firm_Tameshi na AWS Community Day .pdf
Logi dla dużych firm_Tameshi na AWS Community Day .pdfLogi dla dużych firm_Tameshi na AWS Community Day .pdf
Logi dla dużych firm_Tameshi na AWS Community Day .pdf
 

Más de Rafał Kuć

Solr Anti - patterns
Solr Anti - patternsSolr Anti - patterns
Solr Anti - patternsRafał Kuć
 
From zero to hero - Easy log centralization with Logstash and Elasticsearch
From zero to hero - Easy log centralization with Logstash and ElasticsearchFrom zero to hero - Easy log centralization with Logstash and Elasticsearch
From zero to hero - Easy log centralization with Logstash and ElasticsearchRafał Kuć
 
Administering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud ClustersAdministering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud ClustersRafał Kuć
 
Battle of the Giants round 2
Battle of the Giants round 2Battle of the Giants round 2
Battle of the Giants round 2Rafał Kuć
 
Battle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearchBattle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearchRafał Kuć
 
Scaling massive elastic search clusters - Rafał Kuć - Sematext
Scaling massive elastic search clusters - Rafał Kuć - SematextScaling massive elastic search clusters - Rafał Kuć - Sematext
Scaling massive elastic search clusters - Rafał Kuć - SematextRafał Kuć
 

Más de Rafał Kuć (6)

Solr Anti - patterns
Solr Anti - patternsSolr Anti - patterns
Solr Anti - patterns
 
From zero to hero - Easy log centralization with Logstash and Elasticsearch
From zero to hero - Easy log centralization with Logstash and ElasticsearchFrom zero to hero - Easy log centralization with Logstash and Elasticsearch
From zero to hero - Easy log centralization with Logstash and Elasticsearch
 
Administering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud ClustersAdministering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud Clusters
 
Battle of the Giants round 2
Battle of the Giants round 2Battle of the Giants round 2
Battle of the Giants round 2
 
Battle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearchBattle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearch
 
Scaling massive elastic search clusters - Rafał Kuć - Sematext
Scaling massive elastic search clusters - Rafał Kuć - SematextScaling massive elastic search clusters - Rafał Kuć - Sematext
Scaling massive elastic search clusters - Rafał Kuć - Sematext
 

Elasticsearch - logi i metryki