Szerver monitorozó programunk Zabbix Szerver monitorozó programunk
Alapok Korábban is a Zabbix előző verzióit használtuk szervereink monitorozására, ám a legfrissebb 1.8.10-es verzió nem volt elérhető a debian csomaglistában, így az új zabbix szerver telepítése nem a hagyományos csomagkezelőkön keresztül zajlott.
Alapok 2 Milyen előnyei vannak az új verziónak: Fejlettebb jogosultság kezelési rendszer Fejlettebb item és trigger kezelési rendszer Újabb template kezelés API külső programokhoz (pl android alkalmazások) Riasztások finomhangolása (pl. delay) Megújult PHP frontend (nem biztos hogy átláthatóbb)
Telepítés - függőségek Apache 2 PHP5 (smtp, mysql, gd2 modulok stb..) MySQL (esetleg Postgre SQL, Orace, IBM DB2 stb.)
Telepítés 2 – telepítési lépések Adatbázis létrehozás, és felhasználó létrehozás Táblaszerkezet importálása (create/shema/mysql.sql) Adatok importálása (create/data/images_mysql.sql)
Telepítés 3 – fordítás Szerver fordítás: ./configure --enable-server --with-mysql --with-libcurl make install Kliens fordítás ./configure --enable-agent make install
Telepítés 4 - indítás Mivel a kész programot nem lehet a hagyományos módon indítani, mert a telepítés során a sem a zabbix szervernek sem a kliensnek nem készül indító állománya ezt saját kezűleg kellett megírni
Telepítés 5 – Szerver indító script (/etc/init.d/zabbix-server) #! /bin/sh # # Zabbix daemon start/stop script. # Written by Alexei Vladishev <alexei.vladishev@zabbix.com>. NAME=zabbix_server DAEMON=/usr/local/sbin/${NAME} DESC="Zabbix server daemon" PID=/var/run/zabbix-server/$NAME.pid test -f $DAEMON || exit 0 case "$1" in start) echo "Starting $DESC: $NAME" start-stop-daemon --oknodo --start --pidfile $PID \ --exec $DAEMON ;; stop) echo "Stopping $DESC: $NAME" start-stop-daemon --oknodo --stop --pidfile $PID \ restart|force-reload) $0 stop $0 start *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 esac exit 0
Telepítés 6 – indítási hibák Az indító script megírásával még nem indult el sem a szerver sem a kliens. Mindkettő futásához szükséges pid fájlhoz szükséges helyet el kellett készíteni és a jogosultságokat be kellett állítani, ezek a következők lettek: /var/run/zabbix-agent /var/run/zabbix-server
Telepítés 7 – konfigurációs fájlok (zabbix-server.conf) LogFile, DebugLevel PidFile DBHost, DBName, DBSchema, DBUser, DBPassword HousekeepingFrequency, Timeout, UnreachablePeriod, UnavaibleDelay, UnreachableDelay AlertScriptsPath ExternalScriptsPath LogSlowQueries
Telepítés 8 – konfigurációs fájlok (zabbix-agentd.conf) PidFile LogFile (elhagyható) Server (zabbix-agent.conf fájlban is be kell állítani) Hostname
Hostok Hostok alatt a megfigyelt szervereket értjük. Rendszerünkben két nagy csoportra oszthatóak, a belső hálózati IP címmel rendelkezőek (pl, Titan, Foxtrot) és a belső címmel nem rendelkező szerverekre (Xenon, Pegazusok). A gépeket IP cím alapján vizsgáljuk A könnyebb azonosíthatóság kedvéért pedig el is nevezzük a zabbix szerveren őket (a valódi szerver nevük alapján).
Hostok 2
Templatek A rendszerben nagyon jól használható template kezelő rendszer van. Egy hosthoz több template is rendelhető, így pl. rendelhetünk egy szerverhez egy általános linux és egy webserver templatet is.
Template 2 A használt és használt templateink: Template_Linux (általános linux) WS_Templates_WS_Commmons (minden WS szerverre süksége) WS_Template_DNS_Servers WS_Template_Mailblacklists (Blacklist figyelő) WS_Template_Mailtests (Email szervereket figyelő) WS_Template_Webservers (Webserverekre szükséges)
Template 3 – csatolt templatek
Template 4 - Templates
Items Az itemek azok a tulajdonságok amiket a hostokon vizsgálunk (pl. szabad hely, terhelés) A hostoknak a következő fontos paraméteri vannak: Description (név) Key (amit vizsgálunk pl.: proc.num[xenconsoled], vagy exim4fut) Data type (milyen értékeket várunk eredményül) Update interval (milyen sűrűséggel ellenőrizzük) Status (éppen aktív-e, figyeljük-e)
Items – 2
Tiggers Az itemekhez megfelelő riasztásokat tudunk készíteni, (pl. nem fut valamilyen szolgáltatás) Ezeket a riasztásokat priorizálni is tudjuk, 6 különböző prioritást tudunk beállítani (Disaster, High, Average, Warning, Information, Not classified).
Triggers 2 - beállítás Az alábbi beállításokat kell megadnunk: Name (trigger neve) Expression (az item értéke és a riasztás állapotának határértéke pl load > 10) Event generation: normal, vagy ismételt (Multiple Problem Events) Serverity (prioritás)
Triggers 3
Media Types Különböző kommunikációs forrásokat lehet megadni, hogy a regisztrált felhasználókat hogyan értesítse a bekövetkezett eseményekről (pl email). Ehhez két saját médiát adtam hozzá, a ws_mail-t ami egy hagyományos php alapú email küldő, és egy ws_sms-t ami a webserver sms rendszeren keresztül küld SMS értesítést a B.O. tagjainak. Ez akorábban látott server konfigban megadott AlertScriptben meagdott mappába kellett helyezni.
Media Types 2
Actions Itt adható meg, hogy az adott prioritású riasztásra, milyen esemény hajtódjon végre. Itt adható meg az üzenet szövege és a kézbesítés módja is, szóval itt tudjuk a triggereket a összekapcsolni a csatolt médiákkal.
Actions 2
Actions 3
Users és User Groups A zabbix jogosultági rendszerében tudunk felhasználókat és csoportokat is kezelni. Egy felhasználó több csoport tagja is lehet. Az alapértelmezett csoportokon kívül még létrehozam egy Web-Server.HU admins csoportot, és hozzáadtam a BO tagjait. A guest felhasználónak pedig olvasási jogot adtam a Web-Server.hu szerverekre, hogy az Admiban és az Errorhandlerben nyomon lehessen követni a szerverek állapotának alakulását.
Users és User Groups 2
Users és User Groups 3 A felhasználói alapadatokon (név, felhasználói név) és jelszón kívül megadhatóak még a következők. Ki melyik csoport tagja Nyelv, téma (frontend), sorok sázma egy oldalon, frissítés ide. Média típusok. Ezen belül pedig: értesítés fajtája, célja (pl.: email cím), milyen triggerekről jönnöm az értesítés és mikor.
Users és User Groups 4
Kérdések?
Köszönöm a figyelmet!