[[:TableOfContents|TableOfContents]]>>
====== Server Dokumentation ======
Link: [[Core/[[:ServerDokumentationIntern|ServerDokumentationIntern]]|interner Teil]]
:!: Diese Dokumentation beschreibt unsere Serverlandschaft. Die restliche Technische Dokumentation ist auf der Seite [[:TechnischeDokumentation|TechnischeDokumentation]] zu finden. Zurzeit gibt es an 4 Standorten Server von Funkfeuer Graz. Es gibt Server an der TU Graz, bei EDIS in Wien, in der Leitnergasse im Serverhousing von [[[http://mur.at|mur.at|http://mur.at|mur.at]]] und einen Server im 19" Rack am Dach der TU Bibliothek.
===== TU Graz =====
#fixme
==== Statistics (stats.ffgraz.net) ====
Auf diesem ebenfalls virtualisierten Server laufen diverse Scripte die statistische Informationen über das Funkfeuer Netzwerk sammeln. Weiters läuft //lighttpd// der die gesammelten Daten in Form ein Webseite präsentiert. Alle Datenbanken und Archive sowie der Documentroot des Webservers befinden sich im Verzeichnis ///srv//.
=== Topologie ===
Für die Topolgie Daten läuft eine eigene //olsrd// Instanz von der mittels eines Perl Scriptes die Daten geholt werden. Danach versucht das Script die zu den IP Addressen passenden DNS Einträge zu finden und zeichnet dann mittels //neato// (graphviz) den Graphen. Das Script wird von //cron// alle 2 Minuten ausgeführt. Weiters wird alle 10 Minuten ebenfalls von //cron// ein Script aufgerufen das ein Snapshot der aktuellen .dot Datei in das Archiv kopiert. Die dazu passenden //cron// Einträge sind in der Datei ///etc/cron.d/topo// zu finden. Alle anderen Scripte befinden sich unter ///srv/www/topo//.
=== Smokeping ===
//smokeping// zeichnet zu allen laut Datenbank dazu frei geschalteten Routern im Netz eine Erreichbarkeitsstatistik. Dazu wird die eigens dafür geschriebene Export Funktion des //manman// Systems verwendet (///var/www/manman/app/controllers/export_controller.rb//). Prinzipiell wird //smokeping// über die Konfigurationsdateien im Verzeichnis ///etc/smokeping// gesteuert. 4x täglich (3:45, 9:45, 15:45, 21:45) wird mittels //cron// die Liste der zu testenden Router aus der Datenbank upgedatet. Der dazu passende //cron// Eintrag ist in der Datei ///etc/cron.d/smokeping// zu finden. Alle anderen Daten und Scripte liegen in ///srv/www/smokeping// bzw in ///srv/var-lib-smokeping//. Auf letzeres Verzeichnis zeigt der Link ///var/lib/smokeping//.
=== Firmware Version ===
Die derzeit im Netzwerk verwendeten Firmware Versionen werden 4 mal am Tag (4, 10, 16 und 22 Uhr) von einem Ruby Script ermittelt und dann in einem txt Format gespeichert. Ein weiteres Script kopiert die erstellte Statistik in ein Archiv und erstellt eine Ausgabe in HTML und eine Grafik. Alle dazu gehörenden Scripte und Daten befinden sich in oder unter dem Verzeichnis ///srv/www/version///. Der Script selbst wird von //cron// zu den angegebenen Zeitpunkten gestartet. Der dazu passende //cron// Eintrag ist in ///etc/cron.d/version// zu finden. Das Ruby Script liest das Webinterface aller derzeit im Netz aktiven Knoten (Topologie) aus und versucht dann daraus die Firmware Version zu ermitteln. Zurzeit wird die Freifunkfirmware sowohl im Freifunk als auch im Funkfeuer und im FFGraz Branding automatisch erkannt. Alle anderen Router sollten im Html Head ihrer index.html folgenden Meta Tag enthalten:
Wobei der String CONTENT natürlich die derzeit aktive OLSR Version wiederspiegeln sollte. Genau dieser String wird dann in der Tabelle bzw Grafik verwendet. Ausserdam kann mit dem Tag
der Script dazu angewiesen werden eine andere Seite vom selben Host zu laden die dann ebenfalls nach einem Meta Tag mit der Version durchsucht wird. :!: Da diese Links rekursiv aufgelöst werden ist darauf zu achten das keine unendliche Schleife produziert wird.
Auf unseren Debian basierten Routern wird folgende Datei als index.cgi im Webserver Documentroot verwendet damit bei einem update von OLSR keine falsche Versionsnummer verwendet wird:
#!sh (-)
#!/bin/sh
echo Content-type: text/html
echo
OLSR_VER=`dpkg -l olsrd | grep olsrd | awk '{ print $3 }' | sed s/-[^-]*$//`
cat<
....
....