SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Traitement temps réel de flux réseaux
IPFIX avec PySpark, Kafka et
Cassandra (“& Friends”)
Paris Cassandra Meetup (01/2018)
Julien Anguenot <janguenot@iland.com>
@anguenot @ilandcloud
Introduction
iland cloud ?
● Fournisseur de services “cloud”
● + de 20 ans
● HQ @ Houston, TX
● IaaS
● BaaS, DRaaS
● 8 data centers: 3 aux États-Unis, 3 en Europe, et 2 en APAC
● Support, conformité, sécurité et “custom SLA”
● http://www.iland.com
Iland cloud et Cassandra ?
● C* 3.0.x, 8 data centers, cluster de 24 noeuds, ~ 1TB par noeud
● Utilisateur depuis 2013 (premier proto sur 1.2)
● On utilise Cassandra pour stocker (presque) l’ensemble de toutes nos
données.
● “Leveraging Cassandra for real-time multi-datacenter public cloud analytics”
@ Cassandra Summit 2015
https://www.slideshare.net/anguenot/leveraging-cassandra-for-realtime-multid
atacenter-public-cloud-analytics
● Datastax MVP pour Apache Cassandra 2016
iland Web console
iOS et Android mobile apps
iland ReST API (api.ilandcloud.com)
● Multi-master et écritures distribuées (applications, analytics, API)
● Faible latence en écriture et lecture
● “Multi-dc” natif
● Données au plus prêt des utilisateurs (U.S, E.U, APAC)
● Géolocalisation côté client (JS) et redirection sur les API publiques les plus
proches.
● ++
Les avantages Cassandra de notre côté ?
Traitement temps réel de flux réseaux
Pourquoi faire du traitement des flux réseaux ?
● Analyse temps réel du trafic réseau (protocole, port, source, destination,
nombre de paquets etc.)
● Routage et pare-feu
● Visualisation de type “Wireshark”: interactive et à la demande
● Statistiques
● Sécurité : détection d’intrusions
● Alertes
Les contraintes
● Plate-forme partagée (“multi-tenants”)
● Plusieurs centres de données (“multi-dc”)
● Volume du trafic réseau au niveau DC
● Temps réel
Les sources
● Au niveau du “tenant”
○ VMware vSphere Distributed Switch (VDS) (IPFIX)
○ VMware NSX (IPFIX)
○ NSX edge (routage et pare-feu)
● Au niveau global (routeur)
○ Pas encore essayé
IPFIX “Senders” vers IPFIX
“Collector” vers Syslog puis vers
Kafka
VMWare NSX Edge
IPFIX Collector
Syslog
VMware VDS (IPFIX) VMware NSX (IPFIX)
Plusieurs “brokers” Kafka
Kafka / Spark / Cassandra / WS
IPFIX
● IPFIX: Internet Protocol Flow Information Export
● Cisco Netflow v9 (base proprio) et RFC 3917
● IETF: de RFC 7011 à RFC 7015 et RFC 5103
● Besoin d’un standard pour l’IP (Internet Protocol): mesures, analyse et
facturation.
Le protocole IPFIX
● Flow: un certain nombre de paquets sur une période de temps donnée ayant
des propriétés communes: source, destination et protocole
● Protocole de type “Push” : sender / receivers
● Transport en TCP/UDP et aussi SCTP (Stream Control Transport
Protocol) RFC 4960: TCP/IP + multi-flux (stream) et multi-homing (plusieurs
IPs sur 1 ou les 2 extrémités)
● Message IPFIX: header + données, template et données optionnelles
(vendor)
Modèle vs données
Comment ça marche?
1. Un processus collecte des paquets de données sur un point d’observation
(Observation Point)
2. Filtre et agrégation (optionnel)
3. Un “Exporter” l’envoie ensuite sur un “Collector”
Collectors ?
● nProbe: https://www.ntop.org/products/netflow/nprobe/
Robuste, complet et performant mais extensions “Vendor” payantes.
● IPFIX Forwarder: https://github.com/anguenot/ipfix-forwarder
Export vers syslog, JSON, VMware VDS et VMware NSX + NSX segmentId
Future: export direct vers Kafka
● Multiples solutions propriétaires.
IPFIX Forwarder sur UDP/2055
Syslog vers Kafka
● syslog-ng: https://github.com/balabit/syslog-ng
● syslogng_kafka: https://github.com/ilanddev/syslogng_kafka
○ syslogng-mod-python
○ confluent-kafka-python: https://github.com/confluentinc/confluent-kafka-python
○ Librdkafka: https://github.com/edenhill/librdkafka
● Future: IPFIX Forwarder direct vers Kafka en utilisant confluent-go-kafka:
https://github.com/confluentinc/confluent-kafka-go
https://syslogng-kafka.readthedocs.io/en/latest/in
stallation.html#configure
● Topics?
● Partitions?
○ ordre des messages
○ Performance: producer / brokers et traitements parallèles
● Brokers?
● JSON vs Apache Avro vs protobuf etc.
● Kafka Mesos: https://github.com/mesos/kafka
○ Scheduler(dans Marathon)
○ CLI
○ ReST API
Considérations autour de Kafka
Scheduler Kafka sur Mesos / Marathon
Spark Streaming + PySpark
● Spark Streaming: https://spark.apache.org/streaming/
○ DStreams
○ Micro-batch
● PySpark: https://spark.apache.org/docs/latest/api/python/index.html
● Datastax Spark Cassandra Connector:
https://github.com/datastax/spark-cassandra-connector
○ PySpark avec DataFrames
○ pyspark-cassandra: https://github.com/anguenot/pyspark-cassandra/
● Spark et Mesos: https://spark.apache.org/docs/latest/running-on-mesos.html
Spark dispatcher dans Mesos / Marathon
MESOS_MASTER=`mesos-resolve
zk://stg-zoo-01:2181,stg-zoo-02:2181,stg-zoo-03:2181/mesos`;
SPARK_DISPATCHER=`marathon-resolve.py --api
http://${MESOS_MASTER%:*}:8080 --app_name spark-dispatcher`;
KAFKA_SERVERS=`kafka-resolve.py` ;
/opt/spark/bin/spark-submit --verbose --executor-memory 2G
--total-executor-cores 2 --supervise --master
mesos://$SPARK_DISPATCHER:7077 --conf spark.mesos.coarse=true --conf
spark.executorEnv.PYTHONHASHSEED=0 --packages
org.apache.spark:spark-streaming-kafka-0-8_2.11:2.2.0,anguenot/pyspark-cassan
dra:0.7.0 /usr/local/bin/pyspark_iland_runner.py --job netstats --job-args
kafka.ip=$KAFKA_SERVERS spark.master.ip=mesos://$MESOS_MASTER
cassandra.ip=10.11.17.10 cassandra.ks=netstats
kafka.topic=vmware_nsx_edge_firewall
PySpark Streaming job dans Marathon
PySpark job dans Chronos / Mesos (pas de streaming)
Tâches dans Mesos: Kafka, Spark, Chronos, PySpark &
“friends”
Exemple de code

