
Bash script a szerverek monitorozásához: Hogyan kezdj neki?
Ha szeretnéd hatékonyan nyomon követni a szerverek állapotát, akkor a bash script írása az egyik legjobb megoldás. A bash egy erőteljes parancsértelmező, amely lehetővé teszi számunkra, hogy automatizáljuk a különböző feladatokat, például a rendszerfigyelést. Ebben a cikkben bemutatom, hogyan készíthetsz egyszerű és hatékony bash scripteket a szerverek monitorozásához, és példákat adok a gyakran használt parancsokkal.
Miért hasznos a bash script a szerverek monitorozásában?
A szerverek folyamatos figyelése elengedhetetlen a rendszerbiztonság és a stabilitás fenntartása érdekében. A bash script segíthet automatizálni az ilyen típusú feladatokat, így ahelyett, hogy manuálisan kellene ellenőriznünk a szerver állapotát, a rendszer automatikusan értesítést küldhet, ha valami problémát észlel. A bash scriptek rendkívül könnyen testreszabhatók, és szinte minden Linux alapú operációs rendszeren működnek.
A legegyszerűbb szerver-monitorozó bash script
Most nézzük meg, hogyan készíthetünk egy alap bash scriptet, amely folyamatosan figyeli a szerver állapotát. Az alábbi script ellenőrzi a rendszer CPU kihasználtságát, a memóriahasználatot és a lemez terheltségét. Ha bármelyik érték túl magas, akkor a script értesíti a rendszergazdát.
#!/bin/bash # CPU használat ellenőrzése cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}') if [ $(echo "$cpu_usage > 80" | bc) -eq 1 ]; then echo "Alto CPU használat: $cpu_usage%" | mail -s "Szerver figyelmeztetés" admin@domain.com fi # Memória használat ellenőrzése memory_usage=$(free | grep Mem | awk '{print $3/$2 * 100.0}') if [ $(echo "$memory_usage > 80" | bc) -eq 1 ]; then echo "Alto memória használat: $memory_usage%" | mail -s "Szerver figyelmeztetés" admin@domain.com fi # Lemez használat ellenőrzése disk_usage=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g') if [ $disk_usage -gt 90 ]; then echo "Alto lemez használat: $disk_usage%" | mail -s "Szerver figyelmeztetés" admin@domain.com fi
A fenti scriptben három fő rendszermutatót ellenőrzünk: CPU használat, memória használat és lemezhasználat. Minden egyes értéket a script figyeli, és ha egy mutató meghaladja a 80%-ot, akkor automatikusan e-mail értesítést küld a rendszergazdának. Az "admin@domain.com" helyett természetesen a saját e-mail címét kell megadni.
Miért fontos a rendszeres figyelés?
A rendszeres monitorozás segíthet gyorsan észrevenni, ha valami nem működik megfelelően. Például, ha a CPU használat 100%-ra emelkedik, akkor a szerver lelassulhat, és a felhasználók számára elérhetetlen lehet. Ha a memória használat túl magas, az memóriahiányhoz vezethet, és a rendszer összeomolhat. A lemez túlterheltsége pedig adatvesztést és rendszerösszeomlást okozhat. A folyamatos figyelés segíthet abban, hogy még a probléma előtt közbeavatkozhassunk.
Szűrők és paraméterek használata a bash scriptben
A bash script írásakor rengeteg különböző szűrőt és paramétert használhatunk a pontosabb ellenőrzések érdekében. Nézzük meg például, hogyan szűrhetjük le azokat az információkat, amelyek a leginkább relevánsak számunkra. Az alábbi példában egy másik egyszerű scriptet mutatok, amely csak azokat a folyamatokat listázza, amelyek a legnagyobb CPU erőforrást fogyasztják.
#!/bin/bash # Legnagyobb CPU használatú folyamatok listázása ps aux --sort=-%cpu | head -n 10
Ez a parancs az összes futó folyamatot listázza, és a CPU használat szerint csökkenő sorrendbe rendezi őket. Az első 10 folyamatot jeleníti meg. Ez segíthet gyorsan azonosítani azokat a folyamatokat, amelyek nagy terhelést jelentenek a rendszer számára.
Automatikus értesítések beállítása
Ha szeretnéd, hogy a bash script automatikusan értesítéseket küldjön egy másik eszközhöz (például Slack, Discord vagy SMS), akkor egyszerűen hozzáadhatsz egy API hívást, amely integrálja a kívánt értesítési rendszert. Az alábbi példa egy egyszerű webhook hívás, amely Slack üzenetet küld, ha a CPU használat túl magas:
#!/bin/bash # CPU használat ellenőrzése cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}') if [ $(echo "$cpu_usage > 80" | bc) -eq 1 ]; then curl -X POST -H 'Content-type: application/json' --data '{"text":"Alto CPU használat: '"$cpu_usage"'%"}' https://hooks.slack.com/services/XXX/XXX/XXX fi
Itt a script egy HTTP POST kérést küld a Slack webhook URL-jére, ha a CPU használat meghaladja a 80%-ot. Természetesen más szolgáltatások, mint a Discord vagy az SMS küldés is könnyedén integrálhatóak.
Összegzés
A bash script írása a szerverek monitorozásához rendkívül hasznos eszköz lehet a rendszergazdák számára. Az egyszerűsített feladatok automatizálása lehetővé teszi, hogy hatékonyabban figyeljük a szerver állapotát, és gyorsabban reagáljunk a problémákra. Az ilyen típusú scriptek különösen akkor hasznosak, ha több szerverrel dolgozunk, és nem szeretnénk minden egyes rendszer mérőszámát manuálisan ellenőrizni. Reméljük, hogy a fenti példák segítenek abban, hogy elindulj a bash scriptek világában, és létrehozd a saját szerver monitorozó eszközeidet!
Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!