alert: NodeInodesLow
expr: node_filesystem_files_free{fstype!~"tmpfs|overlay|squashfs|devtmpfs|ramfs|iso9660|autofs|fuse.*|nfs.*|cifs"}
/ node_filesystem_files{fstype!~"tmpfs|overlay|squashfs|devtmpfs|ramfs|iso9660|autofs|fuse.*|nfs.*|cifs"} * 100 < 10
and node_filesystem_files{fstype!~"tmpfs|overlay|squashfs|devtmpfs|ramfs|iso9660|autofs|fuse.*|nfs.*|cifs"} > 0
for: 10m
severity: warning
Сообщение алерта: Заканчиваются inodes на {{ $labels.mountpoint }} ({{ $labels.instance }})
Свободно менее 10% inodes на файловой системе. Когда они закончатся, создать новый файл будет нельзя, даже если место на диске есть (ошибка No space left on device при df -h с запасом).
Миллионы мелких файлов: сессии PHP, кэш, очередь почты, временные файлы, каталоги node_modules, старые ядра в /usr/src.
df -i
for d in /var /tmp /home /usr; do echo "$d: $(find $d -xdev 2>/dev/null | wc -l)"; done
find /var -xdev -type d -size +1M 2>/dev/null | head # каталоги с огромным списком файлов
du -x --inodes --max-depth=2 /var 2>/dev/null | sort -n | tail -n 15
Ключ --inodes у du есть в GNU coreutils.
Удалите ненужные мелкие файлы в найденном каталоге (find <каталог> -type f -mtime +7 -delete, предварительно проверив список без -delete), настройте очистку кэша/сессий. Для ext4 число inodes задаётся при создании ФС — изменить его потом нельзя, только пересоздать ФС или перенести данные.
Для файловых систем с динамическим числом inodes (btrfs, xfs), если они дают ложные срабатывания, — исключите их из выражения.
Весь набор из 44 протестированных правил + Alertmanager → Telegram: 790 ₽
Открыть в Telegram · Бесплатный набор Monitoring Lite · Все алерты runbook