Datacenter Virtuel (VPC) » Quelques astuces utiles

Quelques astuces utiles

Monitorer une machine virtuelle

Lorsqu’on administre un système d’exploitation, il est souvent nécessaire de monitorer les ressources qui ont un impact sur son fonctionnement, en particulier le CPU, la RAM, les disques et le réseau. Heureusement, de nombreux outils existent. Certains seront installés par défaut, d’autres seront à installer depuis les dépôts de votre distribution Linux. Commençons par la commande top, qui permet de visualiser les processus, l’utilisation CPU et mémoire :

top - 22:17:31 up 44 days, 57 min,  1 user,  load average: 0.43, 0.13, 0.03
Tasks: 127 total,   1 running,  83 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.4 us,  0.3 sy,  0.0 ni, 98.5 id,  0.8 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8167920 total,  4630380 free,   462076 used,  3075464 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  7473412 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1 root      20   0  225628   9236   6616 S   0.0  0.1  15:52.29 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.48 kthreadd
    4 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 kworker/0:0H
    6 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 mm_percpu_wq
    7 root      20   0       0      0      0 S   0.0  0.0   1:12.65 ksoftirqd/0
    8 root      20   0       0      0      0 I   0.0  0.0   4:20.50 rcu_sched
    9 root      20   0       0      0      0 I   0.0  0.0   0:00.00 rcu_bh
   10 root      rt   0       0      0      0 S   0.0  0.0   0:01.95 migration/0
   11 root      rt   0       0      0      0 S   0.0  0.0   0:07.85 watchdog/0
   12 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/0
   13 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/1
   14 root      rt   0       0      0      0 S   0.0  0.0   0:08.03 watchdog/1
   15 root      rt   0       0      0      0 S   0.0  0.0   0:01.79 migration/1
   16 root      20   0       0      0      0 S   0.0  0.0   1:39.79 ksoftirqd/1
  

Astuce : Vous pouvez afficher le détail de l’utilisation CPU par cœur en tapant ’1’. Il existe une version plus ”graphique”, mais toujours en ligne de commande, de cette dernière. La commande htop :

Cette commande est rarement présente par défaut sur le système et nécessite l’installation du paquet htop.

Astuce : Utilisez ’F5’ pour afficher l’arbre des threads dans htop.
Une autre commande présente par défaut permet d’avoir le détail de l’utilisation mémoire. La commande free -h :

              total        used        free      shared  buff/cache   available
Mem:           7.8G        450M        4.4G         70M        2.9G        7.1G
Swap:            0B          0B          0B

La commande uptime, elle aussi installée par défaut, permet d’avoir le temps écoulé depuis le dernier démarrage ainsi que la charge du système sur 1, 5 et 15 minutes :

 22:31:39 up 44 days,  1:11,  1 user,  load average: 0.11, 0.08, 0.07

Ensuite, on peut surveiller la bande passante réseau avec la commande ifstat -S :

       ens4              docker0         br-c40b8c5cd091     br-830cedeff8f4     br-d2c212bb3097       vethf9eef05         vethf4c8dd0         vethdcae498
 KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out
    2.67      0.10      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.06      0.06      0.06      0.06

Cette commande nécessite l’installation du paquet ifstat.

Vous pouvez connaître l’espace disque utilisé avec la commande df -h présente par défaut :

Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           798M  916K  797M   1% /run
/dev/sda1        58G   49G  9.7G  84% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda15      105M  3.6M  101M   4% /boot/efi

Enfin, vous pouvez surveiller les lectures et ́écritures (I/O) disque avec la commande iostat :

Linux 4.15.0-112-generic (team)         10/08/20        _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.38    0.00    0.27    0.82    0.02   98.50

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop0             0.00         0.00         0.00          8          0
sda               2.32         4.78        38.35   18176413  145982925

Cette commande nécessite l’installation du paquet sysstat sur les systèmes basés Debian ou iostat sur les systèmes basés RHEL.


Considérations de sécurité

Le Cloud est totalement ouvert sur Internet. Sans certaines précautions, celui-ci peut devenir un atout précieux pour les attaquants par ses capacités matérielles. Voici donc quelques recommandations à suivre afin de maintenir un niveau de sécurité convenable pour vos VM.

  1. Restreindre l’ouverture de ports de votre VM (ex. SSH, HTTP/S, etc.) à votre machine personnelle, grâce aux groupes de sécurité.
  2. Si la VM est ouverte sur Internet, effectuer des mises à jour régulières (ex. tous les 7 à 15 jours) voir automatiques.
  3. Maintenir les images système que vous auriez créé à jour (ex. une fois par trimestre).
  4. Ne pas autoriser la connexion SSH par mot de passe (continuer de fonctionner par couples de clés publique/privée).
  5. Veiller à ne pas laisser de données personnelles (clés RSA, jeux de données, etc.) dans les images et snapshots que vous aurez créé.