SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
RETOUR D’EXPERIENCE SUR NOTRE
STACK DE LOGS
On va se dire les vrais affaires
QUI SUIS-JE ?
Julien Maitrehenry
DevOps at PetalMD
jmaitrehenry.ca

https://github.com/jmaitrehenry

@jmaitrehenry
AGENDA
➤ Contexte
➤ Notre stack
➤ Elasticsearch
➤ Les problèmes que l’on a eu
➤ Bonnes pratiques pour la stack ELK
➤ Démo
CONTEXTE
Des metrics, y’a qu’ça d’vrai !
CONTEXTE
➤ Rails web app log: ~2.3 millions docs/jour
➤ 1 index daily
➤ Frontend monitoring: ~700k docs/jour
➤ 1 index daily
➤ nginx: ~3.6 millions docs/jour
➤ 1 index daily
➤ Sidekiq log: ~1.5 million docs/jour
➤ 2 indexes weekly
➤ Quelques autres petits indexes
NOTRE STACK
La plus belle du monde et plus encore !
NOTRE STACK
➤ Applicatif
➤ Serveurs web nginx pour les apps frontend
➤ Serveur web nginx+passenger pour ruby
➤ Serveur Sidekiq pour les background jobs
➤ Logs
➤ Logstash + redis
➤ Logstash as rsyslog server
➤ Elasticsearch as storage engine
➤ Visualisation
➤ Kibana
➤ Grafana
NOTRE STACK
ELASTICSEARCH
C’est quoi cette bête ?
ELASTICSEARCH - ELASTIC STACK
ELASTICSEARCH - HISTORY
➤ 0.4: first version was released in February 2010
➤ 1.0: released in 2014
➤ 2.0: released in 2015
➤ 5.0: released in 2016
➤ Open Source
➤ Apache License
ELASTICSEARCH - C’EST QUOI
➤ Distributed data storage & information retrieval plateform
➤ Search Engine / aggregation engine / analytics
➤ Suggestions / percolation / highlighting / geo
➤ Document store
➤ Horizontally distributed
➤ Highly available
➤ Real time / Near real time
➤ Simple RestFull API
ELASTICSEARCH
LES PROBLÈMES QUE L’ON A EU
Y’en aura pas d’problèmes qu’ils disaient ! Y’en aura
pas…
LES PROBLÈMES
➤ Pas de sécurité / authentification
➤ Trop lent à faire des rapports sur 3 mois
➤ Too many open files (Même après avoir une limite à 64k)
LES PROBLÈMES - PAS DE SÉCURITÉ
➤ Il ne possède pas :
➤ de système d’encryption node <> client
➤ d’encryption node <> node
➤ de système d’authentification client <> node
➤ de système d’authentification node <> node
➤ Existe des plugins:
➤ X-Pack, anciennement Shield - $$$
➤ ARMOR, open source, peu de support
LES PROBLÈMES - TROP LENT À FAIRE DES RAPPORTS
➤ Faire des rapports sur plusieurs mois était vraiment lent voir
planté
➤ En relançant plusieurs fois le même rapport, il pouvait
fonctionner
➤ Voir le problème Too many open files
PROBLÈMES - TOO MANY OPEN FILES
➤ Mon problème préféré ! Et le plus tough à fixer.
➤ Impossible de mettre nofile à unlimited avec centos, ES
l’override
➤ 1 index = 5 shards + 5 shards de replica (by default)
➤ 1 shard = 1 process lucene = plusieurs file descriptor
➤ Fail random après un certain temps, ça peut être le port 9200
qui plante…
➤ Si ça vous arrive, on pourra discuter de ma solution un peu pas propre
du tout.
BONNES PRATIQUES
Un peu découvert sur le tas
BONNES PRATIQUES - CLUSTER DE LOGS
➤ Avoir minimum 3 nodes (HA)
➤ Augmenter de 2 ensuite
➤ Avant 10 nodes, les nodes devrait être toute master=true
et data=true
➤ Choisir des serveurs moyen au lieu de gros serveurs
➤ Désactiver le Raid, ne pas utiliser de SAN / NAS
➤ ES le gère pour nous, c’est une perte d’espace
BONNES PRATIQUES - CLUSTER DE LOGS
➤ Bien configurer le nombre de shards
➤ On peut le réduire par après (ES >= 5.0) mais pas l’augmenter
➤ Ne pas mettre trop de shard !
➤ Bien configurer la granularité de nos indexes (daily / weekly /…)
➤ Pour des logs, ne jamais utiliser qu’un seul index
➤ Réduire le nombre de shard et d’index avec le temps
➤ Si le nombre de document est assez faible 1 shard + 1 replica
par index
➤ Regrouper les daily en weekly, weekly en monthly suivant le
volume
DEMO
Vas-y ! Envoie la sauce !
ASK
ALL THE QUESTIONS
Mais pas trop là, j’fais que présenter la job des autres