Más contenido relacionado

La actualidad más candente

OpenStack dans la pratique
OpenStack dans la pratiqueOpenStack dans la pratique
OpenStack dans la pratiqueOsones
 
IaaS et Cloud Open Source - Raphael Ferreira, eNovance
IaaS et Cloud Open Source - Raphael Ferreira, eNovanceIaaS et Cloud Open Source - Raphael Ferreira, eNovance
IaaS et Cloud Open Source - Raphael Ferreira, eNovanceStefane Fermigier
 
Lightning talk: Les Load Balancers HTTP modernes
Lightning talk: Les Load Balancers HTTP modernesLightning talk: Les Load Balancers HTTP modernes
Lightning talk: Les Load Balancers HTTP modernesFrederic Leger
 
Kubernetes est-il soluble dans la sécurité ? Meetup Genève
Kubernetes est-il soluble dans la sécurité ? Meetup GenèveKubernetes est-il soluble dans la sécurité ? Meetup Genève
Kubernetes est-il soluble dans la sécurité ? Meetup GenèveNet4All
 
Devops d-day 2017 docker openstack docker
Devops d-day 2017  docker openstack dockerDevops d-day 2017  docker openstack docker
Devops d-day 2017 docker openstack dockerAlexis Ducastel
 
OpenStack - open source au service du Cloud
OpenStack - open source au service du CloudOpenStack - open source au service du Cloud
OpenStack - open source au service du CloudLINAGORA
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureParis Container Day
 
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018Alexis Ducastel
 
Quoi de neuf dans OpenStack - Christophe Sauthier / Objectif Libre lors du Me...
Quoi de neuf dans OpenStack - Christophe Sauthier / Objectif Libre lors du Me...Quoi de neuf dans OpenStack - Christophe Sauthier / Objectif Libre lors du Me...
Quoi de neuf dans OpenStack - Christophe Sauthier / Objectif Libre lors du Me...Objectif Libre
 

La actualidad más candente (9)

OpenStack dans la pratique
OpenStack dans la pratiqueOpenStack dans la pratique
OpenStack dans la pratique
 
IaaS et Cloud Open Source - Raphael Ferreira, eNovance
IaaS et Cloud Open Source - Raphael Ferreira, eNovanceIaaS et Cloud Open Source - Raphael Ferreira, eNovance
IaaS et Cloud Open Source - Raphael Ferreira, eNovance
 
Lightning talk: Les Load Balancers HTTP modernes
Lightning talk: Les Load Balancers HTTP modernesLightning talk: Les Load Balancers HTTP modernes
Lightning talk: Les Load Balancers HTTP modernes
 
Kubernetes est-il soluble dans la sécurité ? Meetup Genève
Kubernetes est-il soluble dans la sécurité ? Meetup GenèveKubernetes est-il soluble dans la sécurité ? Meetup Genève
Kubernetes est-il soluble dans la sécurité ? Meetup Genève
 
Devops d-day 2017 docker openstack docker
Devops d-day 2017  docker openstack dockerDevops d-day 2017  docker openstack docker
Devops d-day 2017 docker openstack docker
 
OpenStack - open source au service du Cloud
OpenStack - open source au service du CloudOpenStack - open source au service du Cloud
OpenStack - open source au service du Cloud
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
 
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
 
Quoi de neuf dans OpenStack - Christophe Sauthier / Objectif Libre lors du Me...
Quoi de neuf dans OpenStack - Christophe Sauthier / Objectif Libre lors du Me...Quoi de neuf dans OpenStack - Christophe Sauthier / Objectif Libre lors du Me...
Quoi de neuf dans OpenStack - Christophe Sauthier / Objectif Libre lors du Me...
 

Similar a Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Cassandra

Devenez l’Élu et maitrisez la Matrice AWS 🦸
Devenez l’Élu et maitrisez la Matrice AWS 🦸Devenez l’Élu et maitrisez la Matrice AWS 🦸
Devenez l’Élu et maitrisez la Matrice AWS 🦸Membré Guillaume
 
3 Microsoft Advanced Threat Analytics - Genève
3   Microsoft Advanced Threat Analytics - Genève3   Microsoft Advanced Threat Analytics - Genève
3 Microsoft Advanced Threat Analytics - GenèveaOS Community
 
Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...☁️Seyfallah Tagrerout☁ [MVP]
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...MSDEVMTL
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesXavier MARIN
 
Spark Streaming
Spark StreamingSpark Streaming
Spark StreamingPALO IT
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantALTIC Altic
 
[SINS] Présentation de Nagios
[SINS] Présentation de Nagios[SINS] Présentation de Nagios
[SINS] Présentation de Nagiosjeyg
 
Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC
Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELECRetour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC
Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELECMicrosoft Technet France
 
1h chrono pour créer votre infrastructure virtuelle avec l’interface Visual C...
1h chrono pour créer votre infrastructure virtuelle avec l’interface Visual C...1h chrono pour créer votre infrastructure virtuelle avec l’interface Visual C...
1h chrono pour créer votre infrastructure virtuelle avec l’interface Visual C...Microsoft
 
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]ANEO
 
Plateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de MontréallPlateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de MontréallCloudOps2005
 
Projet IPv6 Matrix / Version française intégrale
Projet IPv6 Matrix / Version française intégraleProjet IPv6 Matrix / Version française intégrale
Projet IPv6 Matrix / Version française intégraleOlivier MJ Crépin-Leblond
 
Architecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KArchitecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KJulien Anguenot
 
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis GroupIBM France Lab
 

Similar a Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Cassandra (20)

Devenez l’Élu et maitrisez la Matrice AWS 🦸
Devenez l’Élu et maitrisez la Matrice AWS 🦸Devenez l’Élu et maitrisez la Matrice AWS 🦸
Devenez l’Élu et maitrisez la Matrice AWS 🦸
 
3 Microsoft Advanced Threat Analytics - Genève
3   Microsoft Advanced Threat Analytics - Genève3   Microsoft Advanced Threat Analytics - Genève
3 Microsoft Advanced Threat Analytics - Genève
 
Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 
12-Factor
12-Factor12-Factor
12-Factor
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
 
Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
 
Apache kafka big data track
Apache kafka   big data trackApache kafka   big data track
Apache kafka big data track
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
 
[SINS] Présentation de Nagios
[SINS] Présentation de Nagios[SINS] Présentation de Nagios
[SINS] Présentation de Nagios
 
Openstack framework Iaas
Openstack framework IaasOpenstack framework Iaas
Openstack framework Iaas
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC
Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELECRetour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC
Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC
 
1h chrono pour créer votre infrastructure virtuelle avec l’interface Visual C...
1h chrono pour créer votre infrastructure virtuelle avec l’interface Visual C...1h chrono pour créer votre infrastructure virtuelle avec l’interface Visual C...
1h chrono pour créer votre infrastructure virtuelle avec l’interface Visual C...
 
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
 
Plateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de MontréallPlateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de Montréall
 
Projet IPv6 Matrix / Version française intégrale
Projet IPv6 Matrix / Version française intégraleProjet IPv6 Matrix / Version française intégrale
Projet IPv6 Matrix / Version française intégrale
 
Architecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KArchitecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.K
 
Vert.x 3
Vert.x 3Vert.x 3
Vert.x 3
 
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
 

Más de Julien Anguenot

Apache Spark and Python: unified Big Data analytics
Apache Spark and Python: unified Big Data analyticsApache Spark and Python: unified Big Data analytics
Apache Spark and Python: unified Big Data analyticsJulien Anguenot
 
Apache Cassandra multi-datacenter essentials
Apache Cassandra multi-datacenter essentialsApache Cassandra multi-datacenter essentials
Apache Cassandra multi-datacenter essentialsJulien Anguenot
 
Cassandra multi-datacenter operations essentials
Cassandra multi-datacenter operations essentialsCassandra multi-datacenter operations essentials
Cassandra multi-datacenter operations essentialsJulien Anguenot
 
Leveraging Cassandra for real-time multi-datacenter public cloud analytics
Leveraging Cassandra for real-time multi-datacenter public cloud analyticsLeveraging Cassandra for real-time multi-datacenter public cloud analytics
Leveraging Cassandra for real-time multi-datacenter public cloud analyticsJulien Anguenot
 
Real-time data analytics with Cassandra at iland
Real-time data analytics with Cassandra at ilandReal-time data analytics with Cassandra at iland
Real-time data analytics with Cassandra at ilandJulien Anguenot
 
Introduction to Cassandra and CQL for Java developers
Introduction to Cassandra and CQL for Java developersIntroduction to Cassandra and CQL for Java developers
Introduction to Cassandra and CQL for Java developersJulien Anguenot
 

Más de Julien Anguenot (6)

Apache Spark and Python: unified Big Data analytics
Apache Spark and Python: unified Big Data analyticsApache Spark and Python: unified Big Data analytics
Apache Spark and Python: unified Big Data analytics
 
