J'ai compilé 25 outils de surveillance et de débogage des performances qui vous seront utiles lorsque vous travaillez sur un environnement Linux. Cette liste n'est en aucun cas exhaustive ni ne fait autorité.
Cependant, cette liste contient suffisamment d'outils pour que vous puissiez jouer et choisir celui qui convient à votre scénario de débogage et de surveillance spécifique.
1. DAS
À l'aide de l'utilitaire sar, vous pouvez faire deux choses :1) Surveiller les performances du système en temps réel (processeur, mémoire, E/S, etc.) 2) Collecter des données de performances en arrière-plan sur une base continue et effectuer une analyse sur les données historiques pour identifier goulots d'étranglement.
Sar fait partie du package sysstat. Voici quelques-unes des choses que vous pouvez faire à l'aide de l'utilitaire sar.
- Utilisation collective du processeur
- Statistiques individuelles du processeur
- Mémoire utilisée et disponible
- Espace d'échange utilisé et disponible
- Activités d'E/S globales du système
- Activités d'E/S de chaque appareil
- Statistiques de changement de contexte
- Exécuter la file d'attente et charger les données moyennes
- Statistiques du réseau
- Rapport de données sar à partir d'un moment précis
- et bien plus encore..
La commande sar suivante affichera les statistiques du processeur système 3 fois (avec 1 seconde d'intervalle).
La commande « sar -b » suivante rapporte les statistiques d'E/S. "1 3" indique que le sar -b sera exécuté toutes les 1 seconde pour un total de 3 fois.
$ sar -b 1 3 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 01:56:28 PM tps rtps wtps bread/s bwrtn/s 01:56:29 PM 346.00 264.00 82.00 2208.00 768.00 01:56:30 PM 100.00 36.00 64.00 304.00 816.00 01:56:31 PM 282.83 32.32 250.51 258.59 2537.37 Average: 242.81 111.04 131.77 925.75 1369.90
Plus d'exemples SAR :comment installer/configurer Sar (sysstat) et 10 exemples de commandes Sar utiles
2. Tcpdump
tcpdump est un analyseur de paquets réseau. À l'aide de tcpdump, vous pouvez capturer les paquets et les analyser pour tout goulot d'étranglement des performances.
L'exemple de commande tcpdump suivant affiche les paquets capturés en ASCII.
$ tcpdump -A -i eth0 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 14:34:50.913995 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 1457239478:1457239594(116) ack 1561461262 win 63652 E.....@.@..]..i...9...*.V...]...P....h....E...>{..U=...g. ......G..7\+KA....A...L. 14:34:51.423640 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652 E.....@.@..\..i...9...*.V..*]...P....h....7......X..!....Im.S.g.u:*..O&....^#Ba... E..(R.@.|.....9...i.*...]...V..*P..OWp........
À l'aide de tcpdump, vous pouvez capturer des paquets en fonction de plusieurs conditions personnalisées. Par exemple, capturez les paquets qui transitent par un port particulier, capturez la communication TCP entre deux hôtes spécifiques, capturez les paquets qui appartiennent à un type de protocole spécifique, etc.
Plus d'exemples tcpdump :15 exemples de commande TCPDUMP
3. Nagios
Nagios est une solution de surveillance open source qui peut surveiller à peu près n'importe quoi dans votre infrastructure informatique. Par exemple, lorsqu'un serveur tombe en panne, il peut envoyer une notification à votre équipe d'administrateurs système, lorsqu'une base de données tombe en panne, il peut avertir votre équipe DBA, lorsqu'un serveur Web tombe en panne, il peut en informer l'équipe appropriée.
Vous pouvez également définir un niveau d'avertissement et un seuil critique pour divers services afin de vous aider à résoudre le problème de manière proactive. Par exemple, il peut informer l'équipe d'administration système lorsqu'une partition de disque est pleine à 80 %, ce qui laissera suffisamment de temps à l'équipe d'administration système pour travailler sur l'ajout d'espace avant que le problème ne devienne critique.
Nagios dispose également d'une très bonne interface utilisateur à partir de laquelle vous pouvez surveiller la santé de votre infrastructure informatique globale.
Voici quelques-unes des choses que vous pouvez surveiller à l'aide de Nagios :
- Tout matériel (serveurs, commutateurs, routeurs, etc.)
- Serveurs Linux et serveurs Windows
- Bases de données (Oracle, MySQL, PostgreSQL, etc.)
- Divers services exécutés sur votre système d'exploitation (sendmail, nis, nfs, ldap, etc.)
- Serveurs Web
- Votre application personnalisée
- etc.
Plus d'exemples Nagios :comment installer et configurer Nagios, surveiller une machine Windows distante et surveiller un serveur Linux distant.
4. Iostat
iostat rapporte les statistiques CPU, E/S disque et NFS. Voici quelques exemples de commandes iostat.
Iostat sans aucun argument affiche des informations sur l'utilisation du processeur et des statistiques d'E/S sur toutes les partitions du système, comme indiqué ci-dessous.
$ iostat Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 avg-cpu: %user %nice %system %iowait %steal %idle 5.68 0.00 0.52 2.03 0.00 91.76 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 194.72 1096.66 1598.70 2719068704 3963827344 sda1 178.20 773.45 1329.09 1917686794 3295354888 sda2 16.51 323.19 269.61 801326686 668472456 sdb 371.31 945.97 1073.33 2345452365 2661206408 sdb1 371.31 945.95 1073.33 2345396901 2661206408 sdc 408.03 207.05 972.42 513364213 2411023092 sdc1 408.03 207.03 972.42 513308749 2411023092
Par défaut, iostat affiche les données d'E/S pour tous les disques disponibles dans le système. Pour afficher les statistiques d'un périphérique spécifique (par exemple, /dev/sda), utilisez l'option -p comme indiqué ci-dessous.
$ iostat -p sda Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 avg-cpu: %user %nice %system %iowait %steal %idle 5.68 0.00 0.52 2.03 0.00 91.76 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 194.69 1096.51 1598.48 2719069928 3963829584 sda2 336.38 27.17 54.00 67365064 133905080 sda1 821.89 0.69 243.53 1720833 603892838
5. Mpstat
mpstat rapporte les statistiques des processeurs. Voici quelques exemples de commandes mpstat.
L'option -A affiche toutes les informations pouvant être affichées par la commande mpstat comme indiqué ci-dessous. C'est vraiment équivalent à la commande "mpstat -I ALL -u -P ALL".
$ mpstat -A Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 _x86_64_ (4 CPU) 10:26:34 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 10:26:34 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.99 10:26:34 PM 0 0.01 0.00 0.01 0.01 0.00 0.00 0.00 0.00 99.98 10:26:34 PM 1 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98 10:26:34 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 10:26:34 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 10:26:34 PM CPU intr/s 10:26:34 PM all 36.51 10:26:34 PM 0 0.00 10:26:34 PM 1 0.00 10:26:34 PM 2 0.04 10:26:34 PM 3 0.00 10:26:34 PM CPU 0/s 1/s 8/s 9/s 12/s 14/s 15/s 16/s 19/s 20/s 21/s 33/s NMI/s LOC/s SPU/s PMI/s PND/s RES/s CAL/s TLB/s TRM/s THR/s MCE/s MCP/s ERR/s MIS/s 10:26:34 PM 0 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 7.47 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:26:34 PM 1 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 4.90 0.00 0.00 0.00 0.00 0.03 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:26:34 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.04 0.00 0.00 0.00 0.00 0.00 3.32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:26:34 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.
mpstat Option -P ALL, affiche tous les processeurs (ou cœurs) individuels ainsi que leurs statistiques, comme indiqué ci-dessous.
$ mpstat -P ALL Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 _x86_64_ (4 CPU) 10:28:04 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 10:28:04 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.99 10:28:04 PM 0 0.01 0.00 0.01 0.01 0.00 0.00 0.00 0.00 99.98 10:28:04 PM 1 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98 10:28:04 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 10:28:04 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
6. Vmstat
vmstat rapporte les statistiques de la mémoire virtuelle. Voici quelques exemples de commandes vmstat.
vmstat par défaut affichera l'utilisation de la mémoire (y compris l'échange) comme indiqué ci-dessous.
$ vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 305416 260688 29160 2356920 2 2 4 1 0 0 6 1 92 2 0 To execute vmstat every 2 seconds for 10 times, do the following. After executing 10 times, it will stop automatically. $ vmstat 2 10 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 537144 182736 6789320 0 0 0 0 1 1 0 0 100 0 0 0 0 0 537004 182736 6789320 0 0 0 0 50 32 0 0 100 0 0 ..
iostat et vmstat font partie de l'utilitaire sar. Vous devez installer le package sysstat pour faire fonctionner iostat et vmstat.
Plus d'exemples :24 Exemples de commandes iostat, vmstat et mpstat
7. Commande PS
Le processus est une instance en cours d'exécution d'un programme. Linux est un système d'exploitation multitâche, ce qui signifie que plusieurs processus peuvent être actifs à la fois. Utilisez la commande ps pour savoir quels processus sont en cours d'exécution sur votre système.
La commande ps vous donne également de nombreuses informations supplémentaires sur le processus en cours d'exécution, ce qui vous aidera à identifier les goulots d'étranglement des performances sur votre système.
Voici quelques exemples de commandes ps.
Utilisez l'option -u pour afficher le processus qui appartient à un nom d'utilisateur spécifique. Lorsque vous avez plusieurs noms d'utilisateur, séparez-les par une virgule. L'exemple ci-dessous affiche tous les processus appartenant à l'utilisateur wwwrun ou postfix.
$ ps -f -u wwwrun,postfix UID PID PPID C STIME TTY TIME CMD postfix 7457 7435 0 Mar09 ? 00:00:00 qmgr -l -t fifo -u wwwrun 7495 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf wwwrun 7496 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf wwwrun 7497 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf wwwrun 7498 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf wwwrun 7499 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf wwwrun 10078 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf wwwrun 10082 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf postfix 15677 7435 0 22:23 ? 00:00:00 pickup -l -t fifo -u
L'exemple ci-dessous affiche l'ID de processus et les commandes dans une hiérarchie. –forest est un argument de la commande ps qui affiche l'art ASCII de l'arborescence des processus. À partir de cet arbre, nous pouvons identifier quel est le processus parent et les processus enfants qu'il a forkés de manière récursive.
$ ps -e -o pid,args --forest 468 \_ sshd: root@pts/7 514 | \_ -bash 17484 \_ sshd: root@pts/11 17513 | \_ -bash 24004 | \_ vi ./790310__11117/journal 15513 \_ sshd: root@pts/1 15522 | \_ -bash 4280 \_ sshd: root@pts/5 4302 | \_ -bash
Plus d'exemples ps :7 exemples pratiques de commandes PS pour la surveillance de processus
8. Gratuit
La commande Free affiche des informations sur la mémoire physique (RAM) et la mémoire d'échange de votre système.
Dans l'exemple ci-dessous, la mémoire physique totale sur ce système est de 1 Go. Les valeurs affichées ci-dessous sont en Ko.
# free total used free shared buffers cached Mem: 1034624 1006696 27928 0 174136 615892 -/+ buffers/cache: 216668 817956 Swap: 2031608 0 2031608
L'exemple suivant affichera la mémoire totale de votre système, y compris la RAM et l'échange.
Dans la commande suivante :
- l'option m affiche les valeurs en Mo
- l'option t affiche la ligne "Total", qui est la somme des valeurs de mémoire physique et d'échange
- l'option o consiste à masquer la ligne tampons/cache de l'exemple ci-dessus.
# free -mto total used free shared buffers cached Mem: 1010 983 27 0 170 601 Swap: 1983 0 1983 Total: 2994 983 2011
9. HAUT
La commande Top affiche tous les processus en cours d'exécution dans le système classés par certaines colonnes. Cela affiche les informations en temps réel.
Vous pouvez tuer un processus sans sortir du haut. Une fois que vous avez localisé un processus qui doit être tué, appuyez sur "k" qui vous demandera l'identifiant du processus et le signal à envoyer. Si vous avez le privilège de tuer ce PID particulier, il sera tué avec succès.
PID to kill: 1309 Kill PID 1309 with signal [15]: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent 5136 root 16 0 38040 14m 9836 S 0 0.2 0:00.39 nautilus
Utilisez top -u pour afficher un processus utilisateur spécifique uniquement dans la sortie de la commande supérieure.
$ top -u geek
Pendant que la commande unix top est en cours d'exécution, appuyez sur u qui vous demandera le nom d'utilisateur comme indiqué ci-dessous.
Which user (blank for all): geek PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
Plus d'exemples :15 exemples de commandes Linux pratiques
10. Pmap
La commande pmap affiche la carte mémoire d'un processus donné. Vous devez passer le pid comme argument à la commande pmap.
L'exemple suivant affiche la carte mémoire du shell bash actuel. Dans cet exemple, 5732 est le PID du shell bash.
$ pmap 5732 5732: -bash 00393000 104K r-x-- /lib/ld-2.5.so 003b1000 1272K r-x-- /lib/libc-2.5.so 00520000 8K r-x-- /lib/libdl-2.5.so 0053f000 12K r-x-- /lib/libtermcap.so.2.0.8 0084d000 76K r-x-- /lib/libnsl-2.5.so 00c57000 32K r-x-- /lib/libnss_nis-2.5.so 00c8d000 36K r-x-- /lib/libnss_files-2.5.so b7d6c000 2048K r---- /usr/lib/locale/locale-archive bfd10000 84K rw--- [ stack ] total 4796K
pmap -x donne des informations supplémentaires sur les cartes mémoire.
$ pmap -x 5732 5732: -bash Address Kbytes RSS Anon Locked Mode Mapping 00393000 104 - - - r-x-- ld-2.5.so 003b1000 1272 - - - r-x-- libc-2.5.so 00520000 8 - - - r-x-- libdl-2.5.so 0053f000 12 - - - r-x-- libtermcap.so.2.0.8 0084d000 76 - - - r-x-- libnsl-2.5.so 00c57000 32 - - - r-x-- libnss_nis-2.5.so 00c8d000 36 - - - r-x-- libnss_files-2.5.so b7d6c000 2048 - - - r---- locale-archive bfd10000 84 - - - rw--- [ stack ] -------- ------- ------- ------- ------- total kB 4796 - - -
Pour afficher les informations sur l'appareil des cartes de processus, utilisez "pamp -d pid".
11. Netstat
La commande Netstat affiche diverses informations liées au réseau telles que les connexions réseau, les tables de routage, les statistiques d'interface, les connexions masquées, les adhésions multidiffusion, etc.,
Voici quelques exemples de commandes netstat.
Répertoriez tous les ports (à l'écoute et non à l'écoute) à l'aide de netstat -a comme indiqué ci-dessous.
# netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:30037 *:* LISTEN udp 0 0 *:bootpc *:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 6135 /tmp/.X11-unix/X0 unix 2 [ ACC ] STREAM LISTENING 5140 /var/run/acpid.socket
Utilisez la commande netstat suivante pour savoir sur quel port un programme est en cours d'exécution.
# netstat -ap | grep ssh (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 1 0 dev-db:ssh 101.174.100.22:39213 CLOSE_WAIT - tcp 1 0 dev-db:ssh 101.174.100.22:57643 CLOSE_WAIT -
Utilisez la commande netstat suivante pour savoir quel processus utilise un port particulier.
# netstat -an | grep ':80'
Plus d'exemples netstat :10 exemples de commande Netstat
12. TrafIP
IPTraf est un logiciel de surveillance de réseau IP. Voici quelques-unes des principales fonctionnalités d'IPTraf :
- Il s'agit d'un utilitaire basé sur une console (texte).
- Ceci affiche le trafic IP traversant votre réseau. Cela affiche l'indicateur TCP, le nombre de paquets et d'octets, les types de paquets ICMP, OSPF, etc.
- Affiche des statistiques d'interface étendues (y compris IP, TCP, UDP, ICMP, taille et nombre de paquets, erreurs de somme de contrôle, etc.)
- Le module LAN découvre automatiquement les hôtes et affiche leurs activités
- Filtres d'affichage de protocole pour afficher le trafic de protocole sélectif
- Fonctionnalités de journalisation avancées
- Outre l'interface Ethernet, il prend également en charge FDDI, RNIS, SLIP, PPP et bouclage
- Vous pouvez également exécuter l'utilitaire en mode plein écran. Cela a également un menu textuel.
Plus d'informations : Page d'accueil IPTraf. Capture d'écran IPTraf.
13. Strace
Strace est utilisé pour le débogage et le dépannage de l'exécution d'un exécutable sur un environnement Linux. Il affiche les appels système utilisés par le processus et les signaux reçus par le processus.
Strace surveille les appels système et les signaux d'un programme spécifique. Il est utile lorsque vous n'avez pas le code source et que vous souhaitez déboguer l'exécution d'un programme. strace vous fournit la séquence d'exécution d'un binaire du début à la fin.
Tracez un appel système spécifique dans un exécutable à l'aide de l'option -e
Par défaut, strace affiche tous les appels système pour l'exécutable donné. L'exemple suivant montre la sortie de strace pour la commande Linux ls.
$ strace ls execve("/bin/ls", ["ls"], [/* 21 vars */]) = 0 brk(0) = 0x8c31000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 8192, PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb78c7000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=65354, ...}) = 0
Pour afficher uniquement un appel système spécifique, utilisez l'option strace -e comme indiqué ci-dessous.
$ strace -e open ls open("/etc/ld.so.cache", O_RDONLY) = 3 open("/lib/libselinux.so.1", O_RDONLY) = 3 open("/lib/librt.so.1", O_RDONLY) = 3 open("/lib/libacl.so.1", O_RDONLY) = 3 open("/lib/libc.so.6", O_RDONLY) = 3 open("/lib/libdl.so.2", O_RDONLY) = 3 open("/lib/libpthread.so.0", O_RDONLY) = 3 open("/lib/libattr.so.1", O_RDONLY) = 3 open("/proc/filesystems", O_RDONLY|O_LARGEFILE) = 3 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3 open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
Plus d'exemples de strace :7 exemples de strace pour déboguer l'exécution d'un programme sous Linux
14. Lsof
Lsof signifie ls open files, qui listera tous les fichiers ouverts dans le système. Les fichiers ouverts incluent la connexion réseau, les périphériques et les répertoires. La sortie de la commande lsof aura les colonnes suivantes :
- Nom du processus COMMAND.
- ID de processus PID
- Nom d'utilisateur USER
- Descripteur de fichier FD
- Type de nœud TYPE du fichier
- numéro d'appareil DEVICE
- SIZE taille du fichier
- Numéro de nœud NODE
- NAME chemin complet du nom de fichier.
Pour afficher tous les fichiers ouverts du système, exécutez la commande lsof sans aucun paramètre, comme indiqué ci-dessous.
# lsof | more COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME init 1 root cwd DIR 8,1 4096 2 / init 1 root rtd DIR 8,1 4096 2 / init 1 root txt REG 8,1 32684 983101 /sbin/init init 1 root mem REG 8,1 106397 166798 /lib/ld-2.3.4.so init 1 root mem REG 8,1 1454802 166799 /lib/tls/libc-2.3.4.so init 1 root mem REG 8,1 53736 163964 /lib/libsepol.so.1 init 1 root mem REG 8,1 56328 166811 /lib/libselinux.so.1 init 1 root 10u FIFO 0,13 972 /dev/initctl migration 2 root cwd DIR 8,1 4096 2 / skipped..
Pour afficher les fichiers ouverts par un utilisateur spécifique, utilisez l'option lsof -u pour afficher tous les fichiers ouverts par un utilisateur spécifique.
# lsof -u ramesh vi 7190 ramesh txt REG 8,1 474608 475196 /bin/vi sshd 7163 ramesh 3u IPv6 15088263 TCP dev-db:ssh->abc-12-12-12-12.
Pour répertorier les utilisateurs d'un fichier particulier, utilisez lsof comme indiqué ci-dessous. Dans cet exemple, il affiche tous les utilisateurs qui utilisent actuellement vi.
# lsof /bin/vi COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME vi 7258 root txt REG 8,1 474608 475196 /bin/vi vi 7300 ramesh txt REG 8,1 474608 475196 /bin/vi
15. Ntop
Ntop est comme top, mais pour le trafic réseau. ntop est un moniteur de trafic réseau qui affiche l'utilisation du réseau.
Vous pouvez également accéder à ntop à partir du navigateur pour obtenir les informations sur le trafic et l'état du réseau.
Voici quelques-unes des fonctionnalités clés de ntop :
- Afficher le trafic réseau ventilé par protocoles
- Trier la sortie du trafic réseau en fonction de plusieurs critères
- Afficher les statistiques de trafic réseau
- Possibilité de stocker les statistiques de trafic réseau à l'aide de RRD
- Identifier l'identité des utilisateurs et du système d'exploitation hôte
- Capacité à analyser et afficher le trafic informatique
- Capacité à fonctionner en tant que collecteur NetFlow/sFlow pour les routeurs et les commutateurs
- Affiche des statistiques de trafic réseau similaires à RMON
- Fonctionne sous Linux, MacOS et Windows
Plus d'informations :page d'accueil de Ntop
16. GkrellM
GKrellM signifie GNU Krell Monitors ou GTK Krell Meters. Il s'agit d'un programme de surveillance basé sur la boîte à outils GTK +, qui surveille diverses ressources système. L'interface utilisateur est empilable. c'est-à-dire que vous pouvez ajouter autant d'objets de surveillance que vous le souhaitez les uns sur les autres. Comme tout autre outil de surveillance basé sur l'interface utilisateur de bureau, il peut surveiller le processeur, la mémoire, le système de fichiers, l'utilisation du réseau, etc. Mais en utilisant des plugins, vous pouvez surveiller les applications externes.
Plus d'informations :page d'accueil de GkrellM
17. w et disponibilité
Lors de la surveillance des performances du système, la commande w aidera à savoir qui est connecté au système.
$ w 09:35:06 up 21 days, 23:28, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 :0 24Oct11 21days 1:05 1:05 /usr/bin/Xorg :0 -nr -verbose ramesh pts/0 192.168.1.10 Mon14 0.00s 15.55s 0.26s sshd: localuser [priv] john pts/0 192.168.1.11 Mon07 0.00s 19.05s 0.20s sshd: localuser [priv] jason pts/0 192.168.1.12 Mon07 0.00s 21.15s 0.16s sshd: localuser [priv]
Pour chaque utilisateur connecté, il affiche les informations suivantes :
- Nom d'utilisateur
- infos tty
- Adresse IP de l'hôte distant
- Heure de connexion de l'utilisateur
- Depuis combien de temps l'utilisateur est inactif
- JCPU et PCUP
- La commande du processus actuel que l'utilisateur exécute
La ligne 1 de la sortie de la commande w est similaire à la sortie de la commande uptime. Il affiche les éléments suivants :
- Heure actuelle
- Depuis combien de temps le système est opérationnel
- Nombre total d'utilisateurs actuellement connectés au système
- Moyenne de charge pour les 1, 5 et 15 dernières minutes
Si vous voulez uniquement les informations de disponibilité, utilisez la commande uptime.
$ uptime 09:35:02 up 106 days, 28 min, 2 users, load average: 0.08, 0.11, 0.05
Veuillez noter que les commandes w et uptime obtiennent les informations du fichier de données /var/run/utmp.
18. /proc
/proc est un système de fichiers virtuel. Par exemple, si vous faites ls -l /proc/stat, vous remarquerez qu'il a une taille de 0 octet, mais si vous faites « cat /proc/stat », vous verrez du contenu à l'intérieur du fichier.
Faites un ls -l /proc, et vous verrez beaucoup de répertoires avec juste des nombres. Ces numéros représentent les identifiants de processus, les fichiers à l'intérieur de ce répertoire numéroté correspondent au processus avec ce PID particulier.
Voici les fichiers importants situés sous chaque répertoire numéroté (pour chaque processus) :
- cmdline – ligne de commande de la commande.
- environ – variables d'environnement.
- fd – Contient les descripteurs de fichiers liés aux fichiers appropriés.
- limits - Contient les informations sur les limites spécifiques du processus.
- montages – informations relatives aux montages
Voici les liens importants sous chaque répertoire numéroté (pour chaque processus) :
- cwd – Lien vers le répertoire de travail actuel du processus.
- exe - Lien vers l'exécutable du processus.
- root – Lien vers le répertoire racine du processus.
Plus d'exemples /proc :Explorer le système de fichiers Linux /proc
19. Garde du système KDE
Ceci est également appelé KSysGuard. Sur les bureaux Linux qui exécutent KDE, vous pouvez utiliser cet outil pour surveiller les ressources système. Outre la surveillance du système local, cela peut également surveiller les systèmes distants.
Si vous utilisez le bureau KDE, accédez à Applications -> Système -> Moniteur système, ce qui lancera KSysGuard. Vous pouvez également taper ksysguard depuis la ligne de commande pour le lancer.
Cet outil affiche les deux onglets suivants :
- Tableau des processus :affiche tous les processus actifs. Vous pouvez trier, supprimer ou modifier la priorité des processus à partir d'ici
- Charge du système :affiche des graphiques pour les utilisations du processeur, de la mémoire et du réseau. Ces graphiques peuvent être personnalisés en faisant un clic droit sur l'un de ces graphiques.
Pour vous connecter à un hôte distant et le surveiller, cliquez sur le menu Fichier -> Surveiller la machine distante -> spécifiez l'adresse IP de l'hôte, la méthode de connexion (par exemple, ssh). Cela vous demandera le nom d'utilisateur/mot de passe sur la machine distante. Une fois connecté, cela affichera l'utilisation du système de la machine distante dans les onglets Process Table et System Load.
20. Moniteur système GNOME
Sur les postes de travail Linux qui exécutent GNOME, vous pouvez utiliser cet outil pour surveiller les processus, les ressources système et les systèmes de fichiers à partir d'une interface graphique. Outre la surveillance, vous pouvez également utiliser cet outil d'interface utilisateur pour tuer un processus, modifier la priorité d'un processus.
Si vous utilisez le bureau GNOME, accédez à Système -> Administration -> Moniteur système, ce qui lancera le moniteur système GNOME. Vous pouvez également taper gnome-system-monitor depuis la ligne de commande pour le lancer.
Cet outil comporte les quatre onglets suivants :
- Système :affiche les informations système, y compris la version de la distribution Linux, les ressources système et les informations sur le matériel.
- Processus :affiche tous les processus actifs pouvant être triés en fonction de divers champs
- Ressources :affiche les utilisations du processeur, de la mémoire et du réseau
- Systèmes de fichiers :affiche des informations sur les systèmes de fichiers actuellement montés
Plus d'informations :page d'accueil de GNOME System Monitor
21. Conky
Conky est un moniteur système ou X. Conky affiche des informations dans l'interface utilisateur en utilisant ce qu'il appelle des objets. Par défaut, plus de 250 objets sont fournis avec conky, qui affiche diverses informations de surveillance (CPU, mémoire, réseau, disque, etc.). Il prend en charge IMAP, POP3, plusieurs lecteurs audio.
Vous pouvez surveiller et afficher n'importe quelle application externe en créant vos propres objets à l'aide de scripts. Les informations de surveillance peuvent être affichées sous différents formats :texte, graphiques, barres de progression, etc. Cet utilitaire est extrêmement configurable.
Plus d'informations :captures d'écran de Conky
22. Cactus
Cacti est une interface utilisateur basée sur PHP pour RRDTool. Cacti stocke les données nécessaires pour générer le graphique dans une base de données MySQL.
Voici quelques fonctionnalités de haut niveau de Cacti :
- Capacité à effectuer la collecte de données et à les stocker dans une base de données MySQL (ou des archives circulaires)
- Plusieurs fonctionnalités graphiques avancées sont disponibles (regroupement d'éléments graphiques GPRINT, remplissage automatique des graphiques, manipulation des données graphiques à l'aide de la fonction mathématique CDEF, tous les éléments graphiques RRDTool sont pris en charge)
- La source de données peut collecter des données locales ou distantes pour le graphique
- Possibilité de personnaliser entièrement les paramètres d'archivage circulaire (RRA)
- L'utilisateur peut définir des scripts personnalisés pour collecter des données
- Compatibilité SNMP (php-snmp, ucd-snmp ou net-snmp) pour la collecte de données
- Le poller intégré permet d'exécuter des scripts personnalisés, d'obtenir des données SNMP, de mettre à jour des fichiers RRD, etc.
- Fonctionnalités de modèle de graphique hautement flexibles
- Options d'affichage graphique conviviales et personnalisables
- Créer différents utilisateurs avec différents ensembles d'autorisations pour accéder à l'interface cacti
- Des niveaux d'autorisation précis peuvent être définis pour chaque utilisateur
- et bien plus encore..
Plus d'infos :Page d'accueil de Cacti
23. Vnstat
vnstat est un utilitaire de ligne de commande qui affiche et consigne le trafic réseau des interfaces sur vos systèmes. Cela dépend des statistiques réseau fournies par le noyau. Ainsi, vnstat n'ajoute aucune charge supplémentaire à votre système pour surveiller et enregistrer le trafic réseau.
vnstat sans aucun argument vous donnera un résumé rapide avec les informations suivantes :
- La dernière fois que la base de données vnStat située sous /var/lib/vnstat/ a été mise à jour
- Depuis qu'il a commencé à collecter les statistiques pour une interface spécifique
- Les données statistiques du réseau (octets transmis, octets reçus) pour les deux derniers mois et les deux derniers jours.
# vnstat Database updated: Sat Oct 15 11:54:00 2011 eth0 since 10/01/11 rx: 12.89 MiB tx: 6.94 MiB total: 19.82 MiB monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- Sep '11 12.90 MiB | 6.90 MiB | 19.81 MiB | 0.14 kbit/s Oct '11 12.89 MiB | 6.94 MiB | 19.82 MiB | 0.15 kbit/s ------------------------+-------------+-------------+--------------- estimated 29 MiB | 14 MiB | 43 MiB | daily rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- yesterday 4.30 MiB | 2.42 MiB | 6.72 MiB | 0.64 kbit/s today 2.03 MiB | 1.07 MiB | 3.10 MiB | 0.59 kbit/s ------------------------+-------------+-------------+--------------- estimated 4 MiB | 2 MiB | 6 MiB |
Utilisez « vnstat -t » ou « vnstat –top10 » pour afficher les 10 jours de trafic les plus fréquents.
$ vnstat --top10 eth0 / top 10 # day rx | tx | total | avg. rate -----------------------------+-------------+-------------+--------------- 1 10/12/11 4.30 MiB | 2.42 MiB | 6.72 MiB | 0.64 kbit/s 2 10/11/11 4.07 MiB | 2.17 MiB | 6.24 MiB | 0.59 kbit/s 3 10/10/11 2.48 MiB | 1.28 MiB | 3.76 MiB | 0.36 kbit/s .... -----------------------------+-------------+-------------+---------------
Plus d'exemples vnstat :comment surveiller et consigner le trafic réseau à l'aide de VNStat
24. Htop
htop est un visualiseur de processus basé sur ncurses. Ceci est similaire à top, mais est plus flexible et convivial. Vous pouvez interagir avec le htop en utilisant la souris. Vous pouvez faire défiler verticalement pour afficher la liste complète des processus et faire défiler horizontalement pour afficher la ligne de commande complète du processus.
La sortie htop se compose de trois sections 1) en-tête 2) corps et 3) pied de page.
En-tête affiche les trois barres suivantes et quelques informations vitales sur le système. Vous pouvez modifier n'importe lequel d'entre eux à partir du menu de configuration de htop.
- Utilisation CPU :affiche le % utilisé dans le texte à la fin de la barre. La barre elle-même affichera différentes couleurs. Faible priorité en bleu, normal en vert, noyau en rouge.
- Utilisation de la mémoire
- Utilisation de l'échange
Corps affiche la liste des processus triés par % d'utilisation CPU. Utilisez les touches fléchées, la page vers le haut, la touche vers le bas pour faire défiler les processus.
Pied de page affiche les commandes du menu htop.
Plus d'informations :Capture d'écran HTOP et exemples
25. Statistiques des sockets – SS
ss signifie statistiques de socket. Cela affiche des informations similaires à la commande netstat.
Pour afficher toutes les sockets d'écoute, faites ss -l comme indiqué ci-dessous.
$ ss -l Recv-Q Send-Q Local Address:Port Peer Address:Port 0 100 :::8009 :::* 0 128 :::sunrpc :::* 0 100 :::webcache :::* 0 128 :::ssh :::* 0 64 :::nrpe :::*
Ce qui suit affiche uniquement la connexion établie.
$ ss -o state established Recv-Q Send-Q Local Address:Port Peer Address:Port 0 52 192.168.1.10:ssh 192.168.2.11:55969 timer:(on,414ms,0)
Ce qui suit affiche les statistiques récapitulatives des sockets. Cela affiche le nombre total de sockets ventilés par type.
$ ss -s Total: 688 (kernel 721) TCP: 16 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 11 Transport Total IP IPv6 * 721 - - RAW 0 0 0 UDP 13 10 3 TCP 16 7 9 INET 29 17 12 FRAG 0 0 0
Quel outil utilisez-vous pour surveiller les performances de votre environnement Linux ? Ai-je manqué l'un de vos outils de surveillance des performances préférés ? Laissez un commentaire.