Afin de surveiller ou de debugger l’activité d’un système, Linux dispose d’un certain nombre d’outils en ligne de commande permettant d’analyser les différentes interfaces d’entrée/sortie de l’ordinateur, ainsi que l’activité du processeur.

Le réseau

Netstat

Netstat est installé par défaut sur le système.
C’est un peu comme un couteau suisse. Il permet d’afficher un certain nombre de valeurs utiles pour analyser son système. Je vais ici détailler un certain nombre de ses fonctionnalités.

  • netstat -r : affiche la table de routage

$ netstat -r
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic   MSS Fenêtre irtt Iface
192.168.0.0     *               255.255.255.0   U         0 0          0 eth0
link-local      *               255.255.0.0     U         0 0          0 eth0
default         intranet.matao. 0.0.0.0         UG        0 0          0 eth0

  • netstat – i : étudier les interfaces réseaux

$ netstat -i
Table d'interfaces noyau
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0   1500 0  11760731      0      0      0  8853487      0      0      0 BMRU
irda0  2048 0         0      0      0      0   136234      0      0      0 ORU
lo    16436 0        24      0      0      0       24      0      0      0 LRU

Il est a noter que si vous voulez exécuter cette commande en boucle, il suffira de taper : $ watch -n 0 "netstat -i"

  • netstat -4epn : étudier les connexions réseaux et leur état

$ netstat -4epn
(Tous les processus ne peuvent être identifiés, les infos sur les processus
non possédés ne seront pas affichées, vous devez être root pour les voir toutes.)
Connexions Internet actives (sans serveurs)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat       Utilisatr  Inode      PID/Program name  
tcp        0      0 192.168.0.3:57858       209.85.136.210:5222     ESTABLISHED1000       82324      5730/pidgin        
tcp        0      0 192.168.0.3:52573       129.20.130.77:5222      ESTABLISHED1000       82302      5730/pidgin        
tcp        0      0 192.168.0.3:54030       192.168.0.10:1492       ESTABLISHED1000       243852     9261/ssh           
tcp        0      0 192.168.0.3:1011        192.168.0.2:2049        ESTABLISHED0          18905      -                  
tcp        0      0 192.168.0.3:37600       207.46.111.26:1863      ESTABLISHED1000       82370      5730/pidgin        
udp        0      0 192.168.0.3:32776       192.168.0.2:514         ESTABLISHED0          25878      -                  

En remplacant le 4 par un 6, on obtient la même chose pour les connexions IPV6.

  • netstat -tulp : étudier quel processus ouvre quel port sur la machine

$ sudo netstat -tulp
Connexions Internet actives (seulement serveurs)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat       PID/Program name  
tcp        0      0 *:35855                 *:*                     LISTEN     4081/rpc.statd     
tcp        0      0 *:sunrpc                *:*                     LISTEN     4063/portmap       
tcp        0      0 *:ipp                   *:*                     LISTEN     4861/cupsd         
tcp        0      0 *:50973                 *:*                     LISTEN     -                  
tcp6       0      0 *:ssh                   *:*                     LISTEN     4807/sshd          
tcp6       0      0 *:ipp                   *:*                     LISTEN     4861/cupsd         
udp        0      0 *:32768                 *:*                                4081/rpc.statd     
udp        0      0 *:32769                 *:*                                5204/avahi-daemon: 
udp        0      0 *:bootpc                *:*                                5443/dhclient      
udp        0      0 *:865                   *:*                                4081/rpc.statd     
udp        0      0 *:mdns                  *:*                                5204/avahi-daemon: 
udp        0      0 *:sunrpc                *:*                                4063/portmap       
udp        0      0 *:ipp                   *:*                                4861/cupsd         

  • netstat –unix -p : étudier quel sockets sont ouverts par quel processus

$ netstat --unix -p
(Tous les processus ne peuvent être identifiés, les infos sur les processus
non possédés ne seront pas affichées, vous devez être root pour les voir toutes.)
Sockets du domaine UNIX actives (sans serveurs)
Proto RefCpt Indicatrs   Type       Etat          I-Node PID/Program name    Chemin
unix  2      [ ]         DGRAM                    8304     -                   @/com/ubuntu/upstart
unix  2      [ ]         DGRAM                    8477     -                   @/org/kernel/udev/udevd
unix  2      [ ]         DGRAM                    15377    -                   @/org/freedesktop/hal/udev_event
unix  3      [ ]         STREAM     CONNECTE      241387   -                  
unix  3      [ ]         STREAM     CONNECTE      241386   9238/gnome-terminal
unix  3      [ ]         STREAM     CONNECTE      241367   9238/gnome-terminal /tmp/orbit-matao/linc-2416-0-c52717c558a1
unix  3      [ ]         STREAM     CONNECTE      241365   5718/bonobo-activat
unix  3      [ ]         STREAM     CONNECTE      241364   5718/bonobo-activat /tmp/orbit-matao/linc-1656-0-495dbdbdb1759
unix  3      [ ]         STREAM     CONNECTE      241363   9238/gnome-terminal
unix  3      [ ]         STREAM     CONNECTE      241362   9238/gnome-terminal /tmp/orbit-matao/linc-2416-0-c52717c558a1
unix  3      [ ]         STREAM     CONNECTE      241361   5691/gconfd-2      
unix  3      [ ]         STREAM     CONNECTE      241358   5691/gconfd-2       /tmp/orbit-matao/linc-163b-0-2a789197b028
unix  3      [ ]         STREAM     CONNECTE      241357   9238/gnome-terminal
unix  3      [ ]         STREAM     CONNECTE      241355   5649/x-session-mana /tmp/.ICE-unix/5649

ifstat

ifstat est un paquet, qui doit être installé par :

sudo aptitude install ifstat

Ifstat permet de surveiller l’activité réseau :

$ ifstat -WatTzb
  Time           eth0                 lo                Total      
HH:MM:SS   Kbps in  Kbps out   Kbps in  Kbps out   Kbps in  Kbps out
01:19:07      2.80      3.32      0.00      0.00      2.80      3.32
01:19:08      0.52      1.39      0.00      0.00      0.52      1.39
01:19:09      0.52      1.39      0.00      0.00      0.52      1.39
01:19:10      0.52      1.39      0.00      0.00      0.52      1.39
01:19:11      0.52      1.39      0.00      0.00      0.52      1.39

en ajoutant l’option S, soit ifstat -WatTzbS, on obtient le résultat sur une seule ligne, mais du coup, on perd l’historique des valeurs.

iftop

sudo apt-get install iftop

petit utilitaire à la top, permettant de voir la consommation en bande passante de chaque connexion réseau de votre ordinateur.

L’activité des disques

iostat

Pour installer iostat :

sudo apt-get install sysstat

iostat permet de surveiller l’activité des disques en temps réel. pour cela, tapez :

$ iostat -tmdx 1

Heure: 01:29:17
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
fd0          0,00   0,00  0,00  0,00    0,00    0,00     0,00     0,00     2,00     0,00   64,00  64,00   0,00
hda          0,01   2,20  0,24  0,60    9,36   22,35     0,00     0,01    38,16     0,08   98,13   8,99   0,75
hdb          0,08   3,92  0,68  0,42   34,48   34,75     0,02     0,02    62,74     0,02   15,65   6,73   0,74

Heure: 01:29:18
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
fd0          0,00   0,00  0,00  0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00   0,00   0,00
hda          0,00   0,00  0,00  0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00   0,00   0,00
hdb          0,00   0,00  1,00  0,00  256,00    0,00     0,12     0,00   256,00     0,04   40,00  40,00   4,00

Heure: 01:29:19
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
fd0          0,00   0,00  0,00  0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00   0,00   0,00
hda          0,00   0,99  0,00  2,97    0,00   31,68     0,00     0,02    10,67     0,05   16,00   8,00   2,38
hdb          0,00   0,99  1,98  1,98  506,93   23,76     0,25     0,01   134,00     0,10   24,00  24,00   9,50

Les processeurs

iostat

iostat permet également de surveiller l’activité du processeur :

$ iostat -tmcx 1

Heure: 01:31:33
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2,26    0,02    0,86    0,67    0,00   96,20

Heure: 01:31:34
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,99    0,00    0,00    0,00    0,00   99,01

Heure: 01:31:35
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,00    0,00    0,00    0,00    0,00  100,00

htop

s’installe par : sudo apt-get install htop

htop ressemble à top, mais il a trois gros avantages :

  • Il est en couleur
  • Il est utilisable à la souris
  • Les commandes sont intuitives

mpstat

Permet de surveiller l’activité des différents processeurs ou coeurs, cette application est également disponible dans le paquet sysstat.

$ mpstat 1

01:35:33     CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
01:35:34     all    0,00    0,00    1,00    0,00    0,00    0,00    0,00   99,00    430,00
01:35:35     all    0,00    0,00    0,00    0,00    0,00    0,00    0,00  100,00    412,87
01:35:36     all    0,00    0,00    0,00    0,00    0,00    0,00    0,00  100,00    272,00
01:35:37     all    0,00    0,00    0,00    0,00    0,00    0,00    0,00  100,00    269,31
01:35:38     all    0,00    0,00    0,00    0,00    0,00    0,00    0,00  100,00    276,00
01:35:39     all    0,00    0,00    0,00    1,98    0,00    0,00    0,00   98,02    340,59

Evidemment, cette commande s’avère surtout utile lorsqu’on a plusieurs processeurs ou coeurs.

Voilà pour ce petit inventaire, qui ne se veut pas exhaustif, mais qui donne quelques pistes pour mieux analyser son système en cas de problème.