======Monitoring et diagnostique======
//sous Linux//
Ces outils permettent d'afficher l'état de santé de la machine, de détecter s'il se passe quelque chose d'anormal, ou d'investiguer sur un problème déjà connu.
=====Tableaux de bord=====
Ce sont les logiciels générique qui permettent d'afficher de multiples mesures et informations, typiquement les trucs qu'on laisse ouvert dans un screen/byobu.
====saidar====
Affiche l'ensemble des indicateurs de santé de la machine en mode texte : la charge (1/5/15), l'état de la mémoire (vive/swap), les statistiques des processus (running, zombi), l'utilisation du disque (read/write), l'utilisation des interfaces réseau (rx/tx) et l'état des partitions.
saidar -c
====glance====
Dans le même genre que saidar, en plus détaillé.
====neofetch====
Affiche un résumé des informations système :
$ neofetch
_,met$$$$$gg. dude@tyr
,g$$$$$$$$$$$$$$$P. --------
,g$$P" """Y$$.". OS: Debian GNU/Linux 10 (buster) x86_64
,$$P' `$$$. Kernel: 4.19.0-13-amd64
',$$P ,ggs. `$$b: Uptime: 28 days, 6 hours, 24 mins
`d$$' ,$P"' . $$$ Packages: 574 (dpkg)
$$P d$' , $$P Shell: bash 5.0.3
$$: $$. - ,d$$' Terminal: /dev/pts/0
$$; Y$b._ _,d$P' CPU: Intel Atom N2800 (4) @ 1.862GHz
Y$$. `.`"Y$$$$P"' GPU: Intel Atom Processor D2xxx/N2xxx
`$$b "-.__ Memory: 321MiB / 1976MiB
`Y$$
`Y$$.
`$$b.
`Y$$b.
`"Y$b._
`"""
====inxi====
A l'instar de neofetch, permet d'afficher des informations système (plus détaillées cependant).
$ inxi -F
System: Host: tyr Kernel: 4.19.0-13-amd64 x86_64 bits: 64 Console: tty 0 Distro: Debian GNU/Linux 10 (buster)
Machine: Type: Desktop Mobo: Intel model: DN2800MT v: AAG81515-900 serial: BIOS: Intel
v: MTCDT10N.86A.0165.2013.0114.1540 date: 01/14/2013
CPU: Topology: Dual Core model: Intel Atom N2800 bits: 64 type: MT MCP L2 cache: 512 KiB
Speed: 800 MHz min/max: 798/1862 MHz Core speeds (MHz): 1: 800 2: 800 3: 800 4: 800
Graphics: Device-1: Intel Atom Processor D2xxx/N2xxx Integrated Graphics driver: gma500 v: N/A
Display: server: No display server data found. Headless machine? tty: 125x35
Message: Unable to show advanced data. Required tool glxinfo missing.
Audio: Message: No Device data found.
Network: Device-1: Intel 82574L Gigabit Network driver: e1000e
IF: eno0 state: up speed: 100 Mbps duplex: full mac: 00:22:4d:00:11:22
IF-ID-1: tun0 state: unknown speed: 10 Mbps duplex: full mac: N/A
Drives: Local Storage: total: 465.76 GiB used: 252.53 GiB (54.2%)
ID-1: /dev/sda vendor: Toshiba model: DT01ACA050 size: 465.76 GiB
Partition: ID-1: / size: 19.10 GiB used: 4.33 GiB (22.7%) fs: ext4 dev: /dev/sda2
ID-2: /boot size: 486.8 MiB used: 171.6 MiB (35.2%) fs: ext4 dev: /dev/sda1
ID-3: /home size: 438.12 GiB used: 247.96 GiB (56.6%) fs: ext4 dev: /dev/sda3
ID-4: swap-1 size: 511.0 MiB used: 76.0 MiB (14.9%) fs: swap dev: /dev/sda4
Sensors: Missing: Required tool sensors not installed. Check --recommends
Info: Processes: 128 Uptime: 28d 6h 37m Memory: 1.93 GiB used: 415.9 MiB (21.0%) Init: systemd runlevel: 5
Shell: bash inxi: 3.0.32
=====Processus=====
====top/htop====
Afficher la liste des processus avec leur utilisation CPU, mémoire, etc... Htop est plus évolué que top et affiche également des jauges d'utilisation CPU/mémoire/swap (et en couleur !).
htop
====btop====
[[https://github.com/aristocratos/btop|btop]] est un moniteur de ressources qui n'affiche pas que les stats "système" mais aussi réseau, disque, etc
Marche aussi parfaitement sous MacOS avec [[https://brew.sh/|homebrew]] (''brew install btop'').
{{ :informatique:linux:btop_sshot.png?600 |}}
====pidstat====
**pidstat** affiche l'activité des processus actifs
# "-d" report IOSTAT ; "-l" list process cmd name & args ; 1 interval [ 30 count ])
pidstat -d -l 1 30
====ps====
# lister les processus bloqués en state=D (Disk sleep (uninterruptible))
for x in `seq 1 1 10`; do ps -eo state,pid,cmd | grep "^D"; echo "---"; sleep 5; done"
=====Réseau=====
====hping====
====iftop====
Affiche l'utilisation d'une interface réseau, par connexion.
iftop -i eth0
====iptraf====
iptraf
====jnettop====
jnettop
====mtr====
====nethogs====
nethogs
====nload====
====nmap====
====ntop====
====tcpdump====
Outil indispensable pour le diagnostique réseau, [[informatique:logiciels:tcpdump|tcpdump]] permet de sniffer le réseau.
====vnstat====
====zmap====
https://zmap.io
=====System=====
====mpstat====
mpstat -P ALL 5
Linux 3.10.0-514.26.2.el7.x86_64 (ldri601z) 02/08/2018 _x86_64_ (8 CPU)
10:39:05 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
10:39:10 all 1,20 0,00 0,98 61,32 0,00 0,00 0,00 0,00 0,00 36,50
10:39:10 0 3,41 0,00 4,22 92,37 0,00 0,00 0,00 0,00 0,00 0,00
10:39:10 1 0,80 0,00 0,60 98,60 0,00 0,00 0,00 0,00 0,00 0,00
10:39:10 2 2,81 0,00 0,40 0,00 0,00 0,00 0,00 0,00 0,00 96,79
10:39:10 3 2,20 0,00 2,20 0,00 0,00 0,00 0,00 0,00 0,00 95,59
10:39:10 4 0,00 0,00 0,00 100,00 0,00 0,00 0,00 0,00 0,00 0,00
10:39:10 5 0,20 0,00 0,20 99,60 0,00 0,00 0,00 0,00 0,00 0,00
10:39:10 6 0,20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 99,80
10:39:10 7 0,00 0,00 0,20 99,80 0,00 0,00 0,00 0,00 0,00 0,00
[..]
====vmstat====
vmstat 1
procs -----------memory------------ ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 9 147484 1129764 16 1345452 0 0 1 4 16 19 2 1 91 7 0
0 9 147484 1129640 16 1345420 0 0 0 1388 693 1545 1 1 37 61 0
0 9 147484 1128876 16 1345420 0 0 0 44 639 1566 2 1 37 60 0
La première ligne n'est pas à prendre en compte puisqu'il affiche les stats depuis son dernier lancement.
Ici on voit un fort %age d'IOwait (60 "wa") ce qui correspond au temps d'attente ("perdu" càd s'il est IDLE) d'accès au disque du processeur.
=====IO=====
Voir les stats d'IO d'un processus : ''cat /proc//io''
====iostat====
iostat -x 2 5
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 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
sdb 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
sdc 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
====iotop====
iotop -p PID -k
# afficher le cumul des IO des processus actifs
iotop -oa
====sar====
=====Applications=====
====apachetop====
apachetop /var/log/apache2/access.log
====mytop====
mytop -u user -pMDP -d mysql
====dnstop====
dnstop -4 eth0
=====Liens utiles=====
* https://www.binarytides.com/linux-commands-monitor-network/
* https://korben.info/outils-crise-linux-indispensables-pros-it.html
* https://www.brendangregg.com/blog/2024-03-24/linux-crisis-tools.html