sFlow: Prérequis et configuration

Le plugin Netflow  permet de surveiller le débit moyen généré sur une période définie par une application, une ip source ou une ip de destination et générer des alertes en cas de dépassement des seuils définis, il remonte également des données et des graphiques de performance de la même manière que les autres plugins.

Cas d’usage et bonnes pratiques d’utilisation des plugins :

Le plugin a été spécifié de sorte de pouvoir répondre à des besoins bien précis. Il présente différents champs à renseigner permettant de cibler la consommation de la bande passante

Dans l’idéal, chaque plugin instancié doit répondre à un besoin, par exemple, la mesure du débit généré par le service de messagerie. Dans ce cas, l’utilisateur renseignera les différents champs nécessaires à cette mesure (ip de destination du serveur de messagerie, port SMTP 25….).

sFlow

Introduction

SFlow permet de surveiller le trafic en temps réel des réseaux de données contenant des commutateurs et des routeurs. Il utilise le mécanisme d’échantillonnage dans le logiciel sFlow Agent sur les commutateurs et les routeurs pour surveiller le trafic et pour transmettre les données d’échantillonnage sur les ports d’entrée et de sortie au collecteur de données central, également appelé sFlow Analyzer.

Pour plus d’informations sur sFlow, voir RFC 3176.

 

Agent sFlow

Le sFlow Agent échantillonne périodiquement ou interroge les compteurs d’interface qui sont associés à une source de données des paquets échantillonnés. La source de données peut être une interface Ethernet, une interface EtherChannel ou une gamme d’interfaces Ethernet. L’agent sFlow interroge le gestionnaire de port Ethernet pour les informations d’appartenance EtherChannel respectives et reçoit également des notifications du gestionnaire de ports Ethernet pour les changements d’appartenance.

Lorsque vous activez l’échantillonnage sFlow, en fonction de la fréquence d’échantillonnage et du numéro aléatoire interne du matériel, les paquets d’entrée et les paquets de sortie sont envoyés à la CPU en tant que paquet échantillonné en sFlow. L’agent sFlow traite les paquets échantillonnés et envoie un datagramme sFlow à l’analyseur sFlow. En plus du paquet échantillonné d’origine, un datagramme sFlow comprend les informations sur le port d’entrée, le port de sortie et la longueur du paquet d’origine. Un datagramme sFlow peut avoir plusieurs échantillons de sFlow.

sFlow versions

 Version   Commentaire
 V1  Version initiale
 V2  (Inconnu)
 V3  Ajoute un support pour les informations étendues
 V4  Ajoute les communautés BGP de soutien
 V5  Plusieurs améliorations de protocole. Il s’agit de la version actuelle, qui est prise en charge par le monde  entier.

SFlow datagrammes

Les données échantillonnées sont envoyées sous forme de paquet UDP à l’hôte et au port spécifié. Le numéro de port officiel pour sFlow est le port 6343. Le manque de fiabilité dans le mécanisme de transport UDP n’affecte pas de manière significative la précision des mesures obtenues à partir d’un agent sFlow. Si les échantillons du compteur sont perdus, de nouvelles valeurs seront envoyées lorsque le prochain intervalle de sondage aura passé. La perte d’échantillons de flux de paquets entraîne une légère réduction du taux d’échantillonnage effectif.

La charge utile UDP contient le datagramme sFlow . Chaque datagramme fournit des informations sur la version sFlow, l’adresse IP du périphérique d’origine, un numéro de séquence, le nombre d’échantillons qu’il contient et un ou plusieurs échantillons de flux et / ou de compteur.

Paramètres par défaut pour sFlow

 Paramètres  Défaut
 SFlow taux d’échantillonnage  4096
 SFlow échantillonnage-taille  128
 SFlow max datagram-size  1400
 SFlow collecteur-port  6343
 SFlow counter-poll-interval  20

 

Architecture

