Ondataservice: Unterschied zwischen den Versionen

Aus Opennet
Wechseln zu: Navigation, Suche
(Schema der ondataservice-Übertragung)
(Hinweis auf http-Transport)
 
(11 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
{{team
 +
|description=Opennet Datenservice
 +
|nextMeeting=
 +
|members=[[Benutzer:Ap46rene|Rene E.]]
 +
|kontakt=[mailto:admin@opennet-initiative.de admin@opennet-initiative.de]
 +
|logo=
 +
}}
 +
 +
= Vorbemerkungen =
 +
 +
Dieser Dienst liefert laufend Daten zum Status von Opennet Access Points für die Auswertung im Opennet Wiki und weiteren darauf aufbauenden Diensten wie die Opennet Karten. Daten werden durch ein [[OLSR]]-Plugin auf jedem Accesspoint gesammelt und verbreitet und können später an jedem anderen Opennet-Knoten wieder eingesammelt werden. Technische Details findet ihr in den folgenden Abschnitten.
 +
 
= olsr ondataservice plugin =
 
= olsr ondataservice plugin =
 
Das Plugin dient zur Verteilung der Konfigurations- und Statusinformationen im Opennet. Es gibt zwei Versionen, eine light-version, die nur Daten senden kann und eine komplette Version, die Daten senden und emfangen kann. Als Datenquelle nutzt die Light-Version ein JSON-Datenfile, die komplette Version eine SQlite3-Datenbank.
 
Das Plugin dient zur Verteilung der Konfigurations- und Statusinformationen im Opennet. Es gibt zwei Versionen, eine light-version, die nur Daten senden kann und eine komplette Version, die Daten senden und emfangen kann. Als Datenquelle nutzt die Light-Version ein JSON-Datenfile, die komplette Version eine SQlite3-Datenbank.
Zeile 51: Zeile 63:
 
</pre>
 
</pre>
  
= Aktuelle Installationen =
+
= Übertragung der Statusinformationen =
 
+
[[Image:ondataservice.png|thumb|Datenaustausch im Überblick ([[Media:ondataservice.dia|Quelle]])]]
== Übertragung der Statusinformationen ==
+
[[Image:ondataservice.png|thumb]]
+
 
Abhängig von der Firmware-Version werden die Informationen jedes APs entweder per Push (neue Firmware, via OLSR) oder per Pull (alte Firmware, Abfrage via http) übertragen.
 
Abhängig von der Firmware-Version werden die Informationen jedes APs entweder per Push (neue Firmware, via OLSR) oder per Pull (alte Firmware, Abfrage via http) übertragen.
  
=== Aktuelle Firmware ===
+
== Aktuelle Firmware ==
 
''Dieser Modus gilt für die Firmware-Versionen ab ''0.3-8'' und die AirOS-Anpassungen ab Version ''opennet0.5''.''
 
''Dieser Modus gilt für die Firmware-Versionen ab ''0.3-8'' und die AirOS-Anpassungen ab Version ''opennet0.5''.''
  
 
Das olsrd-Plugin ''ondataservice'' versendet periodisch die lokalen AP-Informationen in Form eines JSON-Datensatzes.
 
Das olsrd-Plugin ''ondataservice'' versendet periodisch die lokalen AP-Informationen in Form eines JSON-Datensatzes.
  
=== Ältere Firmware ===
+
=== Alternativer HTTP-Abruf ===
 +
Zusätzlich stellen die Accesspoints seit der Firmware v0.5.5 denselben Datensatz (im JSON-Format) unter http://192.168.x.y/opennet-ondataservice-export.json zur Verfügung. Dies erlaubt die zentrale Abfrage der Daten ohne den OLSR-ondataservice. Somit umgehen wir unerforschte Verteilungsprobleme mit den ondataservice-Plugin und bereiten den langsamen Umstieg auf OLSR2 (bisher ohne einen mit ondataservice vergleichbarem Transportmechanismus) vor. Die Bereitstellung via HTTP lässt sich auf alten Accesspoints folgendermaßen aktivieren:
 +
<pre>
 +
ln -s ../tmp/database.json /www/opennet-ondataservice-export.json
 +
</pre>
 +
 
 +
Die Daten werden täglich von der [[Opennet API]] abgerufen und in den zentralen Datenbestand eingepflegt.
 +
 
 +
== Ältere Firmware ==
 
''Dies gilt beispielsweise für Version ON5.''
 
''Dies gilt beispielsweise für Version ON5.''
  
Auf inez.on-i.de läuft täglich ein Skript [http://absorb.it/software/opennet/ondataservice/get_ap_data.py] welches die Daten der Opennet-Accesspoints mit alter Firmware abfragt.
+
Auf [[Server/heartofgold]] läuft täglich ein Skript [http://absorb.it/software/opennet/ondataservice/get_ap_data.py] welches die Daten der Opennet-Accesspoints mit alter Firmware abfragt.
Dazu werden von allen 192.168.x.y-Hosts, die ''inez'' erreichen kann, die URL ''/cgi-bin-status.html'' abgerufen ([http://192.168.1.15/cgi-bin-status.html Beispiel]).
+
Dazu werden von allen 192.168.x.y-Hosts, die ''heartofgold'' erreichen kann, die URL ''/cgi-bin-status.html'' abgerufen ([http://192.168.1.15/cgi-bin-status.html Beispiel]).
  
Die Kurzzusammenfassung des letzten Abrufs ist auf ''inez'' im Verzeichnis ''/home/rene/APData/lastrun.log'' zu finden.
+
Die Kurzzusammenfassung des letzten Abrufs ist auf [[Server/heartofgold]] im Verzeichnis ''/usr/local/sbin/APData/lastrun.log'' zu finden.
 
Die folgenden Markierung sind dabei besonders interessant:
 
Die folgenden Markierung sind dabei besonders interessant:
 
* ''old statuspage missing'': die Seite ''/cgi-bin-status.html'' ist nicht abrufbar -> auf diesem Weg sind keine Informationen abrufbar
 
* ''old statuspage missing'': die Seite ''/cgi-bin-status.html'' ist nicht abrufbar -> auf diesem Weg sind keine Informationen abrufbar
 
* ''++done'': die Abfrage war erfolgreich
 
* ''++done'': die Abfrage war erfolgreich
  
Die hierbei gesammelten Daten aller alten APs werden von dem ''ondataservice''-Plugin auf ''inez'' via OLSR verteilt (''spreadall=true''). Dies erlaubt jedem Datensammler den kompletten Datensatz (alte und neue Firmware) allein aus den OLSR-Daten zu beziehen.
+
Die hierbei gesammelten Daten aller alten APs werden von dem ''ondataservice''-Plugin auf [[Server/heartofgold]] via OLSR verteilt (''spreadall=true''). Dies erlaubt jedem Datensammler den kompletten Datensatz (alte und neue Firmware) allein aus den OLSR-Daten zu beziehen.
  
 
== Schnittstelle zum Wiki ==
 
== Schnittstelle zum Wiki ==
Auf www.on-i.de läuft ein ''ondataservice''-Plugin, welches alle empfangenen Daten speichert. Diese werden über die [[Extension:APData]] (vgl. auch [http://absorb.it/software/opennet/ondataservice/APData.php]) zur Verfügung gestellt und können im Wiki genutzt werden.
+
Auf [[Server/on-v6]] (Webserver) läuft ein ''ondataservice''-Plugin, welches alle empfangenen Daten speichert. Diese werden über die [[Extension:APData]] (vgl. auch [http://absorb.it/software/opennet/ondataservice/APData.php]) zur Verfügung gestellt und können im Wiki genutzt werden.
 +
 
 +
Weiterhin wird über die [[Vorlage:FirmwareOverview]] eine Übersicht über die aktuellen Firmware-Stände erzeugt. Diese Übersicht ist unter [[Firmware_Status]] zu finden.
  
 
= Quellcode / Eigenbau =
 
= Quellcode / Eigenbau =
 +
 +
Voraussetzung ist sqlite-dev. Installation auf Debian: ''apt-get install libsqlite3-dev''
  
 
== ondataservice plugin ==
 
== ondataservice plugin ==
  git clone git://absorb.it/olsrd-0.6.2
+
  git clone git://absorb.it/olsrd
  cd olsrd-0.6.2
+
  cd olsrd
 
  make ondataservice
 
  make ondataservice
 
  make ondataservice_light
 
  make ondataservice_light
  
 
== olsr mit plugin als Teil von openwrt backfire ==
 
== olsr mit plugin als Teil von openwrt backfire ==
Im Verzeichnis (backfire)/feeds/packages/net findet sich das Verzeichnis von olsr. Dies kann einfach ersetzt werden, bspw. durch http://absorb.it/software/opennet/ondataservice/olsrd_0.6.2.tgz oder http://absorb.it/software/opennet/ondataservice/olsrd_0.6.1.tgz (je nach gewünschter olsrd-Version). Im Verzeichnis ist ein patch (023), welcher die Erweiterungen einbindet. Ausserdem ist das Makefile für die Erweiterungen modifiziert.
+
Im Verzeichnis (backfire)/feeds/routing/olsrd findet sich das Verzeichnis von olsr. Dies kann einfach ersetzt werden, bspw. durch http://absorb.it/software/opennet/ondataservice/olsrd-0.6.6.2.tgz oder http://absorb.it/software/opennet/ondataservice/olsrd-0.6.8.tgz (je nach gewünschter olsrd-Version). Im Verzeichnis ist ein patch (023), welcher die Erweiterungen einbindet. Ausserdem ist das Makefile für die Erweiterungen modifiziert.
  
 
= Ergänzung auf eigenem AP (neue Firmware) =
 
= Ergänzung auf eigenem AP (neue Firmware) =
Zeile 489: Zeile 511:
 
|wlan_noise
 
|wlan_noise
 
|
 
|
|-95
+
| -95
 
|-
 
|-
 
|wlan_bitrate
 
|wlan_bitrate

Aktuelle Version vom 13. April 2019, 12:12 Uhr

Team
[[Image:|90px]]
Ondataservice
Treffen:
Opennet Datenservice
Mitglieder:
Rene E.
Kontakt:
admin@opennet-initiative.de


Inhaltsverzeichnis

[Bearbeiten] Vorbemerkungen

Dieser Dienst liefert laufend Daten zum Status von Opennet Access Points für die Auswertung im Opennet Wiki und weiteren darauf aufbauenden Diensten wie die Opennet Karten. Daten werden durch ein OLSR-Plugin auf jedem Accesspoint gesammelt und verbreitet und können später an jedem anderen Opennet-Knoten wieder eingesammelt werden. Technische Details findet ihr in den folgenden Abschnitten.

[Bearbeiten] olsr ondataservice plugin

Das Plugin dient zur Verteilung der Konfigurations- und Statusinformationen im Opennet. Es gibt zwei Versionen, eine light-version, die nur Daten senden kann und eine komplette Version, die Daten senden und emfangen kann. Als Datenquelle nutzt die Light-Version ein JSON-Datenfile, die komplette Version eine SQlite3-Datenbank.

Die aktuelle Version (binaries und ipk-pakete) kann unter http://absorb.it/software/opennet/ondataservice/ heruntergeladen werden.

[Bearbeiten] Konfiguration: ondataservice_light

Standard-Version die als Teil der neuen Firmware ausgeliefert wird (keine Möglichkeit zum Empfangen der Daten, nur senden)

 PlParam "interval" "SEC"
	interval for sending the DATABASE in seconds.
	(default: 10800 - 3 hours)
 
 PlParam "inc_interval" "SEC"
    interval for continously sending TABLES from DATABASE in seconds.
    (default: 5 seconds)
 
 PlParam "database" "/path/to/database"
        Path to the database (json)

[Bearbeiten] Konfiguration: ondataservice (full version)

Voll-Version mit SQlite-Schnittstelle, Kann Daten senden und empfangen.

 PlParam "interval" "SEC"
	interval for sending the DATABASE in seconds.
	(default: 10800 - 3 hours)
 
 PlParam "inc_interval" "SEC"
    interval for continously sending TABLES from DATABASE in seconds.
    (default: 5 seconds)
 
 PlParam "cleanup_interval" "SEC"
    Interval how often DATABASE should be checked for old DATASETS.
    (default: 1800 - 0.5 hours)
 
 PlParam "timeout" "SEC"
	validity time for received NAME messages in seconds.
	(default: 21600 - 6 hours)
 
 PlParam "database" "/path/to/database"
        Path to the database
 
 PlParam "receive" "false|true"
        Set to true if you like to receive and store the values.
        Otherwise the values from other Nodes are ignored.
        (default: false - not stored)
 
 PlParam "spreadall" "false|true"
        Set to true if you like to spread all data from the database.
        (default: false - only data for own mainip is spreaded)

[Bearbeiten] Übertragung der Statusinformationen

Datenaustausch im Überblick (Quelle)

Abhängig von der Firmware-Version werden die Informationen jedes APs entweder per Push (neue Firmware, via OLSR) oder per Pull (alte Firmware, Abfrage via http) übertragen.

[Bearbeiten] Aktuelle Firmware

Dieser Modus gilt für die Firmware-Versionen ab 0.3-8 und die AirOS-Anpassungen ab Version opennet0.5.

Das olsrd-Plugin ondataservice versendet periodisch die lokalen AP-Informationen in Form eines JSON-Datensatzes.

[Bearbeiten] Alternativer HTTP-Abruf

Zusätzlich stellen die Accesspoints seit der Firmware v0.5.5 denselben Datensatz (im JSON-Format) unter http://192.168.x.y/opennet-ondataservice-export.json zur Verfügung. Dies erlaubt die zentrale Abfrage der Daten ohne den OLSR-ondataservice. Somit umgehen wir unerforschte Verteilungsprobleme mit den ondataservice-Plugin und bereiten den langsamen Umstieg auf OLSR2 (bisher ohne einen mit ondataservice vergleichbarem Transportmechanismus) vor. Die Bereitstellung via HTTP lässt sich auf alten Accesspoints folgendermaßen aktivieren:

ln -s ../tmp/database.json /www/opennet-ondataservice-export.json

Die Daten werden täglich von der Opennet API abgerufen und in den zentralen Datenbestand eingepflegt.

[Bearbeiten] Ältere Firmware

Dies gilt beispielsweise für Version ON5.

Auf Server/heartofgold läuft täglich ein Skript [1] welches die Daten der Opennet-Accesspoints mit alter Firmware abfragt. Dazu werden von allen 192.168.x.y-Hosts, die heartofgold erreichen kann, die URL /cgi-bin-status.html abgerufen (Beispiel).

Die Kurzzusammenfassung des letzten Abrufs ist auf Server/heartofgold im Verzeichnis /usr/local/sbin/APData/lastrun.log zu finden. Die folgenden Markierung sind dabei besonders interessant:

  • old statuspage missing: die Seite /cgi-bin-status.html ist nicht abrufbar -> auf diesem Weg sind keine Informationen abrufbar
  • ++done: die Abfrage war erfolgreich

Die hierbei gesammelten Daten aller alten APs werden von dem ondataservice-Plugin auf Server/heartofgold via OLSR verteilt (spreadall=true). Dies erlaubt jedem Datensammler den kompletten Datensatz (alte und neue Firmware) allein aus den OLSR-Daten zu beziehen.

[Bearbeiten] Schnittstelle zum Wiki

Auf Server/on-v6 (Webserver) läuft ein ondataservice-Plugin, welches alle empfangenen Daten speichert. Diese werden über die Extension:APData (vgl. auch [2]) zur Verfügung gestellt und können im Wiki genutzt werden.

Weiterhin wird über die Vorlage:FirmwareOverview eine Übersicht über die aktuellen Firmware-Stände erzeugt. Diese Übersicht ist unter Firmware_Status zu finden.

[Bearbeiten] Quellcode / Eigenbau

Voraussetzung ist sqlite-dev. Installation auf Debian: apt-get install libsqlite3-dev

[Bearbeiten] ondataservice plugin

git clone git://absorb.it/olsrd
cd olsrd
make ondataservice
make ondataservice_light

[Bearbeiten] olsr mit plugin als Teil von openwrt backfire

Im Verzeichnis (backfire)/feeds/routing/olsrd findet sich das Verzeichnis von olsr. Dies kann einfach ersetzt werden, bspw. durch http://absorb.it/software/opennet/ondataservice/olsrd-0.6.6.2.tgz oder http://absorb.it/software/opennet/ondataservice/olsrd-0.6.8.tgz (je nach gewünschter olsrd-Version). Im Verzeichnis ist ein patch (023), welcher die Erweiterungen einbindet. Ausserdem ist das Makefile für die Erweiterungen modifiziert.

[Bearbeiten] Ergänzung auf eigenem AP (neue Firmware)

[Bearbeiten] Anpassung per Hand

  1. die Datei status_values.sh in das (evtl. zu erstellende) Verzeichnis /etc/cron.daily/ kopieren
  2. das zur Hardware und olsrd-Version passende ondataservices_light-plugin installieren
  3. das plugin aktivieren (achtung, olsrd muss neu gestartet werden, also nich remote machen)
section=$(uci add olsrd LoadPlugin)
uci set olsrd.$section.library=olsrd_ondataservice_light.so.0.1
uci commit olsrd
/etc/init.d/olsrd restart

[Bearbeiten] Firmware-Update

Ab Version 0.3-8 ist ondataservice_light Teil der neuen Opennet Firmware. Die AirOS-Anpassung für Opennet enthält ab Version opennet0.5 ondataservice_light.

[Bearbeiten] Tabellen-Übersicht

[Bearbeiten] nodes

PRIMARY KEY (mainip) ON CONFLICT REPLACE

Feld-Name Bsp. Alte Firmware Bsp. Neue Firmware
originator 172.16.0.23
mainip 192.168.1.243 192.168.2.19
sys_ver Linux 2.6.32.27
sys_board 0x0467/42 Atheros AR9132 rev 2
sys_cpu MIPS 24Kc V7.4
sys_mem 29536
sys_uptime 20 days, 17:03 1801658.05
sys_load 0.27, 0.12, 0.10 0.35 0.09 0.03
sys_free 2716
sys_watchdog 1
sys_os_type OpenWrt OpenWrt
sys_os_name WHITE RUSSIAN (0.9-ON5) backfire
sys_os_rel 10.03
sys_os_ver 43.15-r26741
sys_os_arc ar71xx
sys_os_insttime 1310573386
on_core_ver 0.11ipkg-13 0.3-7
on_core_insttime 1310573392
on_packages on-usergw on-wifidog on-openvpn
on_id 1.243 2.19
on_olsrd_status 1
on_olsrd_mainip 192.168.1.243 192.168.2.19
on_wifidog_status 0 1
on_wifidog_id AP2.19
on_vpn_cn 2.19.aps.on
on_vpn_status 1 1
on_vpn_gw 192.168.0.248 192.168.0.244
on_vpn_autosearch 0 0
on_vpn_sort metric
on_vpn_gws 192.168.0.248:y:8 192.168.0.247:y:8 192.168.0.254:y:7 192.168.0.244:y:1 192.168.0.254:y:12 192.168.0.248:y:16 192.168.0.247:y:1
on_vpn_blist
on_ugw_status 0 0
on_ugw_enabled 0 0
on_ugw_possible 0
on_ugw_tunnel 0
on_ugw_connected
on_ugw_presetips 192.168.0.247 192.168.0.251
on_ugw_presetnames erina.on-i.de nagare.on-i.de
on_old_autoadapttxpwr 0
on_old_remoteconf 1
db_time Mon Oct 31 15:53:01 2011 Mon Oct 31 14:37:09 UTC 2011
db_epoch 1320072781 1320071825
db_ver 0.1 0.2
db_update 1320081762 1320071825

[Bearbeiten] ifaces

PRIMARY KEY (mainip, if_name) ON CONFLICT REPLACE

Feld-Name Bsp. Alte Firmware Bsp. Neue Firmware
originator 192.168.10.3 192.168.1.23
mainip 192.168.1.171 192.168.1.23
if_name eth1:0 wlan0
if_type_bridge
if_type_bridgedif 1
if_hwaddr 00:16:B6:B1:0A:33 54:e6:fc:cc:e1:74
ip_label
ip_addr 192.168.34.171/255.255.254.0
ip_broadcast 192.168.35.255
on_networks
on_zones
on_olsr 0
dhcp_start
dhcp_limit
dhcp_leasetime
dhcp_fwd
ifstat_collisions 0
ifstat_rx_compressed 0
ifstat_rx_errors 0
ifstat_rx_length_errors 0
ifstat_rx_packets 576377
ifstat_tx_carrier_errors 0
ifstat_tx_errors 0
ifstat_tx_packets 977111
ifstat_multicast 0
ifstat_rx_crc_errors 0
ifstat_rx_fifo_errors 0
ifstat_rx_missed_errors 0
ifstat_tx_aborted_errors 0
ifstat_tx_compressed 0
ifstat_tx_fifo_errors 0
ifstat_tx_window_errors 0
ifstat_rx_bytes 50419237
ifstat_rx_dropped 0
ifstat_rx_frame_errors 0
ifstat_rx_over_errors 0
ifstat_tx_bytes 1264554549
ifstat_tx_dropped 0
ifstat_tx_heartbeat_errors 0
wlan_essid frieda23.opennet-initiative.de
wlan_apmac 54:E6:FC:CC:E1:74
wlan_type nl80211
wlan_hwmode 802.11bgn
wlan_mode Master
wlan_channel 6
wlan_freq 2.437
wlan_txpower 18
wlan_signal ?
wlan_noise -95
wlan_bitrate 0.0
wlan_crypt WEP Open System (NONE)
wlan_vaps yes
db_ver 0.1 0.2
db_update 1320217469 1320240220
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge