<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://docs.opennet-initiative.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Markus</id>
	<title>Opennet - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.opennet-initiative.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Markus"/>
	<link rel="alternate" type="text/html" href="https://docs.opennet-initiative.de/wiki/Spezial:Beitr%C3%A4ge/Markus"/>
	<updated>2026-10-07T07:22:23Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://docs.opennet-initiative.de/index.php?title=Opennet_Firmware_f%C3%BCr_Fortgeschrittene&amp;diff=29245</id>
		<title>Opennet Firmware für Fortgeschrittene</title>
		<link rel="alternate" type="text/html" href="https://docs.opennet-initiative.de/index.php?title=Opennet_Firmware_f%C3%BCr_Fortgeschrittene&amp;diff=29245"/>
		<updated>2016-09-05T19:44:14Z</updated>

		<summary type="html">&lt;p&gt;Markus: Monitoring Datensammlung aktualisiert, da jetzt Daten von allen APs abgefragt werden&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Überblick =&lt;br /&gt;
Die folgenden Hinweise zu erweiterten Anwendungsfällen der Opennet (bzw. Openwrt) Firmware sind meist nicht für Einsteiger geeignet. Komm vielleicht einfach zu unseren [[Aktuelle Ereignisse|regelmäßigen Treffen]], falls du Fragen dazu haben solltest.&lt;br /&gt;
&lt;br /&gt;
= Monitoring eines AP =&lt;br /&gt;
== Einrichtung auf dem AP ==&lt;br /&gt;
&lt;br /&gt;
=== Grundlegendes Monitoring (alle Firmware-Versionen) ===&lt;br /&gt;
Das weitverbreitete Monitoring-System [http://munin-monitoring.org munin] ist leicht auf den APs einzurichten:&lt;br /&gt;
&lt;br /&gt;
 opkg update&lt;br /&gt;
 opkg install muninlite&lt;br /&gt;
 /etc/init.d/xinetd enable&lt;br /&gt;
 /etc/init.d/xinetd start&lt;br /&gt;
&lt;br /&gt;
Nun lauscht fortan auf Port 4949 der inet-Daemon, welcher bei Bedarf das lokale muninlite startet, um entfernte Anfragen zu beantworten.&lt;br /&gt;
&lt;br /&gt;
=== Erweitertes Monitoring ===&lt;br /&gt;
Im Vergleich zum grundlegenden Monitoring (siehe oben) werden folgende zusätzlichen Daten erfasst:&lt;br /&gt;
* [https://github.com/munin-monitoring/contrib/pull/668 ath9k]: Übertragungsgeschwindigkeiten und Ereignisse&lt;br /&gt;
* [https://github.com/munin-monitoring/contrib/pull/664 olsrd]: Verbindungsqualität und Ping-Zeiten zu Nachbarn; Routing-Umgebung&lt;br /&gt;
* [https://github.com/munin-monitoring/contrib/pull/663 WLAN: Kanalbelegung]&lt;br /&gt;
* [https://github.com/munin-monitoring/contrib/pull/723 WLAN: Signal/Noise]&lt;br /&gt;
* WLAN: aktuell aktiver Kanal&lt;br /&gt;
* Ping-Zeit zum aktiven Gateway (via Tunnel)&lt;br /&gt;
* Anzahl der DHCP-Leases auf dem LAN-Interface&lt;br /&gt;
&lt;br /&gt;
==== Firmware v0.5.2 oder später ====&lt;br /&gt;
Web-Interface: installiere im Menü &#039;&#039;Opennet -&amp;gt; Basis -&amp;gt; Module&#039;&#039; das Paket &#039;&#039;on-monitoring&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Konsole: &amp;lt;tt&amp;gt;on-function install_from_opennet_repository on-monitoring&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Firmware v0.4.5 bis v0.5.1 ====&lt;br /&gt;
In den openwrt-Basisversionen der älteren Firmware-Versionen ist leider nicht das Paket &#039;&#039;micropython&#039;&#039; enthalten, das für die Monitoring-Plugins erforderlich ist.&lt;br /&gt;
 opkg update&lt;br /&gt;
 opkg install \&lt;br /&gt;
   http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/packages/libffi_3.0.13-1_ar71xx.ipk \&lt;br /&gt;
   http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/packages/micropython_1.4.5-20150827-936e25b164d837fc91e4bafd76580e747b235dff-1_ar71xx.ipk \&lt;br /&gt;
   http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/packages/micropython-lib_0.5-20150827-bfbbf85a181d84e2494ea6f15be311734666bf67-1_ar71xx.ipk \&lt;br /&gt;
   http://downloads.on/openwrt/stable/0.5.2/ar71xx/packages/opennet/on-monitoring_0.5.2-1697_ar71xx.ipk&lt;br /&gt;
Die Fehlermeldungen (postinstall-Skripte) sind akzeptabel, erfordern jedoch ein wenig Nachbehandlung:&lt;br /&gt;
 (. /usr/lib/opennet/on-monitoring.sh; enable_suggested_munin_plugin_names wireless_channel_occupation_)&lt;br /&gt;
 sed -i &#039;/^PLUGINS=&amp;quot;.*irqstats&amp;quot;$/s/irqstats/irqstats plugindir_/&#039; /usr/sbin/munin-node&lt;br /&gt;
 /etc/init.d/xinetd enable&lt;br /&gt;
 /etc/init.d/xinetd start&lt;br /&gt;
&lt;br /&gt;
== Datensammlung ==&lt;br /&gt;
Ist das Monitoring installiert befragt &#039;&#039;howmei&#039;&#039; deinen AP im Fünf-Minuten-Takt nach seinem aktuellen Zustand (z.B. Netzwerkaktivität, Uptime, Load, ...).&lt;br /&gt;
&lt;br /&gt;
Du kannst natürlich auch auf einem eigenen Server einen munin-Sammler konfigurieren, der deinen AP abfragt.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Patch aus dem Repository anwenden =&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 on-function apply_repository_patch GIT_COMMIT_HASH [..]&lt;br /&gt;
&lt;br /&gt;
Ein Patch kann auch wieder entfernt werden:&lt;br /&gt;
&lt;br /&gt;
  ON_PATCH_ARGS=--reverse on-function apply_repository_patch GIT_COMMIT_HASH [..]&lt;br /&gt;
&lt;br /&gt;
Die Funktion &#039;&#039;apply_repository_patch&#039;&#039; 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 [https://dev.opennet-initiative.de/changeset/4eb43e1/on_firmware Commit für dieses Feature] angewandt):&lt;br /&gt;
&lt;br /&gt;
 opkg update &amp;amp;&amp;amp; opkg install patch&lt;br /&gt;
 wget -q -O - http://dev.on-i.de/changeset/4eb43e138606da459fcf9048c3cde5aa7634e23d/on_firmware?format=diff | patch -p4 --directory /&lt;br /&gt;
 on-function clear_caches&lt;br /&gt;
&lt;br /&gt;
= Pakete aus dem Opennet-Repository installieren / explizite Kernel-Abhängigkeiten =&lt;br /&gt;
Wir bauen die Opennet-Firmware zwar aus den openwrt-Quellen ohne Kernel-Anpassungen, nichtsdestotrotz hat jedoch der von uns erzeugte Kernel eine andere Build-ID, als der Kernel aus dem dazugehörigen Openwrt-Release. Daher resultiert der Versuch, ein Paket mit Abhängigkeiten vom Kernel aus dem openwrt-Repository zu installieren, etwa in folgender Fehlermeldung:&lt;br /&gt;
 root@AP:~# opkg install tinc&lt;br /&gt;
 Installing tinc (1.0.26-1) to root...&lt;br /&gt;
 Downloading http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/packages/tinc_1.0.26-1_ar71xx.ipk.&lt;br /&gt;
 Collected errors:&lt;br /&gt;
  * satisfy_dependencies_for: Cannot satisfy the following dependencies &lt;br /&gt;
 for tinc:&lt;br /&gt;
  *      kernel (= 3.18.20-1-7bed08fa9c06eb8089e82c200340ec66) *&lt;br /&gt;
  * opkg_install_cmd: Cannot install package tinc.&lt;br /&gt;
&lt;br /&gt;
Sofern das gewünschte Paket Teil des opennet-Builds ist, lässt es sich folgendermaßen installieren:&lt;br /&gt;
 on-function install_from_opennet_repository tinc&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zum üblichen Aufruf von opkg gibt es dabei keine Meldungen auf der Standardausgabe, sofern der Installationprozess fehlerfrei ablief.&lt;br /&gt;
&lt;br /&gt;
= Workarounds für bekannte Probleme anwenden =&lt;br /&gt;
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:&lt;br /&gt;
* nur unter eng begrenzten Umständen hilfreich bzw. unschädlich sind,&lt;br /&gt;
* eine schlechte Lösung darstellen,&lt;br /&gt;
* oder nicht ohne technisches Detailwissen verwendet werden sollten.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Liste der Workarounds im [[Opennet_DEV|Firmware-Repository]]: https://dev.opennet-initiative.de/browser/on_firmware/opennet/workarounds&lt;br /&gt;
&lt;br /&gt;
Das Auflisten, Installieren und Entfernen der obigen Workarounds ist seit v0.5.3 über die Kommandzeile möglich, z.B.:&lt;br /&gt;
&lt;br /&gt;
  on-workarounds install on_workaround_wifi_master_hangs minutely&lt;br /&gt;
&lt;br /&gt;
= Remote Syslog =&lt;br /&gt;
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 &#039;&#039;logread&#039;&#039;), sondern auch an den konfigurierten syslog-Server. So sind beispielweise auch nach einem Neustart des AP seine Fehlermeldungen nachvollziehbar.&lt;br /&gt;
&lt;br /&gt;
== Empfänger / Server ==&lt;br /&gt;
Auf [[Server/howmei]] läuft ein syslog-Server, der empfänglich für fremde Nachrichten ist.&lt;br /&gt;
&lt;br /&gt;
Die Ergebnisse für jeden Host liegen unter &#039;&#039;/var/log/opennet-hosts/...&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die einzige notwendige Konfigurationsänderung ist in der neu zu erstellenden Datei &#039;&#039;/etc/rsyslog.d/opennet-hosts.conf&#039;&#039; zu finden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ModLoad imtcp&lt;br /&gt;
$InputTCPServerBindRuleset remote&lt;br /&gt;
$InputTCPServerRun 514&lt;br /&gt;
&lt;br /&gt;
$ModLoad imudp&lt;br /&gt;
$InputUDPServerBindRuleset remote&lt;br /&gt;
$UDPServerRun 514&lt;br /&gt;
&lt;br /&gt;
$template RemoteHost,&amp;quot;/var/log/opennet-hosts/%HOSTNAME%/syslog.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$RuleSet remote&lt;br /&gt;
*.* ?RemoteHost&lt;br /&gt;
&lt;br /&gt;
$DefaultRuleset local&lt;br /&gt;
$RuleSet local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinzu kommt noch eine logrotate-Konfiguration (/etc/logrotate.d/opennet-remote-syslog) für tägliche Kompression und Löschung nach einem Quartal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/var/log/opennet-hosts/*/*.log {&lt;br /&gt;
        daily&lt;br /&gt;
        rotate 91&lt;br /&gt;
        compress&lt;br /&gt;
        delaycompress&lt;br /&gt;
        missingok&lt;br /&gt;
        sharedscripts&lt;br /&gt;
        postrotate&lt;br /&gt;
                service rsyslog rotate &amp;gt;/dev/null&lt;br /&gt;
        endscript&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sender / Client ==&lt;br /&gt;
Ein auf OpenWrt basierender Client benötigt folgende Einstellungen:&lt;br /&gt;
 uci set &amp;quot;system.@system[0].log_ip=192.168.10.13&amp;quot;&lt;br /&gt;
 reload_config&lt;br /&gt;
&lt;br /&gt;
Alternativ ist auch im Web-Interface das Logging aktivierbar: &#039;&#039;Administration -&amp;gt; System -&amp;gt; Logging&amp;lt;/pre&amp;gt;&#039;&#039; (die Host-IP &#039;&#039;192.168.10.13&#039;&#039; eintragen). Anschließend muss &#039;&#039;reload_config&#039;&#039; per Hand ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
Probeweiser Meldungsversand:&lt;br /&gt;
 echo foo | logger&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Firmware]]&lt;/div&gt;</summary>
		<author><name>Markus</name></author>
	</entry>
</feed>