Ondataservice
Team |
[[Image:|90px]] Ondataservice |
Treffen: |
Opennet Datenservice |
Mitglieder: Rene E. |
Kontakt: admin@opennet-initiative.de |
Inhaltsverzeichnis |
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 Access Points gesammelt und verbreitet und können später an jedem Opennet Knoten wieder eingesammelt werden. Technische Details findet ihr in den folgenden Abschnitten.
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.
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)
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)
Aktuelle Installationen
Ü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.
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.
Ä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 inez 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.
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.
Quellcode / Eigenbau
Voraussetzung ist sqlite-dev. Installation auf Debian: apt-get install libsqlite3-dev
ondataservice plugin
git clone git://absorb.it/olsrd cd olsrd make ondataservice make ondataservice_light
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 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)
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
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.
Tabellen-Übersicht
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 |
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 |