Zabbix: Porovnání verzí

Z Poznámkový blok
Přejít na: navigace, hledání
(Instalace Zabbix serveru)
(APT update)
 
(Není zobrazeno 91 mezilehlých verzí od stejného uživatele.)
Řádka 9: Řádka 9:
 
* Web Service    - generuje reporty
 
* Web Service    - generuje reporty
  
== Instalace úvod ==
+
== Zabbix server ==
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 ú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 ==
+
=== Instalace Apache ===
 
Prvně nainstalujeme Apache a pomocne programy  
 
Prvně nainstalujeme Apache a pomocne programy  
 
  apt update
 
  apt update
Řádka 34: Řádka 35:
 
  "uzivatel"    ALL=(ALL:ALL) NOPASSWD: ALL
 
  "uzivatel"    ALL=(ALL:ALL) NOPASSWD: ALL
  
== Instalace PostgreSQL ==
+
=== 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
 
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 ==
+
=== Instalace Zabbix serveru ===
 
Postup je pěkně zpracovaný přímo na stránkách [https://www.zabbix.com/download?zabbix=6.4&os_distribution=debian&os_version=11&components=server_frontend_agent&db=pgsql&ws=apache Zabixu]. Proto doporučuji postupovat dle jejich návodu.
 
Postup je pěkně zpracovaný přímo na stránkách [https://www.zabbix.com/download?zabbix=6.4&os_distribution=debian&os_version=11&components=server_frontend_agent&db=pgsql&ws=apache Zabixu]. Proto doporučuji postupovat dle jejich návodu.
  
== Nastaveni klienta ==
+
== Zabbix klient ==
  
  nano /etc/zabbix/zabbix_agent2.conf
+
=== 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=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=10.129.66.111
+
...
  ....
+
  Server=127.0.0.1
  ServerActive=10.129.66.111
+
  ...
  ....
+
...
  #Hostname=Zabbix server
+
  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
 +
=== APT update ===
 +
( <nowiki>wget https://www.slapnet.cz/zabbix/install-debian_apt_zabbix.sh && chmod +x install-debian_apt_zabbix.sh && ./install-debian_apt_zabbix.sh</nowiki> )
 +
 
 +
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
 +
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 ===
 +
( <nowiki>wget http://slapnet.cz/zabbix/install-raspberrypi_zabbix.sh && chmod +x install-raspberrypi_zabbix.sh && ./install-raspberrypi_zabbix.sh</nowiki> )
 +
 
 +
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:'''
 +
* https://github.com/bobbolous/zabbix-agent-on-RasPi/tree/master
 +
* https://pimylifeup.com/raspberry-pi-low-voltage-warning/
 +
* https://elinux.org/RPI_vcgencmd_usage
 +
 
 +
=== 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
 
   
 
   
  Hostname=system.hostname
+
  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....
 +
 
 +
=== 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/
 +
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 ...
 +
* https://github.com/hairmare/zabbix-icecast
 +
=== 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']
 +
=== 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 6. 7. 2024, 23:13


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

APT update

( wget https://www.slapnet.cz/zabbix/install-debian_apt_zabbix.sh && chmod +x install-debian_apt_zabbix.sh && ./install-debian_apt_zabbix.sh )

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

( wget http://slapnet.cz/zabbix/install-raspberrypi_zabbix.sh && chmod +x install-raspberrypi_zabbix.sh && ./install-raspberrypi_zabbix.sh )

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:

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

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

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

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

Odkazy