Zabbix: Porovnání verzí
(→GPS) |
(→Zabbix sender) |
||
(Není zobrazeno 63 mezilehlých verzí od stejného uživatele.) | |||
Řádka 45: | Řádka 45: | ||
=== Instalace Zabbix agenta === | === Instalace Zabbix agenta === | ||
− | Pro instalaci agenta využijeme návod přímo na [https://www.zabbix.com/download?zabbix=6.4&os_distribution=debian&os_version=11&components= | + | Pro instalaci agenta využijeme návod přímo na [https://www.zabbix.com/download?zabbix=6.4&os_distribution=debian&os_version=11&components=agent_2&db=&ws= stránkách Zabbixu]. |
− | + | Pro '''Rasperry''' to znamena: | |
− | + | wget https://repo.zabbix.com/zabbix/6.4/raspbian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb | |
+ | sudo dpkg -i zabbix-release_6.4-1+debian11_all.deb | ||
+ | sudo apt update && sudo apt install -y zabbix-agent2 | ||
+ | sudo systemctl enable zabbix-agent2 | ||
− | + | === Nastavení Zabbix agenta === | |
+ | Po instalaci nastavíme konfiguraci agenta | ||
+ | sudo mcedit /etc/zabbix/zabbix_agent2.conf | ||
+ | |||
+ | ... | ||
+ | ... | ||
+ | Server=127.0.0.1 | ||
+ | ... | ||
+ | ... | ||
+ | ServerActive=127.0.0.1 | ||
+ | ... | ||
+ | #Hostname=Zabbix server | ||
+ | ... | ||
+ | HostnameItem=system.hostname | ||
+ | ... | ||
+ | ... | ||
+ | |||
+ | sudo systemctl enable zabbix-agent2 | ||
+ | sudo systemctl restart zabbix-agent2.service | ||
− | + | == Zabbix sender == | |
− | + | sudo apt install -y zabbix-sender | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Rozšíření == | == Rozšíření == | ||
Ne všechny hodnoty jdou načíst přímo agentem. Je nutné pro některé věci přidat | Ne všechny hodnoty jdou načíst přímo agentem. Je nutné pro některé věci přidat | ||
+ | === APT update === | ||
+ | '''Rychlá instalace:''' | ||
+ | bash -c "$(wget -nv -O - https://rxw.cz/zabbix/install-debian_apt_zabbix.sh)" | ||
+ | |||
+ | '''Pokud si vše chcete udělat postupně:''' | ||
+ | |||
+ | Vlastni skript vyžaduje zabbix sender. | ||
+ | sudo apt update | ||
+ | sudo apt install zabbix-sender | ||
+ | Stáhneme pomocný skript | ||
+ | wget http://rxw.cz/zabbix/debian_apt_zabbix.sh | ||
+ | chmod 755 debian_apt_zabbix.sh | ||
+ | sudo chown root:root debian_apt_zabbix.sh | ||
+ | sudo mkdir -p /etc/zabbix/scripts | ||
+ | sudo mv debian_apt_zabbix.sh /etc/zabbix/scripts/ | ||
+ | |||
+ | Nastavime cron, aby prováděl pravidelne zpracovaní | ||
+ | sudo nano /etc/cron.d/debian_apt_zabbix | ||
+ | |||
+ | # Script pro kontrolu aktualizaci systemu urceny pro zabbix agenta | ||
+ | 30 7,15,23 * * * root /etc/zabbix/scripts/debian_apt_zabbix.sh | ||
+ | Na zabbix serveru přidáme šablonu k hostovi a otestujeme skript | ||
+ | sudo /etc/zabbix/scripts/debian_apt_zabbix.sh | ||
+ | |||
=== Raspberi PI === | === Raspberi PI === | ||
+ | '''Rychlá instalace:''' | ||
+ | bash -c "$(wget -nv -O - https://rxw.cz/zabbix/install-raspberrypi_zabbix.sh)" | ||
+ | |||
+ | '''Pokud chcete instalova ručne:''' | ||
+ | |||
Na straně Rasberri doinstalujeme pomocný skript: | Na straně Rasberri doinstalujeme pomocný skript: | ||
− | wget https:// | + | wget https://rxw.cz/zabbix/raspberrypi.sh |
chmod 755 raspberrypi.sh | chmod 755 raspberrypi.sh | ||
sed -i 's/\/opt\/vc\/bin\/vcgencmd/\/bin\/vcgencmd/g' raspberrypi.sh | sed -i 's/\/opt\/vc\/bin\/vcgencmd/\/bin\/vcgencmd/g' raspberrypi.sh | ||
Řádka 104: | Řádka 137: | ||
=== NTP === | === 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. | 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. | ||
+ | |||
+ | '''Rychlá instalace:''' | ||
+ | bash -c "$(wget -nv -O - https://rxw.cz/zabbix/install-ntpq_zabbix.sh)" | ||
+ | |||
+ | '''Ruční nastavení:''' | ||
Na Zabbix agentovi musíme povolit spouštění utility ntpq. | Na Zabbix agentovi musíme povolit spouštění utility ntpq. | ||
Řádka 114: | Řádka 152: | ||
Poté na strane Zabbix serveru nainstalujeme vlastní temlejtu. | 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/ | * Odkaz na originalni projekt: https://github.com/zabbix/community-templates/tree/main/Applications/NTP/template_ntp_accuracy/ | ||
+ | |||
+ | === Chrony === | ||
+ | Zhromažďyje a kontroluje data z Chrony serveru. Nezáleží o jaký řád vlastního NTP serveru jde, využívá výpisu stavu pomocí chronyc tracking. | ||
+ | |||
+ | '''Rychlá instalace:''' | ||
+ | bash -c "$(wget -nv -O - https://rxw.cz/zabbix/install-chrony_zabbix.sh)" | ||
+ | |||
+ | '''Ruční nastavení:''' | ||
+ | |||
+ | Na Zabbix agentovi musíme povolit spouštění utility chronyc. | ||
+ | sudo nano /etc/zabbix/zabbix_agent2.d/chrony.conf | ||
+ | |||
+ | # Nastav uzivatelsky skript pro cteni dat z RaspbeeriPI | ||
+ | UnsafeUserParameters=1 | ||
+ | AllowKey=system.run[chronyc tracking*] | ||
+ | AllowKey=system.run[chronyc sources*] | ||
+ | AllowKey=system.run[chronyc -v] | ||
+ | AllowKey=system.run[chronyd --version] | ||
+ | Následně zajistíme načtení nové konfigurace: | ||
+ | sudo systemctl restart zabbix-agent2.service | ||
+ | |||
+ | Na konec na strane Zabbix serveru nainstalujeme vlastní templejtu. | ||
+ | |||
+ | Odkaz na originalni projekt: | ||
+ | * https://github.com/zabbix/community-templates/tree/main/Applications/NTP/template_chrony_accuracy_english | ||
+ | * https://github.com/zabbix/community-templates/tree/main/Applications/NTP/template_chrony_accuracy | ||
+ | |||
+ | === Bind9 === | ||
+ | * Originální odkaz: https://github.com/zabbix/community-templates/tree/main/Applications/DNS/template_bind_stat/6.0 | ||
+ | |||
+ | V konfiguraci Bind9 musí být někde, například v named.conf nastaveno: | ||
+ | statistics-channels { | ||
+ | inet 127.0.0.1 port 8053 allow { 127.0.0.1; }; | ||
+ | }; | ||
+ | Doinstalujeme potřebné pomocné utility: | ||
+ | sudo apt install curl xml2 | ||
+ | Dála nestavíme uživatelské parametry pro zabbix agenta: | ||
+ | sudo nano /etc/zabbix/zabbix_agent2.d/bind9.conf | ||
+ | |||
+ | UserParameter=bind.net.udp,netstat -nua | grep :53 | wc -l | ||
+ | UserParameter=bind.net.tcp,netstat -nta | grep :53 | wc -l | ||
+ | UserParameter=bind.queries.in[*],curl http://127.0.0.1:8053/ 2>/dev/null | xml2 | grep -A1 "/statistics/server/counters/counter/@name=$1$" | tail -1 | cut -d= -f2 | ||
+ | UserParameter=bind.queries.out[*],curl http://127.0.0.1:8053/ 2>/dev/null | xml2 | grep -A1 "/statistics/views/view/counters/counter/@name=$1$" | tail -1 | cut -d= -f2 | ||
+ | UserParameter=bind.queries.query[*],curl http://127.0.0.1:8053/ 2>/dev/null | xml2 | grep -A1 "/statistics/server/counters/counter/@name=Qry$1$" | tail -1 | cut -d= -f2 | ||
+ | Restartujeme agenta: | ||
+ | sudo systemctl restart zabbix-agent2.service | ||
+ | Pak již stačí naimportovat šablonu do Zabbix serveru a přiřadit hostovi.... | ||
=== GPS === | === GPS === | ||
https://github.com/chrisgilldc/gpsd_status | 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 | wget https://raw.githubusercontent.com/chrisgilldc/gpsd_status/master/gpsd_status.py | ||
chmod 755 gpsd_status.py | chmod 755 gpsd_status.py | ||
sudo mkdir -p /etc/zabbix/scripts | sudo mkdir -p /etc/zabbix/scripts | ||
sudo mv gpsd_status.py /etc/zabbix/scripts/ | sudo mv gpsd_status.py /etc/zabbix/scripts/ | ||
+ | Ve vlastním skriptu pak nahradime ''print(json.dumps(discovery_final, indent=4))'' za ''print(json.dumps(discovery))''. | ||
+ | |||
+ | |||
+ | 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 | |
− | |||
− | |||
+ | Timeout=5 # Nevim ktery z tech dvou je spravny ... | ||
+ | PluginTimeout=5 | ||
+ | |||
+ | Doinstalujeme Zabix sender a restartneme agenta | ||
sudo apt install zabbix-sender | sudo apt install zabbix-sender | ||
sudo systemctl restart zabbix-agent2.service | 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 | * <device> - cesta k GPS přijímači | ||
* <Host> - hostname gpsd serveru | * <Host> - hostname gpsd serveru | ||
* <Zabbix Server> - adresa Zabbix serveru | * <Zabbix Server> - adresa Zabbix serveru | ||
sudo nano /etc/cron.d/gpsd_status | 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 - | ||
+ | === Icecast === | ||
+ | Zatím neověřeno, ale uvidime ... | ||
+ | * https://github.com/hairmare/zabbix-icecast | ||
=== Dalsi === | === Dalsi === | ||
* Zajimavy odkaz: https://techexpert.tips/zabbix/ | * Zajimavy odkaz: https://techexpert.tips/zabbix/ | ||
Řádka 145: | Řádka 244: | ||
=== Klient === | === Klient === | ||
Na klientovi můžeme spustit agenta z parametrem `-t` a tím ověřit správnost zadání parametru. Například: | 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'] | + | sudo zabbix_agent2 -t system.run['ntpq -c version'] |
=== Server === | === Server === | ||
Řádka 151: | Řádka 250: | ||
Příklad použití: | Příklad použití: | ||
zabbix_get -s ntp.slapnet.cz -p 10050 -k system.run['ntpq -c version'] | zabbix_get -s ntp.slapnet.cz -p 10050 -k system.run['ntpq -c version'] | ||
+ | === Odkazy === | ||
+ | * [https://www.zabbix.com/documentation/current/en/manual/appendix/macros/supported_by_location Zeznam vnitřních proměnných zabbixu] |
Aktuální verze z 17. 11. 2024, 19:02
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.
Pro Rasperry to znamena:
wget https://repo.zabbix.com/zabbix/6.4/raspbian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb sudo dpkg -i zabbix-release_6.4-1+debian11_all.deb sudo apt update && sudo apt install -y zabbix-agent2 sudo systemctl enable zabbix-agent2
Nastavení Zabbix agenta
Po instalaci nastavíme konfiguraci agenta
sudo mcedit /etc/zabbix/zabbix_agent2.conf ... ... Server=127.0.0.1 ... ... ServerActive=127.0.0.1 ... #Hostname=Zabbix server ... HostnameItem=system.hostname ... ...
sudo systemctl enable zabbix-agent2 sudo systemctl restart zabbix-agent2.service
Zabbix sender
sudo apt install -y zabbix-sender
Rozšíření
Ne všechny hodnoty jdou načíst přímo agentem. Je nutné pro některé věci přidat
APT update
Rychlá instalace:
bash -c "$(wget -nv -O - https://rxw.cz/zabbix/install-debian_apt_zabbix.sh)"
Pokud si vše chcete udělat postupně:
Vlastni skript vyžaduje zabbix sender.
sudo apt update sudo apt install zabbix-sender
Stáhneme pomocný skript
wget http://rxw.cz/zabbix/debian_apt_zabbix.sh chmod 755 debian_apt_zabbix.sh sudo chown root:root debian_apt_zabbix.sh sudo mkdir -p /etc/zabbix/scripts sudo mv debian_apt_zabbix.sh /etc/zabbix/scripts/
Nastavime cron, aby prováděl pravidelne zpracovaní
sudo nano /etc/cron.d/debian_apt_zabbix # Script pro kontrolu aktualizaci systemu urceny pro zabbix agenta 30 7,15,23 * * * root /etc/zabbix/scripts/debian_apt_zabbix.sh
Na zabbix serveru přidáme šablonu k hostovi a otestujeme skript
sudo /etc/zabbix/scripts/debian_apt_zabbix.sh
Raspberi PI
Rychlá instalace:
bash -c "$(wget -nv -O - https://rxw.cz/zabbix/install-raspberrypi_zabbix.sh)"
Pokud chcete instalova ručne:
Na straně Rasberri doinstalujeme pomocný skript:
wget https://rxw.cz/zabbix/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.
Rychlá instalace: bash -c "$(wget -nv -O - https://rxw.cz/zabbix/install-ntpq_zabbix.sh)"
Ruční nastavení:
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/
Chrony
Zhromažďyje a kontroluje data z Chrony serveru. Nezáleží o jaký řád vlastního NTP serveru jde, využívá výpisu stavu pomocí chronyc tracking.
Rychlá instalace:
bash -c "$(wget -nv -O - https://rxw.cz/zabbix/install-chrony_zabbix.sh)"
Ruční nastavení:
Na Zabbix agentovi musíme povolit spouštění utility chronyc.
sudo nano /etc/zabbix/zabbix_agent2.d/chrony.conf # Nastav uzivatelsky skript pro cteni dat z RaspbeeriPI UnsafeUserParameters=1 AllowKey=system.run[chronyc tracking*] AllowKey=system.run[chronyc sources*] AllowKey=system.run[chronyc -v] AllowKey=system.run[chronyd --version]
Následně zajistíme načtení nové konfigurace:
sudo systemctl restart zabbix-agent2.service
Na konec na strane Zabbix serveru nainstalujeme vlastní templejtu.
Odkaz na originalni projekt:
- https://github.com/zabbix/community-templates/tree/main/Applications/NTP/template_chrony_accuracy_english
- https://github.com/zabbix/community-templates/tree/main/Applications/NTP/template_chrony_accuracy
Bind9
- Originální odkaz: https://github.com/zabbix/community-templates/tree/main/Applications/DNS/template_bind_stat/6.0
V konfiguraci Bind9 musí být někde, například v named.conf nastaveno:
statistics-channels { inet 127.0.0.1 port 8053 allow { 127.0.0.1; }; };
Doinstalujeme potřebné pomocné utility:
sudo apt install curl xml2
Dála nestavíme uživatelské parametry pro zabbix agenta:
sudo nano /etc/zabbix/zabbix_agent2.d/bind9.conf UserParameter=bind.net.udp,netstat -nua | grep :53 | wc -l UserParameter=bind.net.tcp,netstat -nta | grep :53 | wc -l UserParameter=bind.queries.in[*],curl http://127.0.0.1:8053/ 2>/dev/null | xml2 | grep -A1 "/statistics/server/counters/counter/@name=$1$" | tail -1 | cut -d= -f2 UserParameter=bind.queries.out[*],curl http://127.0.0.1:8053/ 2>/dev/null | xml2 | grep -A1 "/statistics/views/view/counters/counter/@name=$1$" | tail -1 | cut -d= -f2 UserParameter=bind.queries.query[*],curl http://127.0.0.1:8053/ 2>/dev/null | xml2 | grep -A1 "/statistics/server/counters/counter/@name=Qry$1$" | tail -1 | cut -d= -f2
Restartujeme agenta:
sudo systemctl restart zabbix-agent2.service
Pak již stačí naimportovat šablonu do Zabbix serveru a přiřadit hostovi....
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/
Ve vlastním skriptu pak nahradime print(json.dumps(discovery_final, indent=4)) za print(json.dumps(discovery)).
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 Timeout=5 # Nevim ktery z tech dvou je spravny ... PluginTimeout=5
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 -
Icecast
Zatím neověřeno, ale uvidime ...
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:
sudo 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']