Contenu connexe

Tendances

Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Alain Ganuchaud
 
Moussasambe projet de securite zabbix
Moussasambe projet de securite zabbixMoussasambe projet de securite zabbix
Moussasambe projet de securite zabbixmoussa sambe
 
Les nouveautés de Firefox 3
Les nouveautés de Firefox 3Les nouveautés de Firefox 3
Les nouveautés de Firefox 3Thomas Bassetto
 
Débridez les performances de vos applications avec Chronicle Queue
Débridez les performances de vos applications avec Chronicle QueueDébridez les performances de vos applications avec Chronicle Queue
Débridez les performances de vos applications avec Chronicle QueueThierryAbalea
 
Nginx - Serveur HTTP haute performances
Nginx - Serveur HTTP haute performancesNginx - Serveur HTTP haute performances
Nginx - Serveur HTTP haute performancesPascal Armand
 
08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)Noël
 
Zabix formation-zabbix-supervision-d-infrastructure
Zabix formation-zabbix-supervision-d-infrastructureZabix formation-zabbix-supervision-d-infrastructure
Zabix formation-zabbix-supervision-d-infrastructureCERTyou Formation
 
[FR] Les requêtes HTTP de l'extrême
[FR] Les requêtes HTTP de l'extrême[FR] Les requêtes HTTP de l'extrême
[FR] Les requêtes HTTP de l'extrêmeOVHcloud
 
Sécuriser un serveur web
Sécuriser un serveur webSécuriser un serveur web
Sécuriser un serveur webTaoufik JABBARI
 
Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016
Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016
Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016Nicolas Ledez
 
Geek Time Juin 2016 : Node.js
Geek Time Juin 2016 : Node.jsGeek Time Juin 2016 : Node.js
Geek Time Juin 2016 : Node.jsOLBATI
 

Tendances (20)

Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013
 
Moussasambe projet de securite zabbix
Moussasambe projet de securite zabbixMoussasambe projet de securite zabbix
Moussasambe projet de securite zabbix
 
Mini projet Zabbix
Mini projet ZabbixMini projet Zabbix
Mini projet Zabbix
 
Réseau MiNET
Réseau MiNETRéseau MiNET
Réseau MiNET
 
Serveur Zabbix
Serveur ZabbixServeur Zabbix
Serveur Zabbix
 
Ocs
OcsOcs
Ocs
 
Les nouveautés de Firefox 3
Les nouveautés de Firefox 3Les nouveautés de Firefox 3
Les nouveautés de Firefox 3
 
Un navigateur, comment ça marche
Un navigateur, comment ça marche  Un navigateur, comment ça marche
Un navigateur, comment ça marche
 
Débridez les performances de vos applications avec Chronicle Queue
Débridez les performances de vos applications avec Chronicle QueueDébridez les performances de vos applications avec Chronicle Queue
Débridez les performances de vos applications avec Chronicle Queue
 