Des éléments réseau (commutateurs et routeurs) établissent des statistiques sur les données des flux réseau qu’ils exportent vers des collecteurs. Ces statistiques détaillées peuvent porter sur les nombres de paquets et d’octets, les ports applicatifs, les adresses IP, les champs de qualité de service, les interfaces par lesquelles ils transitent, etc.

L’architecture permettant de  collecter les informations sur le trafic du réseau IP est la suivante:

  • sFlow exportateur: Observe les données par paquets, créé des enregistrements du trafic réseau surveillé et transmet ces données au sFlow Collector.
  • sFlow Collector: Collecte les enregistrements envoyés par l’exportateur, les stocke dans une base de données locale.
  • ServiceNav BOX: Récupère les informations collectées par le sFlow Collector: en fonction du besoin entré en paramètres du plugin sFlow
  • SNP (Plateforme de supervision) permet de configurer le service sFlow est d’exploiter les données remontées par la ServiceNav BOX

Configuration des prérequis

Mise en place du sFlow Collector Storage

Si vous disposez déjà d’un NetFlow Collector, vous pouvez le mutualiser en suivant la procédure ci-dessous

En fonction de besoin d’analyse réseau, Il est possible de dédier un serveur sFlow Collector Storage ou d’utiliser une de vos ServiceNav Box déjà en service.

Dimensionnement du sFlow Collector Storage

Quelle quantité d’espace disque un déploiement sFlow moyen devrait-il consommer? L’une des plus grandes préoccupations est que l’exportation de sFlow aura un impact sur la bande passante disponible, les frais généraux du processeur sur les périphériques ou sur les disques durs qui le stockent.

Il est important de noter qu’une exportation de données de flux réseau peut contenir des enregistrements contenant jusqu’à 30 conversations ou flux . Ceci est important car le volume moyen de sFlow est directement proportionnel au nombre de sockets TCP / UDP uniques créées par les clients et les serveurs du réseau.

Quel est le volume de flux typique par PC? La réponse est: cela dépend, la tendance semble être d’environ 100 flux / minute par ordinateur, avec un pic de 350

par exemple, une entreprise compte 1000 noeuds et que chaque noeud génère 200 flux par minute. Cela équivaut à environ 200000 flux en une minute, soit environ 3300 flux par seconde.  Pourquoi tant de flux ?

Les applications engendrent beaucoup de flux uniques, en particulier les navigateurs web et la plupart des applications. Voici quelques applications typiques très bavardes:

  • Java, Adobe, Anti-virus, navigateurs web
  • Skype est très bavard et provoque du trafic vers le DNS
  • Flux de pages Web générant des images, des annonces, etc.
  • Email vérifiant constamment la boîte de réception
  • NetBios

Un flux stockés sur le sFlow Colletor Storage occupe 150 octets d’espace disque, il est donc préconiser de provisionner 2 Go par jour et par tranche de 100 nœuds:

 Cpu(s)  4 vCPU
 RAM  8 Go
 Espace disque  20 Go + 2 Go par jour et par  tranche de 100 nœuds
 Interface réseau  1 gbps

Configuration du sFlow Collector Storage :

Si vous disposez déjà d’un NetFlow Collector, vous pouvez le mutualiser en suivant la procédure ci-dessous. Dans ce cas ne téléchargez pas de  nouveau master et portez les configuration Sflow directement sur votre Collector Storage mutualisé.

Le sFlow Collector Storage sera créé à partir d’un master SNB, ce serveur doit être dédié à la collecte des exports SFlow et ne dois pas être utilisé en tant que boitier de supervision.

  • Télécharger le master SNB:
    • Site FTP : software.servicenav.io (contacter le support pour les identifiants d’accès)
    • Sélectionner le master SNB dans le répertoire SNB-SNM – ServiceNav Box/4.0/SNM_MASTER_OVF_2019_01_24_V4_0.0.zip
  • Cibler les interfaces réseau répondant à vos besoins d’analyse
  • Connectez-vous en SSH au SFlow Collector Storage
  • Créer un répertoire de destination des exports SFlow, par exemple vous pouvez créé un chemin générique ~/network_analysis/sflow et créé sous celui-ci autant de répertoire que d’interface réseau à monitorer, ces répertoires seront destinés à stocker les exports.
  • Attention le compte ssh de supervision ssh utilisé sera le compte coadmin, il est donc recommandé de créer les répertoire s de destination avec l’utilisateur coadmin. Vous pouvez les nommer en fonction des ip d’interface ou du nom des équipements:
    • Ex : mkdir ~/sflow/ROUTEUR_A_WAN
  • Définir un port d’écoute pour le listener par équipement réseau sur lesquels sFlow sera activ,  par exemple le 6343 pour le Routeur A et 6344 pour le Routeur B
  • Créer une ACL autorisant la connexion au SFlow Collector Storage sur les ports d’écoute:
    • iptables -A INPUT -p udp –dport 6343 -j ACCEPT
    • iptables -A INPUT -p udp –dport 6344 -j ACCEPT
  • Lancer le listener via la commande suivante :
    • sfcapd -p 6343 -l /usr/local/nagios/libexec/sflow/ROUTEUR_A_WAN
    • sfcapd -p 6344 -l /usr/local/nagios/libexec/sflow/ROUTEUR_B_WAN
      • -p fixe le port UDP d’écoute (9995 dans notre configuration du routeur Cisco)
      • -l fixe le répertoire ou les données seront stockées (emplacement du collector)
      • -w permet de s’assurer que la collecte sera faite toutes les n minutes (n=5 par défaut) avec des valeurs ,5,10…
      • -D permet de demander à nfcapd de se lancer comme un daemon (en tache de fond)

Par défaut, les exports aux formats nfcapd.YYYYMMddhhmm sont supprimés toute les 24h via une tâche planifiée lancée tous les jours à 0h00:

/root/crontabRoot
0 0 * * * /usr/local/nagios/libexec/nfcapd_deleteCache.sh > /dev/null 2>&1

Attention, la fonctionnalité de suppression des enregistrements aux format nfcapd.xxx ne sera disponible qu’à partir de la version 4.2. En attendant et afin d’éviter la saturation de l’espace disque, les enregistrements devront être supprimés à minima toute les 24h. vous pouvez contacter le support Coservit pour installer le correctif en avance de phase ou vous assiter à la mise en place d’une tâche planifiée de suppression des fichiers.

Configuration des équipements réseaux

Se connecter sur l’équipement réseau sur lequel SFlow doit être activé et effectuer ces différentes étapes pour configurer sFlow.

Ci-dessous un exemple de configuration pour un Switch HP-220-48G:

 Commande                      Objectif            

(config)# sflow 1 destination <ipaddress> <port>

Définit l’adresse du périphérique de réception sFlow   (192.168.3.31) et le port UDP (9999). Par exemple: (config)# sflow 1 destination 192.168.3.31 9999

(config)# sflow 1 sampling ethernet <interface ID> <sample every n packets>

Définit la fréquence d’échantillonnage sFlow pour chaque interface (1-24). Un paquet sur 128 sera collecté dans cet exemple. Par exemple:(config)# sflow 1 sampling ethernet A1-A24 128

(config)# sflow 1 polling ethernet <interface ID> <polling frequency in seconds>

Définit l’intervalle d’interrogation sFlow. Sondages toutes les 30 secondes dans cet exemple. Par exemple: config)# sflow 1 polling ethernet A1-A24 30

 

Configuration sur le Switch HP-220-48G

HP-2920-48G(config)# sflow 1 destination 192.168.238.37 6343

HP-2920-48G(config)# sflow 1 sampling ethernet 47-48 128

HP-2920-48G(config)# sflow 1 polling ethernet 47-48 30

 

Vérification du fonctionnement de sFlow et affichage des statistiques sFlow

