Ondataservice: Unterschied zwischen den Versionen
(→Ältere Firmware) |
Lars (Diskussion | Beiträge) (Hinweis auf http-Transport) |
||
(6 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 9: | Zeile 9: | ||
= Vorbemerkungen = | = 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 | + | 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 = | ||
Zeile 63: | Zeile 63: | ||
</pre> | </pre> | ||
− | + | = Übertragung der Statusinformationen = | |
− | + | [[Image:ondataservice.png|thumb|Datenaustausch im Überblick ([[Media:ondataservice.dia|Quelle]])]] | |
− | + | ||
− | [[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 == | |
''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. | ||
− | === | + | === 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 [[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. | 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 '' | + | 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 [[Server/heartofgold]] im Verzeichnis ''/usr/local/sbin/APData/lastrun.log'' zu finden. | Die Kurzzusammenfassung des letzten Abrufs ist auf [[Server/heartofgold]] im Verzeichnis ''/usr/local/sbin/APData/lastrun.log'' zu finden. | ||
Zeile 90: | Zeile 96: | ||
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. | 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. | + | 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 | + | git clone git://absorb.it/olsrd |
− | cd olsrd | + | 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/ | + | 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) = |
Aktuelle Version vom 13. April 2019, 13: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
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
- die Datei status_values.sh in das (evtl. zu erstellende) Verzeichnis /etc/cron.daily/ kopieren
- das zur Hardware und olsrd-Version passende ondataservices_light-plugin installieren
- 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 |