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.
3 commentaires to 'Surveillance système avec les commandes de base : netstat, iftop, sysstat.'
7 avril 2008
Salut,
Merci pour ce billet.
Je rajouterais le paquet “acct”
Il comprend entre autres les commande “sa” et “ac” qui permet de surveiller les temps de connexions par utilisateurs et les appels systèmes effectués par eux.
ac –individual-totals
sa –print-users
7 avril 2008
Au niveau de la surveillance réseau, peut être un peu plus poussée, il existe l’excellent iptraf, qui permet de surveiller les interfaces, de faire des statistiques par IP, par interface, de filtrer tout ça….
Le site de l’application : http://iptraf.seul.org/
Pour les screenshots, c’est par ici : http://iptraf.seul.org/shots.html
Merci pour cet article bien complet !
11 avril 2008
Désolé, Gameplayer, ton commentaire était passé comme spam, sans doute à cause des liens… voilà, c’est réparé…