Zabbix: Porovnání verzí

Z Poznámkový blok
Přejít na: navigace, hledání
(APT update)
(APT update)
Řádka 164: Řádka 164:
  
 
=== APT update ===
 
=== APT update ===
 
+
Tento skript vyžaduje zabbix sender.
 +
sudo apt update
 +
sudo apt install zabbix-sender
 
Stáhneme pomocný skript
 
Stáhneme pomocný skript
 
  wget http://slapnet.cz/zabbix/debian_apt_zabbix.sh
 
  wget http://slapnet.cz/zabbix/debian_apt_zabbix.sh

Verze z 19. 11. 2023, 22:15


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.

Nastavení Zabbix agenta

Po instalaci nastavíme konfiguraci agenta

sudo /etc/zabbix/zabbix_agent2.conf

...
...
Server=127.0.0.1
...
...
ServerActive=127.0.0.1
...
#Hostname=Zabbix server 
...
HostnameItem=system.hostname
...
...
sudo systemctl restart zabbix-agent2.service

Zabbix sender

sudo apt install zabbix-sender

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

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.

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

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 -

Bind9

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

APT update

Tento skript vyžaduje zabbix sender.

sudo apt update
sudo apt install zabbix-sender

Stáhneme pomocný skript

wget http://slapnet.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
8 */12 * * *    root    /etc/zabbix/scripts/debian_apt_zabbix.sh

Přidáme skript pro zabbix agenta

sudo nano /etc/zabbix/zabbix_agent2.d/debian_apt_zabbix.sh

# Nastav uzivatelsky skript pro test apt update, upgrade
#UnsafeUserParameters=1
#UserParameter=apt.json,/etc/zabbix/scripts/zabbix_apt_upgrade.sh

Spustime skript, aby zapsal udaje a restartneme zabbix agenta

sudo /etc/zabbix/scripts/debian_apt_zabbix.sh
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:

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