Apache Cassandra multi-datacenter essentials
Apache Cassandra multi-datacenter essentialsApache Cassandra multi-datacenter essentials
Apache Cassandra multi-datacenter essentials
 
Cassandra multi-datacenter operations essentials
Cassandra multi-datacenter operations essentialsCassandra multi-datacenter operations essentials
Cassandra multi-datacenter operations essentials
 
Leveraging Cassandra for real-time multi-datacenter public cloud analytics
Leveraging Cassandra for real-time multi-datacenter public cloud analyticsLeveraging Cassandra for real-time multi-datacenter public cloud analytics
Leveraging Cassandra for real-time multi-datacenter public cloud analytics
 
Real-time data analytics with Cassandra at iland
Real-time data analytics with Cassandra at ilandReal-time data analytics with Cassandra at iland
Real-time data analytics with Cassandra at iland
 
Introduction to Cassandra and CQL for Java developers
Introduction to Cassandra and CQL for Java developersIntroduction to Cassandra and CQL for Java developers
Introduction to Cassandra and CQL for Java developers
 

Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Cassandra

  • 1. Traitement temps réel de flux réseaux IPFIX avec PySpark, Kafka et Cassandra (“& Friends”) Paris Cassandra Meetup (01/2018) Julien Anguenot <janguenot@iland.com> @anguenot @ilandcloud
  • 3. iland cloud ? ● Fournisseur de services “cloud” ● + de 20 ans ● HQ @ Houston, TX ● IaaS ● BaaS, DRaaS ● 8 data centers: 3 aux États-Unis, 3 en Europe, et 2 en APAC ● Support, conformité, sécurité et “custom SLA” ● http://www.iland.com
  • 4. Iland cloud et Cassandra ? ● C* 3.0.x, 8 data centers, cluster de 24 noeuds, ~ 1TB par noeud ● Utilisateur depuis 2013 (premier proto sur 1.2) ● On utilise Cassandra pour stocker (presque) l’ensemble de toutes nos données. ● “Leveraging Cassandra for real-time multi-datacenter public cloud analytics” @ Cassandra Summit 2015 https://www.slideshare.net/anguenot/leveraging-cassandra-for-realtime-multid atacenter-public-cloud-analytics ● Datastax MVP pour Apache Cassandra 2016
  • 6. iOS et Android mobile apps
  • 7. iland ReST API (api.ilandcloud.com)
  • 8. ● Multi-master et écritures distribuées (applications, analytics, API) ● Faible latence en écriture et lecture ● “Multi-dc” natif ● Données au plus prêt des utilisateurs (U.S, E.U, APAC) ● Géolocalisation côté client (JS) et redirection sur les API publiques les plus proches. ● ++ Les avantages Cassandra de notre côté ?
  • 9. Traitement temps réel de flux réseaux
  • 10. Pourquoi faire du traitement des flux réseaux ? ● Analyse temps réel du trafic réseau (protocole, port, source, destination, nombre de paquets etc.) ● Routage et pare-feu ● Visualisation de type “Wireshark”: interactive et à la demande ● Statistiques ● Sécurité : détection d’intrusions ● Alertes
  • 11. Les contraintes ● Plate-forme partagée (“multi-tenants”) ● Plusieurs centres de données (“multi-dc”) ● Volume du trafic réseau au niveau DC ● Temps réel
  • 12. Les sources ● Au niveau du “tenant” ○ VMware vSphere Distributed Switch (VDS) (IPFIX) ○ VMware NSX (IPFIX) ○ NSX edge (routage et pare-feu) ● Au niveau global (routeur) ○ Pas encore essayé
  • 13. IPFIX “Senders” vers IPFIX “Collector” vers Syslog puis vers Kafka VMWare NSX Edge IPFIX Collector Syslog VMware VDS (IPFIX) VMware NSX (IPFIX) Plusieurs “brokers” Kafka
  • 14. Kafka / Spark / Cassandra / WS
  • 15. IPFIX ● IPFIX: Internet Protocol Flow Information Export ● Cisco Netflow v9 (base proprio) et RFC 3917 ● IETF: de RFC 7011 à RFC 7015 et RFC 5103 ● Besoin d’un standard pour l’IP (Internet Protocol): mesures, analyse et facturation.
  • 16. Le protocole IPFIX ● Flow: un certain nombre de paquets sur une période de temps donnée ayant des propriétés communes: source, destination et protocole ● Protocole de type “Push” : sender / receivers ● Transport en TCP/UDP et aussi SCTP (Stream Control Transport Protocol) RFC 4960: TCP/IP + multi-flux (stream) et multi-homing (plusieurs IPs sur 1 ou les 2 extrémités) ● Message IPFIX: header + données, template et données optionnelles (vendor)
  • 18. Comment ça marche? 1. Un processus collecte des paquets de données sur un point d’observation (Observation Point) 2. Filtre et agrégation (optionnel) 3. Un “Exporter” l’envoie ensuite sur un “Collector”
  • 19. Collectors ? ● nProbe: https://www.ntop.org/products/netflow/nprobe/ Robuste, complet et performant mais extensions “Vendor” payantes. ● IPFIX Forwarder: https://github.com/anguenot/ipfix-forwarder Export vers syslog, JSON, VMware VDS et VMware NSX + NSX segmentId Future: export direct vers Kafka ● Multiples solutions propriétaires.
  • 21. Syslog vers Kafka ● syslog-ng: https://github.com/balabit/syslog-ng ● syslogng_kafka: https://github.com/ilanddev/syslogng_kafka ○ syslogng-mod-python ○ confluent-kafka-python: https://github.com/confluentinc/confluent-kafka-python ○ Librdkafka: https://github.com/edenhill/librdkafka ● Future: IPFIX Forwarder direct vers Kafka en utilisant confluent-go-kafka: https://github.com/confluentinc/confluent-kafka-go
  • 23. ● Topics? ● Partitions? ○ ordre des messages ○ Performance: producer / brokers et traitements parallèles ● Brokers? ● JSON vs Apache Avro vs protobuf etc. ● Kafka Mesos: https://github.com/mesos/kafka ○ Scheduler(dans Marathon) ○ CLI ○ ReST API Considérations autour de Kafka
  • 24. Scheduler Kafka sur Mesos / Marathon
  • 25. Spark Streaming + PySpark ● Spark Streaming: https://spark.apache.org/streaming/ ○ DStreams ○ Micro-batch ● PySpark: https://spark.apache.org/docs/latest/api/python/index.html ● Datastax Spark Cassandra Connector: https://github.com/datastax/spark-cassandra-connector ○ PySpark avec DataFrames ○ pyspark-cassandra: https://github.com/anguenot/pyspark-cassandra/ ● Spark et Mesos: https://spark.apache.org/docs/latest/running-on-mesos.html
  • 26. Spark dispatcher dans Mesos / Marathon
  • 27. MESOS_MASTER=`mesos-resolve zk://stg-zoo-01:2181,stg-zoo-02:2181,stg-zoo-03:2181/mesos`; SPARK_DISPATCHER=`marathon-resolve.py --api http://${MESOS_MASTER%:*}:8080 --app_name spark-dispatcher`; KAFKA_SERVERS=`kafka-resolve.py` ; /opt/spark/bin/spark-submit --verbose --executor-memory 2G --total-executor-cores 2 --supervise --master mesos://$SPARK_DISPATCHER:7077 --conf spark.mesos.coarse=true --conf spark.executorEnv.PYTHONHASHSEED=0 --packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.2.0,anguenot/pyspark-cassan dra:0.7.0 /usr/local/bin/pyspark_iland_runner.py --job netstats --job-args kafka.ip=$KAFKA_SERVERS spark.master.ip=mesos://$MESOS_MASTER cassandra.ip=10.11.17.10 cassandra.ks=netstats kafka.topic=vmware_nsx_edge_firewall
  • 28. PySpark Streaming job dans Marathon
  • 29. PySpark job dans Chronos / Mesos (pas de streaming)
  • 30. Tâches dans Mesos: Kafka, Spark, Chronos, PySpark & “friends”