Skip to content
Menu
msandor honlapja
  • Bemutatkozás
msandor honlapja

zabbix: scriptek futtatása manuálisan

Posted on 2023.10.22.2023.10.24.

Mire jó ez?

Egy valós példával fogom szemléltetni. Az egyik általam üzemeltetett szerveren időnként elfogy a memória, és elkezd a gép swappolni. Természetesen egy idő után ez is elfogy, amiről értesít a zabbix 🙂

Ilyenkor az a megoldás, hogy bejelentkezek a kérdéses szerverre, megnézem, hogy melyik alkalmazás fogyasztja a legtöbb memóriát, majd újraindítom. Ezen a bizonyos szerveren a php-fpm daemon a ludas.

A belépés macera, sudozni kell, pláne macera, ki kell deríteni, hogy ki a hunyó, mondanom se kell, macera, majd újra kell indítani, végül exit, exit, exit, sok sok macera 😀

Ezt mind elkerülhetjük, és csak 2-3 kattintás a zabbix felületén.

A zabbix agent gyári beállítások szerint zabbix felhasználóval fut (és ez jól van így), viszont egy daemon újraindításhoz root jogok kellenek. Ezért eszközölnünk kell pár módosítást.

1, nyissuk meg az /etc/sudoers fájlt szerkesztésre, legegyszerűbb, ha kiadod a $ sudo visudo parancsot, majd a fájl aljára szúrd be ezt a két sort:

Defaults:zabbix !requiretty
zabbix  ALL=NOPASSWD: ALL

2, nyissuk meg az /etc/zabbix/zabbix_agentd.conf fájlt, és szúrjuk be az alábbi két sort az aljára:

EnableRemoteCommands=1
AllowKey=system.run[*]

Már csak újra kell indítani a zabbix agentet:

$ sudo systemctl restart zabbix-agent

A következő lépés, hozzunk létre egy új scriptet. Kezdjük egy ártalmatlannal, ez jó lesz teszteléshez. Navigáljunk a zabbix weboldalán az Alerts -> Scripts oldalra (régebbi verziókban az Administration -> Scripts alatt volt). Jobb felső sarok: Create scipt.

Adjunk neki egy nevet, pl „whoami [sudo teszt]”. A „Scope” legyen ‘Manual host action”, a „Type” pedig „script”. Az „Execute on”-t állítsuk be „Zabbix agent”-re. A „Commands” legyen ez: „sudo /bin/whoami„. Ennyi már elég is, de azt javaslom, hogy a „Host group”-ot állítsuk be „Selected”-re, és vegyük fel a „Linux servers” csoportot. Egyéb Oprendszereken nem működne. Nálam így néz ki:

Próbáljuk ki!

Menjünk a Monitoring -> Problems oldalra. Válasszunk ki egy Linuxos gépet, kattintsunk a host névre, ott fel fog jönni a korábban felvett „whoami [sudo teszt]” menüpont, kattintsunk rá.

Ha olyan szerveren csináltuk, amit nem készítettünk fel erre, akkor ezt a hibaüzenetet fogjuk kapni:

Ha olyan szerveren csináltuk, amit már felkészítettünk erre, de mégis ezt a hibaüzenetet fogjuk kapni, akkor elfelejtettük kikapcsolni (vagy rendesen beállítani) a selinux-ot:

Ha olyan szerveren csináltuk, amit már felkészítettünk erre, akkor ezt az üzenetet fogjuk kapni:

Működik a teszt script, csináljunk egy igazit!

Menjünk ismét a Scripts oldalra, és hozzunk létre egy újat. Adjunk neki nevet: „Restart php-fpm”, válasszuk ki a „Manual host action” lehetőséget, a típusoknál a scriptet, az „Execute on” maradjon „Zabbix agent”-en. A „Commands” legyen ez: „sudo systemctl restart php-fpm.service„. Itt is érdemes „Linux servers” csoportra szűrni, sőt, én már felhasználóra is szűrnék, ne futtathassa akárki ezt a scriptet (jelenleg érjük be a Zabbix administrators csoport tagjaival, ami jelenleg az Admin felhasználó). Bónusz lehetőség, lehet egy megerősítő ablakot is feldobatni a futtatás előtt (Enable confirmation / Confirmation text).

Mentés után teszteljük le, a korábbi „Problems” oldalon válasszuk ki a hosztunkat, kattintsunk rá, majd a listából válasszuk ki a „Restart php-fpm” lehetőséget.

Csak a jóváhagyás után (Execute) fut le a parancs:

UI: amikor üres az output ablak, az azt jelenti, hogy nem volt hibaüzenet a parancs végrehajtásakor. Ez a tipikus Linuxos működés.

És készen is vagyunk!

Ennek mintájára bármilyen scriptet le lehet futtatni a megfelelő hosztokon.

Még egy javaslat: én szűkítettem a „Linux servers” csoportot, csináltam egy „sudo” nevű csoportot, és azokat a hosztokat tettem bele, akik fel vannak készítve a jelszó nélküli sudo használatára. Magyarul a scriptjeink csak azokon a hosztokon fognak megjelenni, amelyeket van is lehetősége lefutni…

Vélemény, hozzászólás? Válasz megszakítása

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Kategóriák

  • ansible
  • docker
  • e-mail
  • git
  • hardware
  • hibakeresés
  • kubernetes
  • ldap
  • Linux
  • MariaDB
  • OpenWrt
  • Proxmox
  • security
  • SNMP
  • Synology
  • teszt
  • Unifi
  • UPS
  • vagrant
  • Virtualbox
  • zabbix
©2025 msandor honlapja | WordPress Theme by Superb WordPress Themes

Adatkezelési tájékoztató || Hibát talált az oldalon? Írja meg nekem. || Impresszum || Powered by WordPress

Oldalunk cookie-kat ("sütiket") használ. Ezen fájlok információkat szolgáltatnak számunkra a felhasználó oldallátogatási szokásairól a legjobb felhasználói élmény nyújtása érdekében, de nem tárolnak személyes információkat, adatokat. Szolgáltatásaink igénybe vételével Ön beleegyezik a cookie-k használatába. Kérjük, hogy kattintson az Elfogadom gombra, amennyiben böngészni szeretné weboldalunkat.ElfogadomAdatvédelmi irányelvek