Contrôler l'activité réseau d'un serveur avec iftop

Monitoring réseau avec iftop

Mon cable réseau est chaud ! Est-ce normal ?

Des temps de traitements lents, pas d'IO disque et un CPU non saturé ; tels sont les symptômes qui doivent vous faire envisager une activité réseau importante sur votre serveur.
N'oubliez pas que la latence de votre site a un impact sur votre e-business !

Cet article vous présente comment contrôler l'activité de la carte réseau de votre serveur Linux Ubuntu et autres distributions Debian like.

Identifier les connexions les plus gourmandes de mon réseau

iftop a été conçu pour répondre à cette question sur système Linux. Il fait pour le réseau la même chose que top pour l'activité CPU.

iftop surveille le trafic sur une interface réseau et affiche un tableau présentant les connexions et la bande passante consommée.
Par défaut, iftop résout et affiche les noms d'hôtes associés aux adresses de connexions. Cette fonction génère elle-même du trafic. Cette fonction est désactivable. La touche h affiche l'ensemble de l'aide de cet outil.

Installation sur Ubuntu :

sudo apt-get install iftop

Utilisation :

iftop -i eth0

Vous pouvez ainsi lister le détail des connexions réseaux les plus gourmandes de bande passante sur votre serveur.
En cas d'activité anormale, vous pouvez augmenter la capacité de votre infrastructure, arrêter le service, optimiser sa configuration ou limiter l'accès à celui-ci via un firewall.

Identifier toutes les connexions ouvertes

La sauvegarde de la bande passante ne résout pas tout. Le nombre de connexions simultanées est également un facteur clé à contrôler.

La commande netstat liste les connexions ouvertes locales et distantes.
L'option -p affiche l'ID et le nom du processus. Ces informations permettent de contrôler la légitimité de ces ouvertures et de prendre les mesures nécessaires : arrêt de services, désinstallation de programmes, reconfiguration, firewall...

sudo netstat -p

Connexions Internet actives (sans serveurs)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat       PID/Program name
tcp6       0      0 192.168.2.100%10069:www crawl312.exabot.c:39092 TIME_WAIT   -               
tcp6       0      0 192.168.2.100%10069:www crawl312.exabot.c:43482 TIME_WAIT   -               
tcp6       0      0 192.168.2.100%10069:www crawl312.exabot.c:42729 TIME_WAIT   -               
tcp6       0      0 192.168.2.100%10069:www crawl312.exabot.c:38657 TIME_WAIT   -               
tcp6       0      0 192.168.2.100%10069:www crawl312.exabot.c:40327 TIME_WAIT   -               
tcp6       0      0 192.168.2.100%10069:www crawl312.exabot.c:42004 TIME_WAIT   -               
tcp6       0      0 192.168.2.100%10069:www crawl312.exabot.c:44656 TIME_WAIT   -               
tcp6       0      0 192.168.2.100%10069:www crawl312.exabot.c:39523 TIME_WAIT   -               
tcp6       0      0 192.168.2.100%10069:www crawl312.exabot.c:39920 TIME_WAIT   -               
Sockets du domaine UNIX actives (sans serveurs)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name    Chemin
unix  2      [ ]         DGRAM                    6364     1/init              @/com/ubuntu/upstart
unix  16     [ ]         DGRAM                    16466    5900/syslogd        /dev/log
unix  2      [ ]         DGRAM                    6716     2874/udevd          @/org/kernel/udev/udevd
unix  2      [ ]         DGRAM                    18370    7384/hald           @/org/freedesktop/hal/udev_event
unix  2      [ ]         STREAM     CONNECTE      4680081  -                   /var/run/avahi-daemon/socket
unix  3      [ ]         STREAM     CONNECTE      4631859  5979/dbus-daemon    /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTE      4631858  17907/vino-server   
unix  3      [ ]         STREAM     CONNECTE      4631837  17907/vino-server   /tmp/orbit-sylvain/linc-45f3-0-7073791fd5325
unix  3      [ ]         STREAM     CONNECTE      4631836  9322/gconfd-2       
unix  3      [ ]         STREAM     CONNECTE      4631833  9322/gconfd-2       /tmp/orbit-sylvain/linc-246a-0-2a415b2268f80
unix  3      [ ]         STREAM     CONNECTE      4631832  17907/vino-server   
unix  3      [ ]         STREAM     CONNECTE      4631831  9312/dbus-daemon    @/tmp/dbus-0GZQRcu6Ct
unix  3      [ ]         STREAM     CONNECTE      4631830  17907/vino-server   
unix  3      [ ]         STREAM     CONNECTE      4631829  9252/x-session-mana /tmp/.ICE-unix/9252
unix  3      [ ]         STREAM     CONNECTE      4631828  17907/vino-server   
unix  3      [ ]         STREAM     CONNECTE      4631824  7590/X              /tmp/.X11-unix/X0
unix  3      [ ]         STREAM     CONNECTE      4631823  17907/vino-server   
unix  3      [ ]         STREAM     CONNECTE      4611900  7170/mysqld         /var/run/mysqld/mysqld.sock
unix  3      [ ]         STREAM     CONNECTE      4611899  8577/apache2        

Dans cette exemple, si vous n'utilisez pas le serveur VNC vino-server, vous pouvez arrêter ce service.