Vérifier que SFlow est correctement configuré.

Utiliser la commande show sflow 1 destination pour afficher les détails de la configuration SFlow:

HP-2920-48G# show sFlow 1 destination

Destination Instance      : 1

sflow                                 : Enabled

Datagrams Sent               : 126822

Destination Address       : 192.168.238.37

Receiver Port                  : 6343

Owner                               : Administrator, CLI-Owned, Instance 1

Timeout (seconds)          : 2147403334

Max Datagram Size          : 1400

Datagram Version Support  :

 

 

Vérification que les données sFlow sont bien stockées sur le sFlow Collector Storage

Se connecter sur le sFlow Collector Storage, se positionner sur le répertoire créé préalablement et vérifier la présence de fichier au format nfcapd.YYYYMMddhhmm (nfcapd.201709181140).

Si c’est le cas, votre configuration est opérationnelle, vous pouvez passer à l’étape suivante sinon reprendre les étapes de configuration précédentes.

Mise en supervision du sFlow Collector Storage

Le sFlow Collector Storage est central dans votre architecture SFlow, il est donc essentiel de superviser la charge et les processus en cours d’exécution.

Utiliser le modèle d’équipement modèle-serveur-linux:

  • CPU
  • LIN-DiskIO
  • LIN-Diskspace
  • LIN-Network_Traffic
  • LIN-RAM
  • LIN-Swap

A ces modèles de service déjà intégrés au modèle d’équipement modèle-serveur-linux, utiliser les modèles de service suivant:

  • LIN-DirectorySize pour surveiller la taille de vos répertoires de destination.
  • Lin-ProcessName  pour surveiller la bonne exécution des processus sfcapd

Enfin utiliser les modèles d’action pour relancer les processus sfcapd en cas d’interruption en suivant la procédure suivante: https://coservit.com/servicenav/fr/documentation/utilisation-des-modeles-daction/

Configuration du modèle de service NetworkAnalysis-sFlow

Dans les bonnes pratiques, le modèle de service  NetworkAnalysis-sFlow doit être lié au switch ou le routeur qui exporte les données SFlow) mais vous pouvez également le lié à tout autre équipement ou un Système Up si besoin.

Après avoir instancié le service NetworkAnalysis-sFlow, il vous faudra configurer le service en fonction du besoin d’analyse. Pour rappel, le plugin a été optimisé pour permettre de monitorer le débit généré par une application.

Les champs obligatoires suivants doivent être renseignés :

  • Collector Storage : Adresse du Collector Storage
  • Bande passante allouée : Valeur dans l’unité choisie
  • Unité : Unité de sortie : kbps, Mbps, Gbps
  • Seuil d’alerte : Seuil d’alerte en %
  • Seuil critique : Seuil critique en %
  • Nom du Répertoire : Chemin d’accès au répertoire contenant les exports liés à une interface
  • Statut d’absence: Statut à donner en cas d’inactivité, ex: 0 pour OK

Les autres champs à renseigner permettent de cibler le flux à monitorer en fonction du besoin.

Exemple de configuration ciblant le débit généré par un serveur de messagerie :

Le service vous permettra d’obtenir les informations suivantes :

  • Un statut en fonction des seuils positionnés
  • Le débit généré dans l’unité choisie
  • Des données de performances
  • Des métriques en valeurs absolues et en pourcentage d’utilisation

Métriques en valeurs absolues :

Métriques en pourcentage d’utilisation :

Configuration des tableaux de bord

Après avoir instancié autant de service NetworkAnalysis-sFlow que de flux à monitorer, vous pouvez créer un ou plusieurs tableaux de bord ciblant l’utilisation de la bande passante par métier et être alerté en fonction des seuils définis.

Voici un exemple de tableaux de bord:

Consultant ServiceNav, mes connaissances générales de l’IT me permettent de répondre aux problématiques de mise en œuvre de la supervision sur des technologies spécifiques.