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

MySQL/MariaDB szerver monitorozása Zabbixszal

Posted on 2025.01.22.2025.01.24.

Ha több adatra van szükséged attól, hogy fut vagy nem fut az adatbázis szervered, akkor ez a leírás neked szól.

Kétféle templét is van a zabbix 7.0-ban: a sima (MySQL by Zabbix agent) és a (MySQL by Zabbix agent 2), ami a v2-es agenthez való. A végeredmény szempontjából mindegy, hogy melyiket használod, praktikusan azt válaszd, amilyen agented fut az adatbázis szerveren. Ha nem lenne a rendszereden, innen tudod letölteni a kívánt verziót.

Ám a beállítás szempontjából nem mindegy, hogy melyik agentet választod:

  • v1 agent esetén az adatbázis szerveren fel kell venni egy felhasználót a [client] alá, hogy localhostról jelszó nélkül tudjunk csatlakozni (ez újraindítást igényel)
  • v2 agent esetén makrókkal állítjuk be az accountot, így bárhonnan tudjuk monitorozni a szervert

A közös a két módszerben, hogy létre kell hoznunk egy dedikált felhasználót a szükséges minimum jogokkal az adatbázis szerveren.

Kezdjük a közös dologgal, hozzunk létre egy adatbázis felhasználót

Parancssorból vagy a kedvenc programoddal hozz létre egy ‘zbx_monitor’ nevű felhasználót az adatbázisodon. Ezekkel a globális (zbx_monitor’@’%) jogokkal kell rendelkeznie:

  • REPLICATION CLIENT
  • PROCESS
  • SHOW DATABASES
  • SHOW VIEW

Példa a parancssoros létrehozásra:

CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';
GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';

Lássuk a MySQL by Zabbix agent templét beállítását

  1. lépés: lépj be arra a szerverre, ahol a DB fut, és hozz létre egy fájlt a /etc/zabbix/zabbix_agentd.d/ mappába. A név tetszőleges, a kiterjesztése .conf legyen. A tartalma ez legyen:
UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT COALESCE(SUM(DATA_LENGTH + INDEX_LENGTH),0) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"

2. lépés: indítsd újra a zabbix-agentet.

3. lépés: hozz létre egy fájlt az adatbázis szervered konfig mappájába, pl a /etc/my.cnf.d/zabbix.conf névvel (ellenőrizd a saját rendszered, eltérhet a mappa elérési útja):

[client]
protocol=tcp
user='zbx_monitor'
password='<password>'

Indítsd újra az adatbázis szervert.

4. lépés: vegyük fel a hosztot a zabbixban:

A csoport neve tetszőleges, ahogy a hoszt neve is, a templét adott, az IP cím (vagy a hoszt név) pedig azé a szerveré legyen, ahol az adatbázis fut.

Lássuk a MySQL by Zabbix agent 2 templét beállítását

  1. lépés: vegyünk fel egy új hosztot a zabbixban:

A csoport neve tetszőleges, ahogy a hoszt neve is, a templét adott, az IP cím (vagy a hoszt név) pedig bármelyik géped lehet, amelyiken a zabbix agent v2 fut. Annyi a kikötés, hogy az agent2 lássa az adatbázis szervert. Mentés előtt vegyük fel a szükséges makrókat:

Ide kellenek annak a felhasználónak az adatai, akit első lépésben hozzáadtunk az adatbázishoz, a példában ‘zbx_monitor’ néven. A {$MYSQL.DSN} pedig magának az adatbázisnak az elérhetőségét tartalmazza protokoll://hoszt:port formában, az én esetemben tcp://192.168.5.2:3306. Opcionálisan kizárhatunk adatbázist a figyelésből a {$MYSQL.DBNAME.NOT_MATCHES} makróval, ennek van default értéke: ‘information_schema’, ám van egy másik virtuális adatbázis is ‘performance_schema’ néven, szerintem ezt is felesleges figyelni, így ha csak a ‘_schema’ értéket írom a makróhoz, mind a kettőt kizártuk.

A jelszónál használhatsz típust is a normál szöveges mező helyett, ebben az esetben a jelszót (vagy bármilyen érzékeny adatot) senki sem tudja elolvasni, csak módosítani lehet. Ez akkor hasznos, ha többen adminisztráljátok a zabbixot.

Bármelyik agentet és a hozzá passzoló templétet választod, kapni fogsz kb 52 adatot az adatbázisod belső működéséről, illetve minden adatbázisról 1-1 adatot, a méretét. A templéthez tartozik dashboard is, ahol a legfontosabb paraméterekről kapunk grafikonokat:

Összefoglalás

Szerintem lényegesen egyszerűbb a v2 agentet használni erre a feladatra, mivel nem kell fájlokat módosítani (se a zabbixon, se az adatbázis szerveren), és semmit sem kell újraindítani. Ráadásul ha minden agented v1-es, elég egy gépre feltenni egy v2 agentet, akár dockerben is, csak érje el hálózaton az adatbázis portját.

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