Zabbix: Porovnání verzí
(→GPS) |
(→GPS) |
||
Řádka 125: | Řádka 125: | ||
Vytvoříme konfiguraci pro Zabbix agenta | Vytvoříme konfiguraci pro Zabbix agenta | ||
− | sudo | + | sudo nano /etc/zabbix/zabbix_agent2.d/gpsd_status.conf |
− | + | ||
− | + | # GPSD status' > /etc/zabbix/zabbix_agent2.d/gpsd_status.conf | |
− | + | UserParameter=gpsd.info[*],/etc/zabbix/scripts/gpsd_status.py -d "$1" -k "$2" | |
+ | #UserParameter=gpsd.discover,/etc/zabbix/scripts/gpsd_status.py -l -d /dev -s | ||
+ | UserParameter=gpsd.discover,echo $(/etc/zabbix/scripts/gpsd_status.py -l -d /dev -s) | ||
Doinstalujeme Zabix sender a restartneme agenta | Doinstalujeme Zabix sender a restartneme agenta | ||
Řádka 138: | Řádka 140: | ||
* <Host> - hostname gpsd serveru | * <Host> - hostname gpsd serveru | ||
* <Zabbix Server> - adresa Zabbix serveru | * <Zabbix Server> - adresa Zabbix serveru | ||
− | sudo | + | sudo nano /etc/cron.d/gpsd_status |
− | + | ||
+ | # Update GPSd satellite data every 15m | ||
+ | */15 * * * * root /etc/zabbix/scripts/gpsd_status.py -d <device> -s | zabbix_sender -s <Host> -z <Zabbix Server> -i - | ||
=== Dalsi === | === Dalsi === |
Verze z 30. 10. 2023, 08:49
Obsah
Rozdělení
- Server, Frontend, Agent - Vlastni server
- Proxy - pro propojení mezi různými sítěmi, nebo pro lokalní chace
- Agent - původní agent psany v #C
- Agent 2 - nový agent v Go
- Jawa Gateway - gw pro monitoring jawa aplikaci
- Web Service - generuje reporty
Zabbix server
Instalace úvod
Pro Zabbix server je potřeba webserver, ten osobně preferuji Apache. Dále je potřeba databáze. Podporovaná je DBMaria a PostgreSQL. Obecně se doporučuje PostgreSQL. Je na něj lépe optimalizovaná a umí sní komprimaci dat.
Instalace Apache
Prvně nainstalujeme Apache a pomocne programy
apt update apt upgrade -y apt install sudo apache2 php
Aby se Zabbix otevřel po připojeni na server, tak si nastavime rovnou přesměrováni.
nano /var/www/html/index.html !DOCTYPE html> <html> <head> <meta http-equiv="refresh" content="0; url='/zabbix'" /> </head> </html>
Pokud chceme, nastavíme si přes sudo root práva.
nano /etc/sudoers.d/"uzivatel" # Komplet prava "uzivatel" ALL=(ALL:ALL) NOPASSWD: ALL
Instalace PostgreSQL
Poté podle postupu na webu nainstalujeme PostgreSQL - https://docs.timescale.com/self-hosted/latest/install/installation-linux . K tomuto postupu je i odkaz přímo na stránkach Zabixe -https://www.zabbix.com/documentation/current/en/manual/appendix/install/timescaledb
Instalace Zabbix serveru
Postup je pěkně zpracovaný přímo na stránkách Zabixu. Proto doporučuji postupovat dle jejich návodu.
Zabbix klient
Instalace Zabbix agenta
Pro instalaci agenta využijeme návod přímo na stránkách Zabbixu.
Nastaveni agenta
V konfiguračním souboru je potřeba nastavit adresy Zabbix serveru.Tím je zabezpečeno, že agent odpovídá, nebo posílá data jen pro definovanou IP adresu. Také je dobré nastavit jméno klienta, kdy použijeme přímo jméno z hostname.
nano /etc/zabbix/zabbix_agent2.conf
... Server=10.129.66.111 .... ServerActive=10.129.66.111 .... #Hostname=Zabbix server Hostname=system.hostname ....
Pokud některá šablona potřebuje spouštět externí utilitu, zejména přes `system.run`, je potřeba ji také povolit. K tomu slouží pár klíčů `AllowKey` a `DenyKey`.
.... AllowKey=system.run[*] ....
V případě, když chceme přidat vlastni sondy pro čtení, povolíme uživatelské funkce a nasledně je vytvoříme.
.... UnsafeUserParameters=1 UserParameter=cluster1.cpuTemperature,sensors | grep temp| awk -F'[:+°]' '{avg+=$3}END{print avg/NR}' ....
V uvedeném případě je název sondy pro Zabbix `cluster1.cpuTemperature` a za čárkou pak nasleduje vlastní příkaz.
Rozšíření
Ne všechny hodnoty jdou načíst přímo agentem. Je nutné pro některé věci přidat
Raspberi PI
Na straně Rasberri doinstalujeme pomocný skript:
wget https://raw.githubusercontent.com/bobbolous/zabbix-agent-on-RasPi/master/raspberrypi.sh chmod 755 raspberrypi.sh sed -i 's/\/opt\/vc\/bin\/vcgencmd/\/bin\/vcgencmd/g' raspberrypi.sh sudo mkdir -p /etc/zabbix/scripts sudo mv raspberrypi.sh /etc/zabbix/scripts/ sudo usermod -aG video zabbix
Přidáme konfiguraci Zabbixu:
sudo nano /etc/zabbix/zabbix_agent2.d/raspberrypi.conf # Nastav uzivatelsky skript pro cteni dat z RaspbeeriPI UnsafeUserParameters=1 UserParameter=raspberrypi.sh[*],/etc/zabbix/scripts/raspberrypi.sh $1
a klienta restartujeme:
sudo systemctl restart zabbix-agent2.service
Na straně Zabbix serveru importujeme šablony `Template-Raspberry-Pi.xml`,
Odkazy:
- https://github.com/bobbolous/zabbix-agent-on-RasPi/tree/master
- https://pimylifeup.com/raspberry-pi-low-voltage-warning/
- https://elinux.org/RPI_vcgencmd_usage
NTP
Zhromažďyje a kontroluje data z NTP serveru. Nezáleží o jaký řád vlastního NTP serveru jde, využívá výpisu stavu pomocí ntpq -p.
Na Zabbix agentovi musíme povolit spouštění utility ntpq.
sudo nano /etc/zabbix/zabbix_agent2.d/ntpq.conf # Allow ntpd for template NTP AllowKey=system.run[ntpq -*]
sudo systemctl restart zabbix-agent2.service
Poté na strane Zabbix serveru nainstalujeme vlastní temlejtu.
- Odkaz na originalni projekt: https://github.com/zabbix/community-templates/tree/main/Applications/NTP/template_ntp_accuracy/
GPS
https://github.com/chrisgilldc/gpsd_status
Stáhneme pomocný skript na GPS server. Pozor potřebuje upravit výstup pro -l.
wget https://raw.githubusercontent.com/chrisgilldc/gpsd_status/master/gpsd_status.py chmod 755 gpsd_status.py sudo mkdir -p /etc/zabbix/scripts sudo mv gpsd_status.py /etc/zabbix/scripts/
Vytvoříme konfiguraci pro Zabbix agenta
sudo nano /etc/zabbix/zabbix_agent2.d/gpsd_status.conf # GPSD status' > /etc/zabbix/zabbix_agent2.d/gpsd_status.conf UserParameter=gpsd.info[*],/etc/zabbix/scripts/gpsd_status.py -d "$1" -k "$2" #UserParameter=gpsd.discover,/etc/zabbix/scripts/gpsd_status.py -l -d /dev -s UserParameter=gpsd.discover,echo $(/etc/zabbix/scripts/gpsd_status.py -l -d /dev -s)
Doinstalujeme Zabix sender a restartneme agenta
sudo apt install zabbix-sender sudo systemctl restart zabbix-agent2.service
Nastavíme cron pro odesílání dat kde nastavíme:
- <device> - cesta k GPS přijímači
- <Host> - hostname gpsd serveru
- <Zabbix Server> - adresa Zabbix serveru
sudo nano /etc/cron.d/gpsd_status # Update GPSd satellite data every 15m */15 * * * * root /etc/zabbix/scripts/gpsd_status.py -d <device> -s | zabbix_sender -s <Host> -z <Zabbix Server> -i -
Dalsi
- Zajimavy odkaz: https://techexpert.tips/zabbix/
- BTC: https://github.com/zkSNACKs/zbx-bitcoin/tree/master
Laděni
Klient
Na klientovi můžeme spustit agenta z parametrem `-t` a tím ověřit správnost zadání parametru. Například:
zabbix_agent2 -t system.run['ntpq -c version']
Server
Na server je dobré doinstalovat `zabbix-get` který umožňuje vzdálené načtení jednotlivých položek od klientů. Příklad použití:
zabbix_get -s ntp.slapnet.cz -p 10050 -k system.run['ntpq -c version']