Nginx - Serveur HTTP haute performances
Nginx - Serveur HTTP haute performancesNginx - Serveur HTTP haute performances
Nginx - Serveur HTTP haute performances
 
Squid
SquidSquid
Squid
 
08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)
 
Storage Replica
Storage ReplicaStorage Replica
Storage Replica
 
Zabix formation-zabbix-supervision-d-infrastructure
Zabix formation-zabbix-supervision-d-infrastructureZabix formation-zabbix-supervision-d-infrastructure
Zabix formation-zabbix-supervision-d-infrastructure
 
[FR] Les requêtes HTTP de l'extrême
[FR] Les requêtes HTTP de l'extrême[FR] Les requêtes HTTP de l'extrême
[FR] Les requêtes HTTP de l'extrême
 
Compte rendu crontab
Compte rendu crontabCompte rendu crontab
Compte rendu crontab
 
Sécuriser un serveur web
Sécuriser un serveur webSécuriser un serveur web
Sécuriser un serveur web
 
Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016
Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016
Retour d'XP de saltstack chez Cozy Cloud - web2day 15 juin 2016
 
Geek Time Juin 2016 : Node.js
Geek Time Juin 2016 : Node.jsGeek Time Juin 2016 : Node.js
Geek Time Juin 2016 : Node.js
 
Windows Server2016 - Episode01 - NanoServer
Windows Server2016 - Episode01 - NanoServerWindows Server2016 - Episode01 - NanoServer
Windows Server2016 - Episode01 - NanoServer
 

Similaire à Retour d'expérience sur notre stack de log

.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotiqueMicrosoft
 
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Nicolas Silberman
 
Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010JUG Lausanne
 
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Jérôme Mainaud
 
Le chiffrement en 2019 - Lybero.net - Arnaud Laprévote
Le chiffrement en 2019 - Lybero.net - Arnaud LaprévoteLe chiffrement en 2019 - Lybero.net - Arnaud Laprévote
Le chiffrement en 2019 - Lybero.net - Arnaud Laprévotealaprevote
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPressChi Nacim
 
Les containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienLes containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienRachid Zarouali
 
Elasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautésElasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautésMathieu Elie
 
VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023SpikeeLabs
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenableLeTesteur
 
Importer 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4jImporter 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4jGabriel Pillet 🐙
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Jean Gabès
 
Bien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionBien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionMarc Boivin
 
Php 7.3 et ses RFC (AFUP Toulouse)
Php 7.3 et ses RFC  (AFUP Toulouse)Php 7.3 et ses RFC  (AFUP Toulouse)
Php 7.3 et ses RFC (AFUP Toulouse)Damien Seguy
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrOxalide
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPrestaShop
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Jérôme Petazzoni
 

Similaire à Retour d'expérience sur notre stack de log (20)

Exchange 2013 Bonnes pratiques
Exchange 2013 Bonnes pratiques Exchange 2013 Bonnes pratiques
Exchange 2013 Bonnes pratiques
 
Hackerspace jan-2013
Hackerspace jan-2013Hackerspace jan-2013
Hackerspace jan-2013
 
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
 
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
 
Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010
 
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
 
Le chiffrement en 2019 - Lybero.net - Arnaud Laprévote
Le chiffrement en 2019 - Lybero.net - Arnaud LaprévoteLe chiffrement en 2019 - Lybero.net - Arnaud Laprévote
Le chiffrement en 2019 - Lybero.net - Arnaud Laprévote
 
Optimiser wordpress
Optimiser wordpressOptimiser wordpress
Optimiser wordpress
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPress
 
Les containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienLes containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicien
 
Elasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautésElasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautés
 
VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenable
 
Importer 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4jImporter 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4j
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)
 
Bien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionBien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en production
 
Php 7.3 et ses RFC (AFUP Toulouse)
Php 7.3 et ses RFC  (AFUP Toulouse)Php 7.3 et ses RFC  (AFUP Toulouse)
Php 7.3 et ses RFC (AFUP Toulouse)
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.Fr
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 

Plus de Julien Maitrehenry

Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?Julien Maitrehenry
 
A la découverte de kubernetes
A la découverte de kubernetesA la découverte de kubernetes
A la découverte de kubernetesJulien Maitrehenry
 
Comment maitriser git et produire de beaux commits
Comment maitriser git et produire de beaux commitsComment maitriser git et produire de beaux commits
Comment maitriser git et produire de beaux commitsJulien Maitrehenry
 
Global Azure Bootcamp Québec - Container on Azure
Global Azure Bootcamp Québec - Container on AzureGlobal Azure Bootcamp Québec - Container on Azure
Global Azure Bootcamp Québec - Container on AzureJulien Maitrehenry
 
Build a Docker Swarm cluster on Azure
Build a Docker Swarm cluster on Azure Build a Docker Swarm cluster on Azure
Build a Docker Swarm cluster on Azure Julien Maitrehenry
 
Docker, ça mange quoi au printemps
Docker, ça mange quoi au printempsDocker, ça mange quoi au printemps
Docker, ça mange quoi au printempsJulien Maitrehenry
 
Sécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbot
Sécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbotSécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbot
Sécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbotJulien Maitrehenry
 
Fullstack monitoring - Overview
Fullstack monitoring - OverviewFullstack monitoring - Overview
Fullstack monitoring - OverviewJulien Maitrehenry
 
Docker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-templateDocker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-templateJulien Maitrehenry
 

Plus de Julien Maitrehenry (12)

Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?
 
A la découverte de kubernetes
A la découverte de kubernetesA la découverte de kubernetes
A la découverte de kubernetes
 
Comment maitriser git et produire de beaux commits
Comment maitriser git et produire de beaux commitsComment maitriser git et produire de beaux commits
Comment maitriser git et produire de beaux commits
 
Docker, but what it is?
Docker, but what it is?Docker, but what it is?
Docker, but what it is?
 
Global Azure Bootcamp Québec - Container on Azure
Global Azure Bootcamp Québec - Container on AzureGlobal Azure Bootcamp Québec - Container on Azure
Global Azure Bootcamp Québec - Container on Azure
 
Build a Docker Swarm cluster on Azure
Build a Docker Swarm cluster on Azure Build a Docker Swarm cluster on Azure
Build a Docker Swarm cluster on Azure
 
Docker, ça mange quoi au printemps
Docker, ça mange quoi au printempsDocker, ça mange quoi au printemps
Docker, ça mange quoi au printemps
 
Code, ship and run
Code, ship and runCode, ship and run
Code, ship and run
 
Sécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbot
Sécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbotSécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbot
Sécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbot
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Fullstack monitoring - Overview
Fullstack monitoring - OverviewFullstack monitoring - Overview
Fullstack monitoring - Overview
 
Docker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-templateDocker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-template
 

