Linuxový kernel poskytuje API nazvané inotify pro sledování souborového systému, což umožňuje aplikacím zaregistrovat se pro oznámení o různých typech událostí týkajících se souborů a adresářů. Toto je zásadní pro aplikace, které potřebují reagovat na změny souborů v reálném čase, jako jsou synchronizační služby nebo automatizované nástroje pro nasazování. Nicméně, inotify watchers jsou omezeny systémovými limity, a jejich vyčerpání může vést k selhání aplikací nebo ztrátě výkonu. Tento článek poskytuje podrobný průvodce nastavením monitoringu a upozornění na vyčerpání inotify watchers na systému CentOS 7.
Předpoklady
- Přístup k root uživateli nebo uživateli s sudo právy.
- Základní znalost práce v Linuxovém příkazovém řádku.
Krok 1: Kontrola aktuálních limitů inotify watchers
Než začnete s nastavováním monitoringu, je důležité zjistit aktuální limity inotify watchers na vašem systému. Otevřete terminál a spusťte následující příkaz:
cat /proc/sys/fs/inotify/max_user_watches
Tento příkaz vypíše aktuální limit inotify watchers. Standardní hodnota může být relativně nízká, například 8192, což může být nedostatečné pro některé aplikace.
Krok 2: Zvýšení limitů inotify watchers
Pokud zjistíte, že standardní limit je nedostatečný, můžete ho zvýšit. Editujte soubor /etc/sysctl.conf
a přidejte následující řádek:
fs.inotify.max_user_watches=524288
Po přidání řádku uložte soubor a aplikujte změny pomocí příkazu:
sudo sysctl -p
Krok 3: Instalace a konfigurace nástroje pro monitoring inotify watchers
Jedním z nástrojů, který můžete použít pro monitoring inotify watchers, je inotify-tools
. Nainstalujte jej pomocí YUM:
sudo yum install inotify-tools
Po instalaci můžete pomocí inotifywait
v reálném čase monitorovat události souborového systému.
Krok 4: Nastavení skriptu pro upozornění
Pro automatické upozornění při překročení určitého počtu použitých watchers můžete vytvořit skript, který pravidelně kontroluje jejich počet a odesílá upozornění například prostřednictvím e-mailu nebo systému pro upozornění.
Vytvořte soubor check_inotify.sh
s následujícím obsahem:
#!/bin/bash
CURRENT=$(cat /proc/sys/fs/inotify/max_user_watches)
THRESHOLD=500000
if [ "$CURRENT" -gt "$THRESHOLD" ]; then
echo "Počet inotify watchers překročil limit $THRESHOLD" | mail -s "Varování: Inotify Limit Překročen" Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.
fi
Nezapomeňte nahradit Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.
skutečnou e-mailovou adresou. Udělejte skript spustitelným:
chmod +x check_inotify.sh
Krok 5: Automatizace skriptu pomocí cron
Pro pravidelnou kontrolu použijte cron. Otevřete crontab pro úpravy:
crontab -e
A přidejte řádek pro spuštění skriptu každých 10 minut:
*/10 * * * * /cesta/k/check_inotify.sh
Tímto způsobem bude systém CentOS 7 monitorovat a upozorňovat na vyčerpání inotify watchers, což pomůže předejít problémům s výkonem aplikací způsobených nedostatkem dostupných watchers.