Monitoring: Porovnání verzí
(→Spuštění) |
|||
Řádek 71: | Řádek 71: | ||
while true; do freenetis-monitor; done | while true; do freenetis-monitor; done | ||
+ | |||
+ | === Priority === | ||
+ | |||
+ | Je to jediný parametr skriptu. Nejedná se o priority v pravém slova smyslu, spíše priority jdou pomocí něj simulovat. Přesnější termín by byl zřejmě skupiny. | ||
+ | |||
+ | Ve FreenetISu si zařízení rozdělíme do jednotlivých priorit a pak na straně serveru můžeme pro každou prioritu spustit jeden proces. | ||
+ | |||
+ | Praktické použití: Zařízení sdružení (tj. nejdůležitější) si označíme prioritou 1 (např. 500 zařízení), ostatní zařízení, které chceme z nějakého důvodu monitorovat si označíme prioritou 2 (např. 2500 zařízení). | ||
+ | |||
+ | Pokud bychom skript spustili bez parametru, monitoroval by všechna zařízení (s prioritou 1 i 2) a trvalo by jedno projetí přibližně 5 minut => tj. výpadek spoje by se v systému projevil až nejdříve za 5 minut | ||
+ | |||
+ | Pokud bychom spustili skript 2x: | ||
+ | |||
+ | while true; do freenetis-monitor 1; done | ||
+ | while true; do freenetis-monitor 2; done | ||
+ | |||
+ | prvnímu procesu by projetí trvalo přibližně 1 minutu => tj. výpadek spoje by se v systému projevil už za 1 minutu |
Verze z 2. 8. 2012, 04:37
Instalace
Závislosti
apt-get install fping
Skript
Následující kód uložit jako /usr/local/sbin/freenetis-monitor (nastavit správně proměnné HOSTS_INPUT_URL a HOSTS_OUTPUT_URL):
#!/bin/bash # URL with IP addresses to monitor HOSTS_INPUT_URL="http://freenetis.example.org/cs/web_interface/monitoring_hosts/" # URL to which we send result HOSTS_OUTPUT_URL="http://freenetis.example.org/cs/web_interface/monitoring_states/" # temporary file with list of IP addresses to monitor HOSTS_INPUT=`mktemp` # temporary file with result to send HOSTS_OUTPUT=`mktemp` echo "Downloading list of IP addresses to monitor..." # get ip addresses from FreenetIS wget -q "$HOSTS_INPUT_URL$1" -O "$HOSTS_INPUT" # use fping to get ip addresses states fping -e -f "$HOSTS_INPUT" 2>/dev/null | while read host do # ip address ip=`echo $host | awk '{print $1}'` # state of host (alive or unreachable) state=`echo $host | awk '{print $3}'` # latency of host (only for alive state) lat=`echo $host | awk '{print $4}' | sed 's/(//'` # do not add ampersand to beginning of file with result if [ -s "$HOSTS_OUTPUT" ]; then echo -n "&" >> "$HOSTS_OUTPUT"; fi # add variables to file with result echo "ip[]=$ip&state[]=$state&lat[]=$lat" >> "$HOSTS_OUTPUT" done # remove temporary file with IP addresses to monitor rm "$HOSTS_INPUT" echo "Sending result data back to FreenetIS..." # send file with result back to FreenetIS wget -q --post-file="$HOSTS_OUTPUT" "$HOSTS_OUTPUT_URL" # remove temporary file with result rm "$HOSTS_OUTPUT"
Nastavit práva pro spouštění:
chmod +x /usr/local/sbin/freenetis-monitor
Spuštění
Skript je nutné spouštět ve věčném cyklu (např. ve screenu):
while true; do freenetis-monitor; done
Priority
Je to jediný parametr skriptu. Nejedná se o priority v pravém slova smyslu, spíše priority jdou pomocí něj simulovat. Přesnější termín by byl zřejmě skupiny.
Ve FreenetISu si zařízení rozdělíme do jednotlivých priorit a pak na straně serveru můžeme pro každou prioritu spustit jeden proces.
Praktické použití: Zařízení sdružení (tj. nejdůležitější) si označíme prioritou 1 (např. 500 zařízení), ostatní zařízení, které chceme z nějakého důvodu monitorovat si označíme prioritou 2 (např. 2500 zařízení).
Pokud bychom skript spustili bez parametru, monitoroval by všechna zařízení (s prioritou 1 i 2) a trvalo by jedno projetí přibližně 5 minut => tj. výpadek spoje by se v systému projevil až nejdříve za 5 minut
Pokud bychom spustili skript 2x:
while true; do freenetis-monitor 1; done while true; do freenetis-monitor 2; done
prvnímu procesu by projetí trvalo přibližně 1 minutu => tj. výpadek spoje by se v systému projevil už za 1 minutu