Architecture serveur virtualisée
Emission, transport, formatage, stockage des logs
Analyse des « dimensions » et « metrics...
 10 années d’expériences dans le web
 Chef de projet technique web
 Passionné d’open source
 Ancien DevOps
 Aguerri a...
 Introduction
 Architecture serveur
◦ Les différents services
◦ Virtualisation
 Superviser le service web
◦ Pourquoi ?
...
4© 2014 Guillaume MOCQUET
 Comprendre le contexte
◦ Serveur web à très fort trafic
 Identifier le besoin
◦ Superviser le service web
 Les problém...
6© 2014 Guillaume MOCQUET
Les différents services
7© 2014 Guillaume MOCQUET
8© 2014 Guillaume MOCQUET
Virtualisation
9© 2014 Guillaume MOCQUET
 Augmentation de la disponibilité des applications
 Déploiement rapide des nouvelles applications, services et données
...
Hyperviseur type1 : Nativ/ bare metal Hyperviseur type2 : Hosted
11© 2014 Guillaume MOCQUET
Hyperviseur type1 Hyperviseur type2
 Ressources dédiées
aux machines virtuelles
hébergées.
 1 seul Hyperviseur par
serve...
 VMware
◦ Société américaine fondée en 1998 spécialisée dans la
virtualisation d’architecture x86
 vSphere
◦ Base de la ...
 Dupliquer une machine se fait en quelques minutes
14
2) Paramétrage de la nouvelle machine
1) Clic droit sur la machine
...
 Sauvegarde de l’ensemble d’un système (mémoire
incluse) à un instant « t »
 Possibilité de revenir à un précédent snaps...
 Machines types
 Possibilité d’interagir via l’API
◦ VMware vSphere Web Services SDK
16© 2014 Guillaume MOCQUET
17© 2014 Guillaume MOCQUET
Pourquoi ?
18© 2014 Guillaume MOCQUET
 Répercussion de l’indisponibilité
◦ Coût financier important
 Google aurait perdu 750 000$ en 10 minutes en 2012
◦ Imag...
Identifier les anomalies
20© 2014 Guillaume MOCQUET
 Système
◦ Machine virtuelle « tombée »
◦ Service « planté »
◦ Espace disque saturé
◦ Problème réseau : synchronisation, ...
© 2014 Guillaume MOCQUET
 Logiciel de supervision / Monitoring
22
 Analyse des logs applicatifs
◦ Shell
◦ RegExp
23© 2014 Guillaume MOCQUET
24© 2014 Guillaume MOCQUET
Qu’est qu’un log ?
25© 2014 Guillaume MOCQUET
 Un évènement daté
◦ Erreur
◦ Succès
◦ Information
 Une action utilisateur datée
◦ Appel de page « classique » (code 200...
27© 2014 Guillaume MOCQUET
28© 2014 Guillaume MOCQUET
Trouver les informations
pertinentes
29© 2014 Guillaume MOCQUET
 Flot de données colossale
◦ Différencier les logs d’erreurs des logs « normaux »
 Générer localement au niveau de chaqu...
 Monitoring / collecte de logs
◦ Transparent
 La plus faible consommation de ressource possible
 CPU, mémoire, I/O
 Au...
32© 2014 Guillaume MOCQUET
Plus-value
33© 2014 Guillaume MOCQUET
 Plateforme centralisée
◦ Un seul point d’entrée
◦ Analyse de différents programmes
 Serveur web
 Serveur de base de do...
 Formatage des données
◦ Identification des informations
 Adresse IP client
 Page demandée
 Statut de retour
 Enrichi...
Architecture globale
36© 2014 Guillaume MOCQUET
37© 2014 Guillaume MOCQUET
Présentation des différents
services
© 2014 Guillaume MOCQUET 38
 Service / Programme
◦ Apache (natif, personnalisable)
◦ HAProxy (natif, personnalisable)
◦ DynDNS (personnalisé)
 Recom...
 Exemple de structure (standard)
◦ LogFormat "%h %{X-Forwarded-For}i %l %u %t HTTP %{X-Forwarded-Proto}i "%r" %>s
%O "%{R...
 Natif aux plateformes Linux / Unix
◦ Requiert de faibles ressources
◦ Simple à configurer, fiable et robuste
◦ Buffer
◦ ...
 Personnalisable
◦ Nombreux plug-in
 ElasticSearch Output plug-in existant
 /! Difficulté à formater et enrichir les lo...
 Configuration
◦ /etc/rsyslog.conf
◦ /etc/rsyslog.d/*.conf
 Véhiculer les messages via TCP (ou UDP)
43© 2014 Guillaume M...
 « Standalone » Java
 Supporté par ElasticSearch
 Même philosophie de fonctionnement que
syslog
 Nombreux plug-in
44© ...
 Scalabilité horizontale
◦ Flexible en fonction de la charge
45© 2014 Guillaume MOCQUET
 Configuration modulaire
◦ /etc/logstash/conf.d/*.conf
46© 2014 Guillaume MOCQUET
 Très grand nombre de protocoles supportés
◦ Local (files), réseau (tcp) ou externe (Twitter, AWS)
47© 2014 Guillaume MOC...
 Principal filtre : Grok (formatage)
© 2014 Guillaume MOCQUET 48
 Date
49© 2014 Guillaume MOCQUET
 XML, CSV, JSON, Etc.
◦ Pour plus d’informations
consulter la
documentation de
chacun des filtres
50© 2014 Guillaume MOCQ...
 Geoip
51© 2014 Guillaume MOCQUET
 Remplacement, suppression, etc.
52© 2014 Guillaume MOCQUET
 Conditions (filter seulement)
53© 2014 Guillaume MOCQUET
 Très grand nombre de protocoles supportés
◦ Local (files), réseau (tcp) ou externe (Twitter, AWS)
 Output ElasticSearch...
 Requiert Java
 Scalabilité horizontale
 API REST
55© 2014 Guillaume MOCQUET
 ElasticSearch Mapping
56© 2014 Guillaume MOCQUET
 « Standalone » HTML / JavaScript
◦ Requiert seulement un navigateur récent
◦ Configuration en 1 ligne via le fichier /co...
 Interface riche pour ElasticSearch
 Personnalisable à souhait
 Multi requêtes
 Filtrage des résultats
 Syntaxe de re...
 Requête simple
◦ response:403
 Requête de négation
◦ response:(-200 AND -301)
 Date
◦ @timestamp:>now
◦ @timestamp:>no...
 Log brut
◦ <182>Jan 28 14:12:09 haproxy[4446]: 90.3.218.220:35069
[28/Jan/2014:14:12:04.489] frontend_http apache2_http/...
 Formatage et enrichissement
◦ 192.168.1.48 157.56.92.160 - - [27/Jan/2014:09:42:11 +0100] HTTP http "GET /robots.txt
HTT...
 Facet @timestamp
62© 2014 Guillaume MOCQUET
 Calcul de métriques : min, max, comptage, moyenne
63© 2014 Guillaume MOCQUET
http://demo.kibana.org/
© 2014 Guillaume MOCQUET 64
Démo
© 2014 Guillaume MOCQUET 65
 Virtualisation
◦ Meilleure réactivité
◦ Favorise la montée en compétence de l’équipe technique
(cf. DevOps)
 Plateforme...
Avez-vous des questions ?
© 2014 Guillaume MOCQUET 67
 Virtualisation (VMware vSphere)
◦ http://www.vmware.com/fr/products/vsphere/
 Syslog
◦ http://tools.ietf.org/html/rfc54...
Prochain SlideShare
Chargement dans…5
×

[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps réel dans un milieu virtualisé

342 vues

Publié le

Cet article traite d’une part, de la solution de virtualisation d’infrastructure serveurs via la plateforme VMware vSphere / vCenter et d'autre part, de la plateforme open source d’analyse de logs des frontaux web en temps réel basée sur Rsyslog (extension du protocole basique Syslog), ElasticSearch, Logstash et Kibana (ELK Stack).

Publié dans : Données & analyses
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
342
Sur SlideShare
0
Issues des intégrations
0
Intégrations
47
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps réel dans un milieu virtualisé

  1. 1. Architecture serveur virtualisée Emission, transport, formatage, stockage des logs Analyse des « dimensions » et « metrics » Guillaume MOCQUET contact@guillaumemocquet.com NFE204 - Paris, 28/01/2014
  2. 2.  10 années d’expériences dans le web  Chef de projet technique web  Passionné d’open source  Ancien DevOps  Aguerri aux sites à très fort trafic (~20 MVU/mois)  Sensibilisé à la haute disponibilité (HA)  Sensibilisé à la tolérance de panne (FT) 2© 2014 Guillaume MOCQUET
  3. 3.  Introduction  Architecture serveur ◦ Les différents services ◦ Virtualisation  Superviser le service web ◦ Pourquoi ? ◦ Identifier les anomalies  Focus sur l’analyse des logs applicatifs ◦ Qu’est qu’un log ? ◦ Manipulation des données  Problématiques liées au fort trafic ◦ Trouver les informations pertinentes ◦ Priorité au service applicatif  Solution : chaîne Syslog, Logstash, ElasticSearch, Kibana ◦ Plus-value ◦ Présentation de l’Architecture globale ◦ Présentation des différents services  Démonstration  Conclusion  Questions / Réponses 3© 2014 Guillaume MOCQUET
  4. 4. 4© 2014 Guillaume MOCQUET
  5. 5.  Comprendre le contexte ◦ Serveur web à très fort trafic  Identifier le besoin ◦ Superviser le service web  Les problématiques ◦ Liées au fort trafic  La solution  Démonstration  Questions / Réponses © 2014 Guillaume MOCQUET 5
  6. 6. 6© 2014 Guillaume MOCQUET
  7. 7. Les différents services 7© 2014 Guillaume MOCQUET
  8. 8. 8© 2014 Guillaume MOCQUET
  9. 9. Virtualisation 9© 2014 Guillaume MOCQUET
  10. 10.  Augmentation de la disponibilité des applications  Déploiement rapide des nouvelles applications, services et données  Amélioration du management (cf. monitoring précis des VMs)  Meilleure orientation des demandes imprévues (nouvelles technologies, tests, etc.)  Optimisation du taux d’utilisation des ressources en virtualisation (60 à 80%) contre 10 à 20% en non virtualisation  Orienté Cloud Computing ◦ Grille / Cluster ◦ Haute disponibilité (High Availability : HA) ◦ Basculement (Fail-over) ◦ Tolérance des pannes (Fault tolerance : FT) 10© 2014 Guillaume MOCQUET
  11. 11. Hyperviseur type1 : Nativ/ bare metal Hyperviseur type2 : Hosted 11© 2014 Guillaume MOCQUET
  12. 12. Hyperviseur type1 Hyperviseur type2  Ressources dédiées aux machines virtuelles hébergées.  1 seul Hyperviseur par serveur.  Faible perte de performance (+/- 10%) par rapport à un système natif.  Ressources allouées pas seulement aux machines virtuelles.  Possibilité d’installer plusieurs hyperviseurs sur un même serveur. 12© 2014 Guillaume MOCQUET
  13. 13.  VMware ◦ Société américaine fondée en 1998 spécialisée dans la virtualisation d’architecture x86  vSphere ◦ Base de la plateforme de virtualisation Cloud VMware. Gestion des serveurs « hosts » ◦ A partir de 1300 € (démonstration 60 jours gratuit)  vCenter Operations Management (Extension vSphere) ◦ Plateforme de supervision du parc virtualisé ◦ A partir de 2100 € (démonstration 60 jours gratuit) 13© 2014 Guillaume MOCQUET
  14. 14.  Dupliquer une machine se fait en quelques minutes 14 2) Paramétrage de la nouvelle machine 1) Clic droit sur la machine que l’on souhaite copier 3) Duplication en cours… 4) Machine prête à l’emploi © 2014 Guillaume MOCQUET
  15. 15.  Sauvegarde de l’ensemble d’un système (mémoire incluse) à un instant « t »  Possibilité de revenir à un précédent snapshot en quelques secondes : cela réduit considérablement le temps d’indisponibilité du service. 15© 2014 Guillaume MOCQUET
  16. 16.  Machines types  Possibilité d’interagir via l’API ◦ VMware vSphere Web Services SDK 16© 2014 Guillaume MOCQUET
  17. 17. 17© 2014 Guillaume MOCQUET
  18. 18. Pourquoi ? 18© 2014 Guillaume MOCQUET
  19. 19.  Répercussion de l’indisponibilité ◦ Coût financier important  Google aurait perdu 750 000$ en 10 minutes en 2012 ◦ Image de marque négative ◦ Perte de client ◦ Perte de temps pour résoudre le problème  Analyser les performances ◦ Améliorer la qualité de service ◦ Prévenir les risques 19© 2014 Guillaume MOCQUET
  20. 20. Identifier les anomalies 20© 2014 Guillaume MOCQUET
  21. 21.  Système ◦ Machine virtuelle « tombée » ◦ Service « planté » ◦ Espace disque saturé ◦ Problème réseau : synchronisation, firewall, etc. ◦ Problème de droits (fichier)  Applicatif ◦ « Bug » langage script serveur : Erreur 500 ◦ Ressource non trouvée : Erreur 404 ◦ Problème de droits (utilisateur) : Erreur 403 21© 2014 Guillaume MOCQUET
  22. 22. © 2014 Guillaume MOCQUET  Logiciel de supervision / Monitoring 22
  23. 23.  Analyse des logs applicatifs ◦ Shell ◦ RegExp 23© 2014 Guillaume MOCQUET
  24. 24. 24© 2014 Guillaume MOCQUET
  25. 25. Qu’est qu’un log ? 25© 2014 Guillaume MOCQUET
  26. 26.  Un évènement daté ◦ Erreur ◦ Succès ◦ Information  Une action utilisateur datée ◦ Appel de page « classique » (code 200) ◦ Appel d’une ressource qui n’existe pas (erreur 404) 26© 2014 Guillaume MOCQUET
  27. 27. 27© 2014 Guillaume MOCQUET
  28. 28. 28© 2014 Guillaume MOCQUET
  29. 29. Trouver les informations pertinentes 29© 2014 Guillaume MOCQUET
  30. 30.  Flot de données colossale ◦ Différencier les logs d’erreurs des logs « normaux »  Générer localement au niveau de chaque serveur ◦ Possibilité d’erreur présente uniquement sur un nombre limité de serveurs  Faible historique exploitable ◦ Archivage automatique  Information fastidieuse à extraire ◦ Politique de sécurité, shell / ssh, perl, regexp 30© 2014 Guillaume MOCQUET
  31. 31.  Monitoring / collecte de logs ◦ Transparent  La plus faible consommation de ressource possible  CPU, mémoire, I/O  Aucun impact sur les services applicatifs ◦ Fiable  Eviter les « faux positifs » ◦ Robuste  Tenir la charge  Haute disponibilité 31© 2014 Guillaume MOCQUET
  32. 32. 32© 2014 Guillaume MOCQUET
  33. 33. Plus-value 33© 2014 Guillaume MOCQUET
  34. 34.  Plateforme centralisée ◦ Un seul point d’entrée ◦ Analyse de différents programmes  Serveur web  Serveur de base de données  Evènements de toutes sortes (ex. : AdServer)  Temps réel  Recherche / Analyse ciblée  Historique robuste  Scalabilité horizontale 34© 2014 Guillaume MOCQUET
  35. 35.  Formatage des données ◦ Identification des informations  Adresse IP client  Page demandée  Statut de retour  Enrichissement des données ◦ Géolocalisation  Pays  Ville  Open source  Gratuit  Grande communauté © 2014 Guillaume MOCQUET 35
  36. 36. Architecture globale 36© 2014 Guillaume MOCQUET
  37. 37. 37© 2014 Guillaume MOCQUET
  38. 38. Présentation des différents services © 2014 Guillaume MOCQUET 38
  39. 39.  Service / Programme ◦ Apache (natif, personnalisable) ◦ HAProxy (natif, personnalisable) ◦ DynDNS (personnalisé)  Recommandations ◦ Structurer les logs ◦ Formater les logs directement en JSON  LogFormat "{ "@timestamp": "%{%Y-%m-%dT%H:%M:%S%z}t", "@fields": { "client": "%a", "duration_usec": %D, "status": %s, "request": "%U%q", "method": "%m", "referrer": "%{Referer}i" } }" logstash_json 39© 2014 Guillaume MOCQUET
  40. 40.  Exemple de structure (standard) ◦ LogFormat "%h %{X-Forwarded-For}i %l %u %t HTTP %{X-Forwarded-Proto}i "%r" %>s %O "%{Referer}i" "%{User-Agent}i" t=%D" time_combined_HTTP ◦ LogFormat "%h %{X-Forwarded-For}i %l %u %t HTTPS %{X-Forwarded-Proto}i "%r" %>s %O "%{Referer}i" "%{User-Agent}i" t=%D" time_combined_HTTPS  Emission des logs ◦ CustomLog "|/usr/bin/tee -a /var/log/apache2/access.log | /usr/bin/logger -p local7.info -t 'apache2-access'" time_combined_HTTP ◦ ErrorLog "|/usr/bin/tee -a /var/log/apache2/error.log | /usr/bin/logger -p local7.err -t 'apache2-error'" 40© 2014 Guillaume MOCQUET
  41. 41.  Natif aux plateformes Linux / Unix ◦ Requiert de faibles ressources ◦ Simple à configurer, fiable et robuste ◦ Buffer ◦ Supporté par de nombreux services  Identification des évènements ◦ Origine de l’évènement (Facility)  0 (kernel messages) >> 23 (local7) ◦ Niveau de gravité (Severity)  0 (Emergency) >> 7 (Debug) 41© 2014 Guillaume MOCQUET
  42. 42.  Personnalisable ◦ Nombreux plug-in  ElasticSearch Output plug-in existant  /! Difficulté à formater et enrichir les logs 42© 2014 Guillaume MOCQUET
  43. 43.  Configuration ◦ /etc/rsyslog.conf ◦ /etc/rsyslog.d/*.conf  Véhiculer les messages via TCP (ou UDP) 43© 2014 Guillaume MOCQUET Transferer tous les messages d’origine 7 (local7) au serveur 192.168.1.19 via TCP
  44. 44.  « Standalone » Java  Supporté par ElasticSearch  Même philosophie de fonctionnement que syslog  Nombreux plug-in 44© 2014 Guillaume MOCQUET
  45. 45.  Scalabilité horizontale ◦ Flexible en fonction de la charge 45© 2014 Guillaume MOCQUET
  46. 46.  Configuration modulaire ◦ /etc/logstash/conf.d/*.conf 46© 2014 Guillaume MOCQUET
  47. 47.  Très grand nombre de protocoles supportés ◦ Local (files), réseau (tcp) ou externe (Twitter, AWS) 47© 2014 Guillaume MOCQUET Ecoute sur toutes les adresses IP disponibles, sur le port 514 (TCP + UDP)
  48. 48.  Principal filtre : Grok (formatage) © 2014 Guillaume MOCQUET 48
  49. 49.  Date 49© 2014 Guillaume MOCQUET
  50. 50.  XML, CSV, JSON, Etc. ◦ Pour plus d’informations consulter la documentation de chacun des filtres 50© 2014 Guillaume MOCQUET
  51. 51.  Geoip 51© 2014 Guillaume MOCQUET
  52. 52.  Remplacement, suppression, etc. 52© 2014 Guillaume MOCQUET
  53. 53.  Conditions (filter seulement) 53© 2014 Guillaume MOCQUET
  54. 54.  Très grand nombre de protocoles supportés ◦ Local (files), réseau (tcp) ou externe (Twitter, AWS)  Output ElasticSearch ◦ Index dynamique (logstash-%{+YYYY.MM.dd}) ◦ Options « tempate »  Mapping dynamique ◦ Workers ◦ flush_size  Bluk API 54© 2014 Guillaume MOCQUET
  55. 55.  Requiert Java  Scalabilité horizontale  API REST 55© 2014 Guillaume MOCQUET
  56. 56.  ElasticSearch Mapping 56© 2014 Guillaume MOCQUET
  57. 57.  « Standalone » HTML / JavaScript ◦ Requiert seulement un navigateur récent ◦ Configuration en 1 ligne via le fichier /config.js  elasticsearch: "http://192.168.1.16:9200",  Préconise un index ElasticSearch / jour (cf. Logstash) ◦ Possibilité de rechercher sur plusieurs jours (ainsi que d’agréger les résultats)  Supporté par ElasticSearch  Crée des tableaux de bords 100% personnalisés 57© 2014 Guillaume MOCQUET
  58. 58.  Interface riche pour ElasticSearch  Personnalisable à souhait  Multi requêtes  Filtrage des résultats  Syntaxe de requête Lucene  Possibilité de rechercher par « facets » 58© 2014 Guillaume MOCQUET
  59. 59.  Requête simple ◦ response:403  Requête de négation ◦ response:(-200 AND -301)  Date ◦ @timestamp:>now ◦ @timestamp:>now-1d  Intervalle ◦ @timestamp:["2014-01-27T19:53:23.877Z" TO now]  Recherche ◦ @message:((+"Server apache2_http/" +"DOWN, reason:") OR @message:"has no server available!") 59© 2014 Guillaume MOCQUET
  60. 60.  Log brut ◦ <182>Jan 28 14:12:09 haproxy[4446]: 90.3.218.220:35069 [28/Jan/2014:14:12:04.489] frontend_http apache2_http/dc01-www-04 1/0/0/5267/5268 200 205 - - ---- 0/0/0/0/0 0/0 "POST /wp- cron.php?doing_wp_cron=1390914724.4278941154479980468750 HTTP/1.0“ 60© 2014 Guillaume MOCQUET
  61. 61.  Formatage et enrichissement ◦ 192.168.1.48 157.56.92.160 - - [27/Jan/2014:09:42:11 +0100] HTTP http "GET /robots.txt HTTP/1.1" 200 329 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)" t=3495 61© 2014 Guillaume MOCQUET
  62. 62.  Facet @timestamp 62© 2014 Guillaume MOCQUET
  63. 63.  Calcul de métriques : min, max, comptage, moyenne 63© 2014 Guillaume MOCQUET
  64. 64. http://demo.kibana.org/ © 2014 Guillaume MOCQUET 64 Démo
  65. 65. © 2014 Guillaume MOCQUET 65
  66. 66.  Virtualisation ◦ Meilleure réactivité ◦ Favorise la montée en compétence de l’équipe technique (cf. DevOps)  Plateforme d’analyse de logs ◦ Rend accessible une information souvent réservée à une audience limitée (administrateur réseaux, personne non technique) ◦ Open source et gratuite ◦ Scalabilité horizontale ◦ Flexibilité : analyse technique, analyse commerciale, etc. ◦ Temps réel © 2014 Guillaume MOCQUET 66
  67. 67. Avez-vous des questions ? © 2014 Guillaume MOCQUET 67
  68. 68.  Virtualisation (VMware vSphere) ◦ http://www.vmware.com/fr/products/vsphere/  Syslog ◦ http://tools.ietf.org/html/rfc5424  Logstash ◦ http://logstash.net/ ◦ http://cookbook.logstash.net/  ElasticSearch ◦ http://www.elasticsearch.org/ ◦ http://dev.af83.com/2013/05/22/quelques-bases-pour-preparer-une-indexation-dans- elasticsearch.html ◦ http://dev.af83.com/2012/01/13/tire-pour-les-francophones.html  Kibana ◦ http://www.elasticsearch.org/overview/kibana/  Lucene ◦ http://lucene.apache.org/core/2_9_4/queryparsersyntax.html  Divers ◦ http://blog.iweb.com/fr/2012/11/combien-de-temps-dindisponibilite-est- acceptable/13220.html 68© 2014 Guillaume MOCQUET

×