2018. február 9., péntek

Zabbix 3 telepítése Debian 9 Stretch-re

Bár a poszt írásakor már van Zabbix 3.4 is, itt mégis a 3.0-ás Zabbixot telepítjük, mert az van a Debian 9-ben.

A Zabbix egy monitorozó-riasztó-esetkövető-vizualizáló-kitudjamégmimindenttudó rendszer, amely alapvetően három részből áll:
  • Zabbix szerver, ami az adatokat gyűjti, és MySQL-be MariaDB-be vagy PostgreSQL-be rögzíti
  • Zabbix kilens, amely vagy fut a megfigyelt gépen (ha bonyolultabbat is tudni akarunk róla), vagy nem (ha például csak az érdekel, hogy eléhető-e)
  • Zabbix PHP-frontend, ami tulajdonképp a GUI a szerverhez
Ezek közül telepítsük az elsőt meg az utolsót a szerverünkre:
apt install zabbix-frontend-php zabbix-server-mysql


A szerver telepítése



Találd ki, melyik adatbázis-szervert fogom használni:)

A telepítéskor jön vele egy kamion egyéb cucc, de épp ezt akarjuk. A csomagkarbantartó kicsit benézte ugyan, mert a rakat dependencia között, mysql ide vagy oda, a php-nek a postgresgql-kiegészítése települ, na de milyen szerencse ez, mert így legalább tudjuk, hogy mire való a rendszergazda...:( Egyelőre nem hozzuk rendbe a hibát, hanem majd akkor, ha látványosabb lesz.

Addig is rendbe rakjuk a MySQL MariaDB installációnkat:
mysql_secure_installation

Adjunk jelszót a MySQL MariaDB root-nak (Enter current password for root - igen, hülyén van írva, mert nem kurrent, hanem new), ezt már nem változtatjuk meg (Change the root password? [Y/n] - n),
aztán nyomkodjuk az Entert, elfogadva a default-okat.

Aztán megnézzük, hogy mit is ír a hogyishívják (ez egy jó szokás, szokjad csak, ha Debian-guru leszel, de ne fogadd el a benne írtakat kritikátlanul, lásd később):
cat /usr/share/doc/zabbix-server-mysql/README.Debian

Hajtsuk végre a benne lévő két mysql-parancsot (használnunk kell az előbb megadott root-jelszót):
mysql -p -e "create database zabbix character set utf8"
és
mysql -p -e "grant all on zabbix.* to 'zabbix'@'localhost' identified by 'JELSZO'"

Ugye világos, hogy a második parancs egyúttal létre is hoz egy MySQL MariaDB-felhasználót?

Aztán jön a harmadik parancs:
zcat /usr/share/zabbix-server-mysql/{schema,images,data}.sql.gz \
   | mysql -uzabbix -pJELSZO zabbix

Egy kicsit szöszöl, most ugyebár létrejönnek a szükséges bejegyzések az első mysql-paranccsal létrehozott adatbázisban.

És ezzel a szerver nagyjából kész, persze... Ja nem. Okos ember gyanítja, hogy legalábbis egy démon-újraindítás jár ennyi kavarás után, úgyhogy:
systemctl restart zabbix-server.service

És ezt követően:
systemctl status zabbix-server.service

Azt állítja, hogy active (running), amivel végső soron nem hazudik, de hogy politikus van a felmenők között, az ziher. Lásd:
cat /var/log/zabbix-server/zabbix_server.log

És ott van, ott, hogy a fene enné meg! Nem tud kapcsolódni, mert akszesz dinájd, le vannak tagadva a fejszék. Na ja, ki a fene mondta el a mysql-utasítások lényegét a Zabbix-nak? He?

Úgyhogy szerkesszük mán a /etc/zabbix/zabbix_server.conf fájlt. A DBName és a DBUser elvileg jó, de a DBPassword tutira nem. Hozzuk rendbe, indítsuk újra a zabbix-server démont, lásd fentebb.

Ha most is megnézzük a logot, azt látjuk, hogy javult a helyzet, de van némi hibaüzenet, mert nem érti az SNMP világát a Zabbix. Nem azért, mert korlátolt, hanem mert nincs fenn egy csomag. Tegyük fel:
apt-get install snmp

Még egy újraindítás, és végre oké(nak tűnik) minden. Egyébiránt erről a hibáról (is) nehezen értesülsz, ha nem nézel logot. Szokd meg, hogy nézel logot, amikor új dolgot telepítesz vagy csinálsz.


És akkor a frontend


Megint művelődünk:
cat /usr/share/doc/zabbix-frontend-php/README.Debian|less

Kritikusan állunk a dologhoz. Az említett csomag (libapache2-mod-php) ugyan nincs fenn, de azért, mert az csak egy kompatibilitási csomag, és az épp default php-hez valóra dependál. Itt épp arra  php7-es verzióhoz való libapache2-mod-php7.0-ra, amit a Zabbix telepítés felhúzott.
dpkg -l|grep libapache2

Na ugyi!

Ez viszont egy tetszetős parancs:
a2enconf zabbix-frontend-php
Ha kiadjuk, az Apache2 tudni fogja, hogy mi a csízió.

Nyissuk meg a Zabbix frontendet egy böngészőben a http://IPCÍM/zabbix. Nem megy. Most kell a
apt-get install php-mysql
csomagtelepítés, amit az elején a látványosság mián elhalasztottunk.

És most már megy a weboldal! Olé! Sír is a szája, hogyaszondja: Time zone for PHP is not set (configuration parameter "date.timezone"). Erről ugyan volt szó az előző README.Debian-fájlban, de ne az ott leírtak alapján induljunk, hanem nyissuk meg a
/etc/apache2/conf-available/zabbix-frontend-php.conf fájlt, és ott a php7-részen vegyük ki a kettőskeresztet a timezone rész elől, Riga helyett meg adjunk meg Budapestet. Egy finom kis
systemctl reload apache2.service
után a webes frontend panasza megszűnik.

Az ugye világos, hogy a README.Debian fájl módszerével az időzónát az egész PHP-ben állítjuk, így meg csak a Zabbix-részben? Így ha más alkalmazást is telepítenénk, akkor annak adhatunk másik időzónát.

Szóval a frontendben nyomogassuk, hogy Next, aztán áruljuk el a MySQL MariaDB jelszót, tudod, amit a szervernek már elmondunk a zabbix_server.conf szerkesztésével. Nevezzük el a Zabbix-szervert, és előbb-utóbb az fogad bennünket, hogy: Cannot create the configuration file.
Hogyafene. Ha letöltjük és a helyére tesszük a fájlt, akkor meg "Unable to overwrite existing configuration file", de ez hülyeség, a rendszerünk már ok, csak a telepítő béna, lásd itt. Ha az URL-ből kitöröljük a setup.php részt, akkor enged bejelentkezni. Jó de hogyan? Elolvastad az előző README.Debian-t? Ha igen, akkor tudod a választ, ha nem, akkor meg meg fogod tudni:)

