Opennet Firmware für Fortgeschrittene: Unterschied zwischen den Versionen

Aus Opennet
Wechseln zu: Navigation, Suche
("set" statt "show")
(verkürzter Dateipfad für remote-syslog, logrotate-Konfiguration)
Zeile 94: Zeile 94:
 
$UDPServerRun 514
 
$UDPServerRun 514
  
$template RemoteHost,"/var/log/opennet-hosts/%HOSTNAME%/%$YEAR%/%$MONTH%/%$DAY%/syslog.log"
+
$template RemoteHost,"/var/log/opennet-hosts/%HOSTNAME%/syslog.log"
  
 
$RuleSet remote
 
$RuleSet remote
Zeile 101: Zeile 101:
 
$DefaultRuleset local
 
$DefaultRuleset local
 
$RuleSet local
 
$RuleSet local
 +
</pre>
 +
 +
Hinzu kommt noch eine logrotate-Konfiguration (/etc/logrotate.d/opennet-remote-syslog) für wöchentliche Kompression und Löschung nach einem Jahr:
 +
<pre>
 +
/var/log/opennet-hosts/*/*.log {
 +
        weekly
 +
        rotate 52
 +
        compress
 +
        delaycompress
 +
        missingok
 +
}
 
</pre>
 
</pre>
  

Version vom 25. Februar 2016, 01:37 Uhr

Inhaltsverzeichnis

Überblick

Die folgenden Hinweise zu erweiterten Anwendungsfällen der Opennet (bzw. Openwrt) Firmware sind meist nicht für Einsteiger geeignet. Komm vielleicht einfach zu unseren regelmäßigen Treffen, falls du Fragen dazu haben solltest.

Monitoring eines AP

Einrichtung auf dem AP

Grundlegendes Monitoring (alle Firmware-Versionen)

Das weitverbreitete Monitoring-System munin ist leicht auf den APs einzurichten:

opkg update
opkg install muninlite
/etc/init.d/xinetd enable
/etc/init.d/xinetd start

Nun lauscht fortan auf Port 4949 der inet-Daemon, welcher bei Bedarf das lokale muninlite startet, um entfernte Anfragen zu beantworten.

Erweitertes Monitoring

Im Vergleich zum grundlegenden Monitoring (siehe oben) werden folgende zusätzlichen Daten erfasst:

  • ath9k: Übertragungsgeschwindigkeiten und Ereignisse
  • olsrd: Verbindungsqualität und Ping-Zeiten zu Nachbarn; Routing-Umgebung
  • WLAN-Kanalbelegung

Firmware v0.5.2 oder später

Installiere im Menü Opennet -> Basis -> Module das Paket on-monitoring.

Firmware v0.4.5 bis v0.5.1

In den openwrt-Basisversionen der älteren Firmware-Versionen ist leider nicht das Paket micropython enthalten, das für die Monitoring-Plugins erforderlich ist.

opkg update
opkg install \
  http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/packages/libffi_3.0.13-1_ar71xx.ipk \
  http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/packages/micropython_1.4.5-20150827-936e25b164d837fc91e4bafd76580e747b235dff-1_ar71xx.ipk \
  http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/packages/micropython-lib_0.5-20150827-bfbbf85a181d84e2494ea6f15be311734666bf67-1_ar71xx.ipk \
  http://downloads.on/openwrt/stable/0.5.2/ar71xx/packages/opennet/on-monitoring_0.5.2-1697_ar71xx.ipk

Die Fehlermeldungen (postinstall-Skripte) sind akzeptabel, erfordern jedoch ein wenig Nachbehandlung:

(. /usr/lib/opennet/on-monitoring.sh; enable_suggested_munin_plugin_names wireless_channel_occupation_)
sed -i '/^PLUGINS=".*irqstats"$/s/irqstats/irqstats plugindir_/' /usr/sbin/munin-node
/etc/init.d/xinetd enable
/etc/init.d/xinetd start

Datensammlung

Falls der AP auf dem opennet-internen munin-Server howmei erfasst werden soll, dann trage dort in der Datei /etc/munin/munin-conf.d/opennet.conf beispielsweise folgende Zeilen ein:

[rostock;AP1.79]
    address 192.168.1.79
    use_node_name yes

Fortan wird howmei deinen AP im Fünf-Minuten-Takt nach seinem aktuellen Zustand befragen (z.B. Netzwerkaktivität, Uptime, Load, ...).

Du kannst natürlich auch auf einem eigenen Server einen munin-Sammler konfigurieren, der deinen AP abfragt.

Bedenke bitte vor der Einrichtung von munin auf einem AP, dass dadurch private Daten (z.B. Verkehrsaufkommen im Tagesverlauf) sichtbar werden können. Überwache also keinesfalls fremde APs ohne explizites Einverständnis der Nutzer.

Patch aus dem Repository anwenden

Falls ein Problem einer Release-Version mit einem Patch/Commit aus dem Repository zu beheben ist, dann kann folgender Aufruf verwendet werden, um einen oder mehrere Commits auf die aktuelle Firmware auf einem AP anzuwenden:

on-function apply_repository_patch GIT_COMMIT_HASH [..]

Ein Patch kann auch wieder entfernt werden:

 ON_PATCH_ARGS=--reverse on-function apply_repository_patch GIT_COMMIT_HASH [..]

Die Funktion apply_repository_patch ist erst nach dem Firmware Release v0.5.2 verfügbar. Um die obige Funktion bereits in Version 0.5.2 einzusetzen, ist folgender Ablauf auszuführen (dabei wird der Commit für dieses Feature angewandt):

opkg update && opkg install patch
wget -q -O - http://dev.on-i.de/changeset/4eb43e138606da459fcf9048c3cde5aa7634e23d/on_firmware?format=diff | patch -p4 --directory /
on-function clear_caches

Workarounds für bekannte Probleme anwenden

Für sehr spezifische Umstände/Geräte/Situationen sind Workarounds erforderlich, um die gewünschte Funktionalität herzustellen. Diese Workarounds sind nicht Teil der Firmware, da sie:

  • nur unter eng begrenzten Umständen hilfreich bzw. unschädlich sind,
  • eine schlechte Lösung darstellen,
  • oder nicht ohne technisches Detailwissen verwendet werden sollten.

Damit diese Workarounds nicht auf individuellen Datenträgern herumliegen, werden sie im Firmware-Repository zentral gelagert. Wer einen der Workarounds anwenden möchte, möge sich das jeweilige Skript anschauen und dann selbständig entscheiden, ob dieses Skript sein Problem löst.

Liste der Workarounds im Firmware-Repository: https://dev.opennet-initiative.de/browser/on_firmware/opennet/workarounds

Remote Syslog

Remote Logging kann sinnvoll sein, um problematische Zustände auf APs zu analysieren. Die APs senden dabei ihre Log-Meldungen nicht nur an den lokalen Buffer (verfügbar via logread), sondern auch an den konfigurierten syslog-Server. So sind beispielweise auch nach einem Neustart des AP seine Fehlermeldungen nachvollziehbar.

Empfänger / Server

Auf Server/howmei läuft ein syslog-Server, der empfänglich für fremde Nachrichten ist.

Die Ergebnisse für jeden Host liegen unter /var/log/opennet-hosts/....

Die einzige notwendige Konfigurationsänderung ist in der neu zu erstellenden Datei /etc/rsyslog.d/opennet-hosts.conf zu finden:

$ModLoad imtcp
$InputTCPServerBindRuleset remote
$InputTCPServerRun 514

$ModLoad imudp
$InputUDPServerBindRuleset remote
$UDPServerRun 514

$template RemoteHost,"/var/log/opennet-hosts/%HOSTNAME%/syslog.log"

$RuleSet remote
*.* ?RemoteHost

$DefaultRuleset local
$RuleSet local

Hinzu kommt noch eine logrotate-Konfiguration (/etc/logrotate.d/opennet-remote-syslog) für wöchentliche Kompression und Löschung nach einem Jahr:

/var/log/opennet-hosts/*/*.log {
        weekly
        rotate 52
        compress
        delaycompress
        missingok
}

Sender / Client

Ein auf OpenWrt basierender Client benötigt folgende Einstellungen:

uci set "system.@system[0].log_ip=192.168.10.13"
reload_config

Alternativ ist auch im Web-Interface das Logging aktivierbar: Administration -> System -> Logging</pre> (die Host-IP 192.168.10.13 eintragen). Anschließend muss reload_config per Hand ausgeführt werden.

Probeweiser Meldungsversand:

echo foo | logger
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge