MC, 2025
Ilustracja do artykułu: Bash script a szerverek monitorozásához: Hogyan kezdj neki?

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!

Imię:
Treść: