Miért volna erre szükségünk, ha van zabbix agent?
- mert nincs minden operációs rendszerre zabbix agent
- mert lehetséges, hogy a céges szabályzat nem engedi a telepítését
- mert lehetséges, hogy az OS gyártója nem szeretné, ha te bármit is telepítenél
Mi kell az agent mentes monitorozáshoz?
- fusson egy ssh szerver a monitorozott hoston
- legyen hozzá felhasználód és jelszavad
- még jobb, ha fel tudod rá másolni a publikus kulcsodat
Mit tudunk monitorozni?
Bármit, amit meg tudsz fogalmazni egy parancsban.
Kezdjük az elején, készítsünk ssh kulcsot (ha még nem lenne), és másoljuk fel a monitorozandó hostra.
A zabbix szerverünkön adjuk ki ezt a parancsot:
[root@zbxsrv ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:eBxGK+yIHTxgmDWyacPmK0D59KQWLL2dwjRYeV9XZgo root@zbxsrv
The key's randomart image is:
+---[RSA 3072]----+
|.+=.. .E .+ |
|+=*= o . o..+ |
|oX B=.+ = .. |
|= BoO=.* . |
|...Bo+o S |
|. o . . |
|.. |
|. |
| |
+----[SHA256]-----+
Ahogy a képernyőn is látszik, létrejött a /root/.ssh mappában két fájl, a privát kulcs (id_rsa), és a publikus kulcs (id_rsa.pub). A publikus kulcsot kell átmásolnunk a monitorozandó hostra. Normál esetben így a legegyszerűbb:
[root@zbxsrv ~]# ssh-copy-id msandor@192.168.5.250
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.5.250 (192.168.5.250)' can't be established.
ED25519 key fingerprint is SHA256:xvnYsTlJabP+xdqs/kutaiUwvARQIUelsDm/JgiAa4k.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
(msandor@192.168.5.250) Password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'msandor@192.168.5.250'"
and check to make sure that only the key(s) you wanted were added.
A példában ‘msandor’ a felhasználóm neve, és ‘192.168.5.250’ a szerver IP címe. Próbáljuk ki, hogy be tudunk-e lépni vele:
[root@zbxsrv ~]# ssh msandor@192.168.5.250
Last login: Wed Oct 18 15:34:32 2023 from 192.168.5.254
************ Welcome to NethServer ************
This is a NethServer installation.
Before editing configuration files, be aware
of the automatic events and templates system.
http://docs.nethserver.org
Üdvözöllek msandor szerverén!
***********************************************
[msandor@nas ~]$
Másoljuk át a kulcsfájlokat a zabbix erre a célra fenntartott mappájába. Ha natív telepítésű zabbixod van, akkor ez a /var/lib/zabbix/ssh_keys
mappa lesz. Ám mi konténerben futtatjuk 🙂
Ebben az esetben csináljunk egy mappát, másoljuk bele a kulcsokat, majd adjuk a zabbix user tulajdonába:
[root@zbxsrv ~]# cd /home/vagrant/docker/zabbix-server/
[root@zbxsrv zabbix-server]# mkdir ssh_keys
[root@zbxsrv zabbix-server]# cp /root/.ssh/id_rsa* /home/vagrant/docker/zabbix-server/ssh_keys/
[root@zbxsrv zabbix-server]# chown 1997 ssh_keys/id_rsa
Fel kell mountolni a konténernek az ssh_keys mappát, adjuk hozzá a docker-compose.yml fájlhoz az új sort (- ./ssh_keys:/var/lib/zabbix/ssh_keys):
Indítsuk újra a zabbix szerver konténert:
# docker compose -f docker-compose.yml up -d
Most, hogy sikerült a kulcsos belépés, és a zabbix szerver is megkapta a kulcsokat, vegyük elő a zabbixunkat (akik nem követték a korábbi zabbixos cikkeket, azoknak javaslom, hogy pótolják be, ha valamit nem értenek, ott elolvashatják).
Navigáljunk a Data collection -> Hosts oldalra (ha a korábban létrehozott zabbix labort használod, akkor használhatod a linkemet, vagy használd a saját zabbix szervered IP címét).
Adjuk hozzá a monitorozandó hostot, kattintsunk a jobb felső sarokban található ‘Create host’ gombra.
Adjunk nevet a gépnek, tegyük bele legalább egy csoportba (ezek kötelező mezők), majd adjunk hozzá egy interface-t, oda írjuk be az IP címet:
Kattintsunk a ‘Macros’ linkre, és vegyük fel a felhasználó nevünket:
Most már elmenthetjük, kattintsunk az ‘Add’ gombra. Vegyük fel az első itemünket, mondjuk kérdezzük le az operációs rendszer verzióját.
Kattintsunk a ‘nas’ sorában az ‘Items’ linkre, és a megnyíló lapon jobb felül a ‘Create item’ linkre:
Adjunk nevet a gyereknek, (OS version), állítsuk át a Type-ot SSH agent-re, adjunk meg egy egyedi kulcsot (ssh.run[‘OS version’]), a Type of information-t állítsuk be Character-re, az Authentication method-ot állítsuk be Public key-re, adjuk meg a makróban megadott változót, a kulcsokat, adjuk meg a scriptet (grep -oP ‘PRETTY_NAME=”\K[^”]+’ /etc/os-release), állítsuk be az Update interval-t, egyszerűbb, ha megmutatom:
Ellenőrizzük, hogy mindent jól csináltunk-e, kattintsunk a létrejött ‘OS version’ nevű itemre, majd a lap alján a Test gombra. A megnyíló kis ablakban pedig a ‘Get value and test’ gombra. Ha valami nem kerek, a hibaüzenetből próbáljuk kitalálni, feltehetően valamelyik lépést kihagytad. Akik végig csinálták a leckét, azoknak jó lesz, azaz a visszakapott érték megjelenik a test ablakban:
Ugye nem is volt olyan nehéz?
Vegyünk fel még egy itemet, mondjuk kérdezzük le gyökér partíció szabad méretét százalékosan.
A leggyorsabb módja, ha megnyitjuk a korábbi itemünket (OS version), és alul a ‘Clone’ gombra kattintunk. Csak az alábbi mezőket kell módosítanunk: Name, Key, Executed script, Update interval. Majd az alsó ‘Add’ gombbal elmentjük. Ezt is érdemes tesztelni.
Mi van, ha nem lehet kulcsot másolni a monitorozott hostra?
Semmi gond, vegyünk fel egy új makrót ({$SSH.PASSWORD}), és az itemnél állítsuk át a kulcsos belépést jelszavasra.
Egyéb lehetőség?
Nem a legszebb módszer, bár kétség kívül működik, hogy egyesével vesszük fel az itemeket. Amint egynél több hoszton is ugyanazokat szeretnénk lekérdezni, rá fogunk jönni, hogy felesleges köröket futunk. A megoldás a template-k használata. Akkor csak egyszer kell rögzítenünk az itemeket, és csak hozzá kell adni a kérdéses hosthoz az új templatet. Erről később írok egy cikket.