Zabbix: Porovnání verzí

Z Poznámkový blok
Přejít na: navigace, hledání
(Dalsi)
(Zabbix sender)
 
(Není zobrazeno 23 mezilehlých verzí od stejného uživatele.)
Řádka 46: Řádka 46:
 
=== 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=agent_2&db=&ws= stránkách Zabbixu].
 
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 ===
 
=== Nastavení Zabbix agenta ===
Řádka 64: Řádka 70:
 
  ...
 
  ...
  
 +
sudo systemctl enable zabbix-agent2
 
  sudo systemctl restart zabbix-agent2.service
 
  sudo systemctl restart zabbix-agent2.service
  
 
== Zabbix sender ==
 
== Zabbix sender ==
  sudo apt install 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 ===
 
=== APT update ===
( <nowiki>wget http://slapnet.cz/zabbix/install-debian_apt_zabbix.sh && chmod +x install-debian_apt_zabbix.sh && ./install-debian_apt_zabbix.sh</nowiki> )
+
'''Rychlá instalace:'''
 +
bash -c "$(wget -nv -O - https://rxw.cz/zabbix/install-debian_apt_zabbix.sh)"
 +
 
 +
'''Pokud si vše chcete udělat postupně:'''
  
Tento skript vyžaduje zabbix sender.
+
Vlastni skript vyžaduje zabbix sender.
 
  sudo apt update
 
  sudo apt update
 
  sudo apt install zabbix-sender
 
  sudo apt install zabbix-sender
 
Stáhneme pomocný skript
 
Stáhneme pomocný skript
  wget http://slapnet.cz/zabbix/debian_apt_zabbix.sh
+
  wget http://rxw.cz/zabbix/debian_apt_zabbix.sh
 
  chmod 755 debian_apt_zabbix.sh
 
  chmod 755 debian_apt_zabbix.sh
 
  sudo chown root:root debian_apt_zabbix.sh
 
  sudo chown root:root debian_apt_zabbix.sh
Řádka 93: Řádka 103:
  
 
=== 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://slapnet.cz/zabbix/raspberrypi.sh
+
  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 119: Řádka 134:
 
* https://pimylifeup.com/raspberry-pi-low-voltage-warning/
 
* https://pimylifeup.com/raspberry-pi-low-voltage-warning/
 
* https://elinux.org/RPI_vcgencmd_usage
 
* 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 ===
 
=== Bind9 ===
Řádka 140: Řádka 199:
 
  sudo systemctl restart zabbix-agent2.service
 
  sudo systemctl restart zabbix-agent2.service
 
Pak již stačí naimportovat šablonu do Zabbix serveru a přiřadit hostovi....
 
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 ===
 
=== GPS ===
Řádka 171: Řádka 217:
 
  UserParameter=gpsd.info[*],/etc/zabbix/scripts/gpsd_status.py -d "$1" -k "$2"
 
  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,/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
 
Doinstalujeme Zabix sender a restartneme agenta

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:

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.

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:

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

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