Zabbix

Z Poznámkový blok
Verze z 29. 10. 2023, 17:50, kterou vytvořil Tydyt (diskuse | příspěvky) (NTP)
Přejít na: navigace, hledání


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

Upravíme konfiguraci Zabbixu:

sudo mcedit /etc/zabbix/zabbix_agent2.conf

....
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:

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[ntpd -*]
sudo systemctl restart zabbix-agent2.service

GPS

https://github.com/chrisgilldc/gpsd_status

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/

wget https://raw.githubusercontent.com/chrisgilldc/gpsd_status/master/userparameter_gpsd.conf
sudo mv userparameter_gpsd.conf /etc/zabbix/zabbix_agent2.d/

sudo systemctl restart zabbix-agent2.service

Dalsi

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']