Monitoring: Porovnání verzí

Z Freenetis Wiki
Přejít na: navigace, hledání
(→‎Skript)
Řádek 23: Řádek 23:
 
=== Skript ===
 
=== Skript ===
  
−
Následující kód uložit jako /usr/local/sbin/freenetis-monitor:
+
Skripty a konfigurační soubor nalezneme ve složce '''/application/vendors/monitoring''' ve zdrojových souborech FreenetISu. Postup instalace:
  
−
#!/bin/bash
+
1) Zkopírujeme soubory
−
################################################################################
 
−
#                                                                              #
 
−
# This script serves for monitoring from IS FreeNetIS                          #
 
−
#                                                                              #
 
−
# author  Kliment Michal 2012                                                  #
 
−
# email  kliment@freenetis.org                                                #
 
−
#                                                                              #
 
−
# name    freenetis-monitord.sh                                                #
 
−
# version 0.9                                                                  #
 
−
#                                                                              #
 
−
################################################################################
 
−
 
−
#Load variables from config file
 
−
CONFIG=/etc/freenetis/freenetis-monitoring.conf
 
−
 
−
# temporary file with list of IP addresses to monitor
 
−
HOSTS_INPUT=`mktemp`
 
−
 
−
# temporary file with result to send
 
−
HOSTS_OUTPUT=`mktemp`
 
−
 
−
FPING="/usr/bin/fping"
 
−
 
−
# Load variables
 
−
if [ -f $CONFIG ]; then
 
−
        . $CONFIG
 
−
else
 
−
        echo "No config file - giving up :-(";
 
−
        exit 0
 
−
fi
 
−
 
−
# endless loop
 
−
while true;
 
−
do
 
−
# 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 -qO- --post-file="$HOSTS_OUTPUT" "$HOSTS_OUTPUT_URL"
 
−
 
−
        # remove temporary file with result
 
−
        rm "$HOSTS_OUTPUT"
 
−
done
 
  
−
Nastavit práva pro spouštění:
+
sudo mkdir /etc/freenetis
 +
cd /application/vendors/monitoring
 +
sudo cp ./freenetis-monitoring.init.sh /etc/init.d/freenetis-monitoring
 +
sudo cp ./freenetis-monitord.sh /usr/sbin/freenetis-monitord
 +
sudo cp ./freenetis-monitoring.conf /etc/freenetis
  
−
  chmod +x /usr/local/sbin/freenetis-monitor
+
2) Nastavit práva pro spouštění
 +
 
 +
  sudo chmod +x /etc/init.d/freenetis-monitoring
 +
sudo chmod +x /usr/sbin/freenetis-monitord
 +
 
 +
3) Přidat automatické spouštění po bootu
 +
 
 +
sudo update-rc.d freenetis-monitoring defaults
  
 
== Spuštění ==
 
== Spuštění ==

Verze z 3. 8. 2012, 08:03

Monitoring ve FreenetISu je založena na nástroji fping. Samotný monitoring je deamon běžící na linuxuvém stroji, který má přístup do Vaší vnitřní sítě a k serveru, na kterém běží FreenetIS. (FreenetIS i monitoring mohou běžet na jednom stroji, ale tato konfigurace není doporučena, jelikož monitoring vytváří velkou zátěž na běhový server)

Monitoring komunikuje s FreenetISem pomocí nástroje wget. Z FreenetiISu získává IP adresy v síti, které má monitorovat. Poté proběhne samotný test dostupnosti jednotlivých adres. Výstup testu je zaslán zpět FreenetISu, který jej zobrazí v rozhraní monitoringu.

Priorita monitorování

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. Pro každou prioritu je spustit jeden samostatný proces monitorování.

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

Instalace ze zdrojových kódů

Tento postup instalace je zde pro vývojářské účely. Koncový uživatelé by měli instalovat pomocí balíku frenetis-monitoring.

Závislosti

apt-get install fping

Skript

Skripty a konfigurační soubor nalezneme ve složce /application/vendors/monitoring ve zdrojových souborech FreenetISu. Postup instalace:

1) Zkopírujeme soubory

sudo mkdir /etc/freenetis
cd /application/vendors/monitoring
sudo cp ./freenetis-monitoring.init.sh /etc/init.d/freenetis-monitoring
sudo cp ./freenetis-monitord.sh /usr/sbin/freenetis-monitord
sudo cp ./freenetis-monitoring.conf /etc/freenetis

2) Nastavit práva pro spouštění

sudo chmod +x /etc/init.d/freenetis-monitoring
sudo chmod +x /usr/sbin/freenetis-monitord

3) Přidat automatické spouštění po bootu

sudo update-rc.d freenetis-monitoring defaults

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 (monitorující zařízení sdružení) by projetí trvalo přibližně 1 minutu => tj. výpadek spoje by se v systému projevil už za 1 minutu