Retour d'expérience sur notre stack de log

  • 1. RETOUR D’EXPERIENCE SUR NOTRE STACK DE LOGS On va se dire les vrais affaires
  • 2. QUI SUIS-JE ? Julien Maitrehenry DevOps at PetalMD jmaitrehenry.ca
 https://github.com/jmaitrehenry
 @jmaitrehenry
  • 3. AGENDA ➤ Contexte ➤ Notre stack ➤ Elasticsearch ➤ Les problèmes que l’on a eu ➤ Bonnes pratiques pour la stack ELK ➤ Démo
  • 4. CONTEXTE Des metrics, y’a qu’ça d’vrai !
  • 5. CONTEXTE ➤ Rails web app log: ~2.3 millions docs/jour ➤ 1 index daily ➤ Frontend monitoring: ~700k docs/jour ➤ 1 index daily ➤ nginx: ~3.6 millions docs/jour ➤ 1 index daily ➤ Sidekiq log: ~1.5 million docs/jour ➤ 2 indexes weekly ➤ Quelques autres petits indexes
  • 6. NOTRE STACK La plus belle du monde et plus encore !
  • 7. NOTRE STACK ➤ Applicatif ➤ Serveurs web nginx pour les apps frontend ➤ Serveur web nginx+passenger pour ruby ➤ Serveur Sidekiq pour les background jobs ➤ Logs ➤ Logstash + redis ➤ Logstash as rsyslog server ➤ Elasticsearch as storage engine ➤ Visualisation ➤ Kibana ➤ Grafana
  • 11. ELASTICSEARCH - HISTORY ➤ 0.4: first version was released in February 2010 ➤ 1.0: released in 2014 ➤ 2.0: released in 2015 ➤ 5.0: released in 2016 ➤ Open Source ➤ Apache License
  • 12. ELASTICSEARCH - C’EST QUOI ➤ Distributed data storage & information retrieval plateform ➤ Search Engine / aggregation engine / analytics ➤ Suggestions / percolation / highlighting / geo ➤ Document store ➤ Horizontally distributed ➤ Highly available ➤ Real time / Near real time ➤ Simple RestFull API
  • 14. LES PROBLÈMES QUE L’ON A EU Y’en aura pas d’problèmes qu’ils disaient ! Y’en aura pas…
  • 15. LES PROBLÈMES ➤ Pas de sécurité / authentification ➤ Trop lent à faire des rapports sur 3 mois ➤ Too many open files (Même après avoir une limite à 64k)
  • 16. LES PROBLÈMES - PAS DE SÉCURITÉ ➤ Il ne possède pas : ➤ de système d’encryption node <> client ➤ d’encryption node <> node ➤ de système d’authentification client <> node ➤ de système d’authentification node <> node ➤ Existe des plugins: ➤ X-Pack, anciennement Shield - $$$ ➤ ARMOR, open source, peu de support
  • 17. LES PROBLÈMES - TROP LENT À FAIRE DES RAPPORTS ➤ Faire des rapports sur plusieurs mois était vraiment lent voir planté ➤ En relançant plusieurs fois le même rapport, il pouvait fonctionner ➤ Voir le problème Too many open files
  • 18. PROBLÈMES - TOO MANY OPEN FILES ➤ Mon problème préféré ! Et le plus tough à fixer. ➤ Impossible de mettre nofile à unlimited avec centos, ES l’override ➤ 1 index = 5 shards + 5 shards de replica (by default) ➤ 1 shard = 1 process lucene = plusieurs file descriptor ➤ Fail random après un certain temps, ça peut être le port 9200 qui plante… ➤ Si ça vous arrive, on pourra discuter de ma solution un peu pas propre du tout.
  • 19. BONNES PRATIQUES Un peu découvert sur le tas
  • 20. BONNES PRATIQUES - CLUSTER DE LOGS ➤ Avoir minimum 3 nodes (HA) ➤ Augmenter de 2 ensuite ➤ Avant 10 nodes, les nodes devrait être toute master=true et data=true ➤ Choisir des serveurs moyen au lieu de gros serveurs ➤ Désactiver le Raid, ne pas utiliser de SAN / NAS ➤ ES le gère pour nous, c’est une perte d’espace
  • 21. BONNES PRATIQUES - CLUSTER DE LOGS ➤ Bien configurer le nombre de shards ➤ On peut le réduire par après (ES >= 5.0) mais pas l’augmenter ➤ Ne pas mettre trop de shard ! ➤ Bien configurer la granularité de nos indexes (daily / weekly /…) ➤ Pour des logs, ne jamais utiliser qu’un seul index ➤ Réduire le nombre de shard et d’index avec le temps ➤ Si le nombre de document est assez faible 1 shard + 1 replica par index ➤ Regrouper les daily en weekly, weekly en monthly suivant le volume
  • 22. DEMO Vas-y ! Envoie la sauce !
  • 23. ASK ALL THE QUESTIONS Mais pas trop là, j’fais que présenter la job des autres