És majdnem elfelejtettem, pedig úgy koncentráltam, hogy nehogy: ha most rebootolod a szervert, és újra ránézel a Zabbix főoldalára, meglepve látod, hogy
Zabbix server is running: No

Mer? Mer mijér? Azért, mert alapból nincs beállítva, hogy a Systemd elindítsa. Nem tudom miért, meg nem is érdekes, kell neki egy
systemctl enable zabbix-server.service

Ettől még nem megy a Zabbix-szerver, de ha legközelebb rebootolsz, akkor már fog. Most meg lehet neki egy systemctl start, és akkor menni fog, de ezt nem is írom ki külön sorba, hogy könnyű legyen kimásolnod, mert úgy is elég profi vagy hozzá, hogy teszteld a dolgot, a dolog természetéből adódóan egy reboot-tal.

Akkor van frontendünk, jöhet két-három alap-konfiguráció:

Pár további beállítás


Kapcsoljuk be saját magunk figyelését: Configuration/Hosts, kattintunk a szerverünk nevére és ott legalul pipa az Enabled mellé, majd Update. A főoldalra visszatérve látjuk, hogy a szerverünk hibátlanul megy.

Figyeltessünk vele egy weboldalt: Configuration/Hosts, válasszuk ki a szerverünket, majd a megjelenő menü jobb széléről a Web scenarios-részt. Jobbra fenn Create Web Scenario, adjunk neki valami nevet, az Agent részen kiválaszthatjuk, hogy kinek hazudja magát a Zabbix. Figyeljünk, hogy az Enabled mellett legyen pipa, és Update. Sír a szája, hogy lépés (Step) kell neki, úgyhogy a Steps részen Add, de nem a gomb, hanem az aláhúzott. A név lehet bármi, az URL-t érted, a Timeout valójában lehet kisebb. Add (gomb), így látjuk, hogy a művünk bekerült a Steps listába. Itt megint Add (gomb). Ezzel létrejön a Web scenario.

Ha visszamegyünk a főoldalra, akkor sírás van: Zabbix agent on Zabbix server is unreachable for 5 minutes. Emlékszel még az elejére ennek a posztnak? Ki is végezné el a weboldal figyelését? Ugye a Zabbix-frontend csak felület, a Zabbix-szerver adatokat gyűjt, akkor kizárásos alapon a Zabbix-agent. Az meg nincs fenn, és mostanra ez baj. Úgyhogy:
apt-get install zabbix-agent

Semmi más dolgunk, pár percen belül eltűnik a weboldalról a sírás. Ha most a Monitoring/Web-re megyünk, kiválasztjuk a létrehozott vizsgálatunkat, akkor szép grafikonon látszik, hogy mi a helyzet.

És végül egy ping-alapú él-e-a-host ellenőrzés, de itt átadom a szót Kibaszott IT nevű brazil kollégámnak, aki remek videót készített róla: pont az van benne, ami kell.

Jóéjt.

Nincsenek megjegyzések: