Uso Amazon SSM Agent per connettermi all'istanza EC2 in modo sicuro. Amazon SSM Agent è anche in grado di connettersi alla console dell'istanza EC2 tramite la console web aws.amazon.com. Quindi, questo è il mio metodo preferito.

Qualche giorno fa, quando ho provato a connettermi a EC2 tramite Amazon SSM Agent, non rispondeva e dopo ho deciso di connettermi nel modo tradizionale, sì con SSH.

Naturalmente, prima di tutto, voglio riavviare Amazon SSM Agent e vedo questo:

[root@i-0cd9514c60d532e78 ~] systemctl restart amazon-ssm-agent.service
Error: No space left on device

Non mi aspettavo questo messaggio di errore sullo stato del disco. E voglio controllare l'uso del disco. Ora, vedo questo:

[root@i-0cd9514c60d532e78 ~] df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 960M 0 960M 0% /dev
tmpfs 978M 0 978M 0% /dev/shm
tmpfs 978M 420K 978M 1% /run
tmpfs 978M 0 978M 0% /sys/fs/cgroup
/dev/nvme0n1p1 8.0G 2.6G 5.5G 32% /
tmpfs 196M 0 196M 0% /run/user/1000

Oops! Sembra che questo messaggio di errore non riguardi l'uso del disco ma devo esserne sicuro. Ora, è il momento di controllare gli inode.

[root@i-0cd9514c60d532e78 ~] df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 245750 304 245446 1% /dev
tmpfs 250254 2 250252 1% /dev/shm
tmpfs 250254 388 249866 1% /run
tmpfs 250254 16 250238 1% /sys/fs/cgroup
/dev/nvme0n1p1 4193216 67672 4125544 2% /
tmpfs 250254 1 250253 1% /run/user/1000

Ora che ho potuto confermare che non sono nemmeno gli inode, ho fatto ulteriori ricerche e ho scoperto che esistono segnalazioni di bug noti per questo stesso problema, dove le azioni systemctl di "start", "stop" e "reload" mostreranno un errore "No space left on device", ma le azioni "enable", "disable" e "kill" no. Nei bug, si riporta che questo errore si verifica come risultato del limite "max_user_watches" di inotify. inotify ha un limite sul numero di file e directory che può monitorare per modifiche. Per silenziare l'errore, devi aumentare il valore di "/proc/sys/fs/inotify/max_user_watches" per permettere a più file e directory di essere aggiunti e monitorati per modifiche.

Per cambiare il valore in tempo reale puoi eseguire:

echo 1048576 > /proc/sys/fs/inotify/max_user_watches

Per caricare persistentemente questo stesso valore aumentato dopo un riavvio o un'azione di stop/start:

Aggiungi la riga "fs.inotify.max_user_watches=1048576" a /etc/sysctl.conf. Puoi controllare la configurazione sysctl con il comando sysctl -p.

Riferimenti:
https://bugzilla.redhat.com/show_bug.cgi?id=894483
https://bugzilla.redhat.com/show_bug.cgi?id=1452933

Conclusione