Zabbix: Porovnání verzí

Z Poznámkový blok
Přejít na: navigace, hledání
(Raspberi PI)
(Zabbix sender)
 
(Není zobrazeno 40 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 ===
 
Po instalaci nastavíme konfiguraci agenta
 
Po instalaci nastavíme konfiguraci agenta
  sudo /etc/zabbix/zabbix_agent2.conf
+
  sudo mcedit /etc/zabbix/zabbix_agent2.conf
 
   
 
   
 
  ...
 
  ...
Řádka 64: Řádka 70:
 
  ...
 
  ...
  
 +
sudo systemctl enable zabbix-agent2
 
  sudo systemctl restart zabbix-agent2.service
 
  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://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
 
  sudo mkdir -p /etc/zabbix/scripts
 
  sudo mkdir -p /etc/zabbix/scripts
 
  sudo mv raspberrypi.sh /etc/zabbix/scripts/
 
  sudo mv raspberrypi.sh /etc/zabbix/scripts/
Řádka 98: Řá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 109: Řádka 153:
 
* 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/
  
=== GPS ===
+
=== Chrony ===
https://github.com/chrisgilldc/gpsd_status
+
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.
  
Stáhneme pomocný skript na GPS server. Pozor potřebuje upravit výstup pro -l.
+
'''Rychlá instalace:'''
  wget https://raw.githubusercontent.com/chrisgilldc/gpsd_status/master/gpsd_status.py
+
  bash -c "$(wget -nv -O - https://rxw.cz/zabbix/install-chrony_zabbix.sh)"
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))''.
 
  
 +
'''Ruční nastavení:'''
  
Vytvoříme konfiguraci pro Zabbix agenta
+
Na Zabbix agentovi musíme povolit spouštění utility chronyc.
  sudo nano /etc/zabbix/zabbix_agent2.d/gpsd_status.conf
+
  sudo nano /etc/zabbix/zabbix_agent2.d/chrony.conf
 
   
 
   
  # GPSD status' > /etc/zabbix/zabbix_agent2.d/gpsd_status.conf
+
  # Nastav uzivatelsky skript pro cteni dat z RaspbeeriPI
  UserParameter=gpsd.info[*],/etc/zabbix/scripts/gpsd_status.py -d "$1" -k "$2"
+
UnsafeUserParameters=1
  UserParameter=gpsd.discover,/etc/zabbix/scripts/gpsd_status.py -l -d /dev -s
+
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
  
Doinstalujeme Zabix sender a restartneme agenta
+
Na konec na strane Zabbix serveru nainstalujeme vlastní templejtu.
sudo apt install zabbix-sender
 
sudo systemctl restart zabbix-agent2.service
 
  
Nastavíme cron pro odesílání dat kde nastavíme:
+
Odkaz na originalni projekt:
* <device> - cesta k GPS přijímači
+
* https://github.com/zabbix/community-templates/tree/main/Applications/NTP/template_chrony_accuracy_english
* <Host> - hostname gpsd serveru
+
* https://github.com/zabbix/community-templates/tree/main/Applications/NTP/template_chrony_accuracy
* <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 ===
 
=== Bind9 ===
Řádka 161: Řádka 200:
 
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....
  
=== APT update ===
+
=== GPS ===
 +
https://github.com/chrisgilldc/gpsd_status
  
Stáhneme pomocný skript
+
Stáhneme pomocný skript na GPS server. Pozor potřebuje upravit výstup pro -l.
  wget http://slapnet.cz/zabbix/zabbix_apt_upgrade.sh
+
  wget https://raw.githubusercontent.com/chrisgilldc/gpsd_status/master/gpsd_status.py
  chmod 755 zabbix_apt_upgrade.sh
+
  chmod 755 gpsd_status.py
 
  sudo mkdir -p /etc/zabbix/scripts
 
  sudo mkdir -p /etc/zabbix/scripts
  sudo mv zabbix_apt_upgrade.sh /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))''.
 +
 
  
Nastavime cron, aby prováděl pravidelne zpracovaní
+
Vytvoříme konfiguraci pro Zabbix agenta
  sudo nano /etc/cron.d/zabbix_apt_upgrade
+
  sudo nano /etc/zabbix/zabbix_agent2.d/gpsd_status.conf
 
   
 
   
  # Script pro kontrolu aktualizaci systemu urceny pro zabbix agenta
+
  # GPSD status' > /etc/zabbix/zabbix_agent2.d/gpsd_status.conf
  8 */12 * * *    root    /etc/zabbix/scripts/zabbix_apt_upgrade.sh
+
  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
Přidáme skript pro zabbix agenta
 
  sudo nano /etc/zabbix/zabbix_agent2.d/zabbix_apt_upgrade.conf
 
 
   
 
   
  # Nastav uzivatelsky skript pro test apt update, upgrade
+
  Timeout=5        # Nevim ktery z tech dvou je spravny ...
  UnsafeUserParameters=1
+
  PluginTimeout=5
UserParameter=apt.json,/etc/zabbix/scripts/zabbix_apt_upgrade.sh
 
  
Spustime skript, aby zapsal udaje a restartneme zabbix agenta
+
Doinstalujeme Zabix sender a restartneme agenta
  sudo /etc/zabbix/scripts/zabbix_apt_upgrade.sh
+
  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
 +
* <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 ===
 
=== Dalsi ===
 
* Zajimavy odkaz: https://techexpert.tips/zabbix/
 
* Zajimavy odkaz: https://techexpert.tips/zabbix/
Řádka 199: Řá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:

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