Košík je prázdný

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.