Nun setze ich btsync schon seit einigen Wochen ein und muss sagen, dass ich sehr zufrieden damit bin. Mit der ersten öffentlichen Version gab es immer mal wieder CRC Fehler bei den Dateien, seit der neuen Version (1.0.134) ist dies aber nicht mehr aufgetaucht. Der Raspberry Pi ist dafür eine ideale Plattform, auch wenn die Geschwindigkeit beim syncen nicht besonders hoch ist. Ich nutze als Sync Device einfach einen USB Stick, wodurch nicht ständig eine externe HD laufen muss. Bisher eine der besten und einfachsten Lösungen um Daten automatisch zu syncen ohne auf fremdgehostete tools zurückgreifen zu müssen. Ja, rsync ist auch gut hat aber hat bei mir ein ganz anderes Einsatzszenario.
Kurztipp: Piwik Standortbestimmung via Apache Modul
Will man bei Piwik (1.11.1) die Standortbestimmung über das Apache Modul nutzen sind unter Debian folgende Schritte nötig:
apt-get install libapache2-mod-geoip /etc/init.d/apache2 restart
In der /etc/apache2/mods-enabled/geoip.conf noch den Pfad zum GeoIPDBFile anpassen, bei mir schaut die Datei dann so aus:
<IfModule mod_geoip.c> GeoIPEnable On # GeoIPDBFile /usr/share/GeoIP/GeoIP.dat GeoIPDBFile /var/www/piwik/misc/GeoIPCity.dat GeoIPScanProxyHeaders On </IfModule>
Danach sollte Piwik diverse Städte in der Besucherübersicht anzeigen. Funktioniert auch mit eingeschalteter Anonymisierung der Besucherip.
Notiz: Pacemaker resource disable migration
$ crm ra info pengine ... is-managed-default (boolean, [true]): Should the cluster start/stop resources as required maintenance-mode (boolean, [false]): Should the cluster monitor resources and start/stop them as required
Ein kleiner Unterschied, aber nur ein kleiner.
Damit setzen wir den Cluster in den Maintenance Mode:
$ crm configure property maintenance-mode=true
Link:
http://oss.clusterlabs.org/pipermail/pacemaker/2011-March/009429.html
Kurztipp: Openelec RPI hohe CPU Last
Bei mir läuft noch zusätzlich tvheadend, daher ist die Last eh noch ein bisschen höher. Ein bisschen Abhilfe gegen die hohe Load hat folgende Einstellung gebracht:
/storage/.xbmc/userdata/advancedsettings.xml
<advancedsettings> <network> <cachemembuffersize>5282880</cachemembuffersize> </network> <fanartheight>560</fanartheight> <thumbsize>256</thumbsize> <gui> <algorithmdirtyregions>3</algorithmdirtyregions> <nofliptimeout>0</nofliptimeout> </gui> <lookandfeel> <enablerssfeeds>false</enablerssfeeds> </lookandfeel> <bginfoloadermaxthreads>2</bginfoloadermaxthreads> </advancedsettings>
Das mit den RSS feeds sollte bekannt sein und muss eigentlich nicht extra mit in die Datei. Bringt jetzt nicht die Welt, aber bei mir ist die Last deutlich gesunken. Raspbmc läuft mit merklich weniger Last auf dem 2ten RPI. Auf das „Systeminfo“ von XBMC sollte man nicht viel geben, weil das allein schon die Last enorm nach oben treibt ;-).
Link:
http://archlinuxarm.org/forum/viewtopic.php?f=31&t=3004&start=70
Kurztipp: btsync auf dem Raspberry Pi mit Raspbmc
Wer bei btsync auf dem Raspberry mit Raspbmc folgende Ausgabe bekommt
$ ./btsync bash: ./btsync: No such file or directory
sollte einfach mal folgenden Symlink erzeugen
$ ln -s /lib/arm-linux-gnueabihf/ld-linux.so.3 /lib/ld-linux.so.3
danach sollte alles funktionieren.
./btsync --dump-sample-config > sync.conf
nicht vergessen und sync.conf anpassen vor dem Start.
Links:
http://forum.bittorrent.com/topic/17264-sync-on-ubuntu-touch-arm-device/
http://forum.bittorrent.com/topic/8746-i-can-not-execute-syncapp-arm-on-my-nas-based-on-sl3516-cpu/#entry28830
Notiz: Reset failcount bei pacemaker
Reset status und fail-count:
crm(live)resource# cleanup resource node
Grund war ein
„check_crm WARNING – : failover_ip failure detected, fail-count=1000000“
vom nagios plugin für Pacemaker. Eigentlich dachte ich, daß
crm configure rsc_defaults failure-timeout="10min"
reicht, damit der failcount nach 10 Minuten resetet wird, das hat aber leider nicht funktioniert.
vmmemctl unter Ubuntu
Mit den Vmware-tools und Ubuntu 12.04 kann es unter ungeklärten Umständen ein Problem geben. Das vmmemctl Modul wird nicht richtig installiert bzw. kompiliert. Beim Kompilieren der Vmware-tools nach einem Kernel Update erscheint die Meldung:
The module vmmemctl has already been installed on this system by another installer or package and will not be modified by this installer. Use the flag –clobber-kernel-modules=vmmemctl to override.
Das führt dazu das der Kernel Thread vmmemctl nicht läuft, weil das Modul vmmemctl fehlt. Das Modul dient dazu nicht mehr benötigten Speicher wieder freizugeben um ihn anderen VMs zur Verfügung zu stellen. Zum testen einfach mal auf der VM
$ ps aux|grep vmmemctl
eingeben. Abhilfe schafft ein
vmware-config-tools.pl –clobber-kernel-modules=vmmemctl,vsock,vmxnet3,vmci,pvscsi
Die anderen Module mit rein zunehmen schadet nicht. Die tauchten bei mir auch als Meldung beim kompilieren auf. Danach sollte der Prozess angezeigt werden.
$ ps aux|grep vmmemctl root 30933 0.0 0.0 0 0 ? S 13:57 0:00 [vmmemctl]
Hat man eine größere ESX Struktur kann ein Fehlen des Moduls durchaus einen spürbaren Einfluss auf die benötigte Hardware haben ;-).
Mehr Informationen dazu findet man z. B. unter http://yuridejager.wordpress.com/2012/02/27/enable-the-vmware-balloon-driver-vmmemctl-to-prevent-swapping-in-an-imported-linux-vm/
p.s. bei den open-vm-tools gibt es kein vmmemctl Modul.
Probleme nach libvirt Update
Sollte man bei KVM mit Portweiterleitung für VMs (z.B. iptables -t nat -A PREROUTING -p tcp -d 123.123.123.123 –dport 1234 -j DNAT –to-destination 192.168.99.99:22) arbeiten und folgende Debian Updates eingespielt haben:
[UPGRADE] libvirt-bin 0.8.3-5+squeeze2 -> 0.8.3-5+squeeze5
[UPGRADE] libvirt0 0.8.3-5+squeeze2 -> 0.8.3-5+squeeze5
[UPGRADE] python-libvirt 0.8.3-5+squeeze2 -> 0.8.3-5+squeeze5
Nach dem Einspielen aber bemerkt haben man , dass die Portweiterleitung nicht mehr funktioniert und man auch durch erneutes Eintragen der iptables/routing oder was auch immer für Regeln keinen Erfolgt erzielt, dann könnte tatsächlich ein Reboot des Hosts helfen.
längerer Kurztipp: Schutz gegen einfache DOS Attacken mit mod_evasive
Ein alter Hut, ich kannte es bis heute nicht. Mit mod_evasive kann man einfache DOS Angriffe blocken. Getestet mit dem guten, alten Squeeze.
$ apt-get install libapache2-mod-evasive $ a2enmod mod-evasive $ zless /usr/share/doc/libapache2-mod-evasive/README.gz $ mkdir /var/log/mod_evasive $ chown www-data /var/log/mod_evasive $ ln -s /usr/bin/mail /bin/mail $ joe /etc/apache2/mods-available/mod-evasive.conf <ifmodule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 DOSLogDir /var/log/mod_evasive DOSEmailNotify thisis@waste.land DOSWhitelist 127.0.0.1 </ifmodule> $ ln -s /etc/apache2/mods-available/mod-evasive.conf /etc/apache2/mods-enabled/mod-evasive.conf $ /etc/init.d/apache2 reload
Zum testen einfach mal irgendeine Seite aufrufen und ein paar mal schnell F5 drücken bis man ein 403 Forbidden erhält. Dann im logdir schauen und eigentlich sollte man auch eine mail bekommen. Im syslog sollte ein Eintrag der Art
Mar 14 11:36:15 webserver mod_evasive[15723]: Blacklisting address 123.123.123.123: possible DoS attack
aufauchen.
Mit DOSSystemCommand kann man noch einen Befehl definieren, der ausgeführt werden soll wenn eine IP geblockt wird, also z.B. iptables Regel zum sperren der IP („sudo /sbin/iptables -A INPUT -s %s -j REJECT„) oder was auch immer.
Die Meinungen zum Einsatz von mod_evasive gehen etwas auseinander, daher sollte man es erst mal unter Beobachtung laufen lassen und am besten vorher mal ein bisschen googlen.
Zusammen mit HAproxy oder Nginx als Reverseproxy funktioniert mod_evasive nicht. Da kann man sich mal das Nginx Modul HttpLimitReq anschauen. mod_evasive blacklisted zwar die IPs, mehr aber leider nicht.
Links:
http://www.linux-magazin.de/Ausgaben/2005/12/Friede-im-Indianerland
Bugfix Release für Galera
Es gibt ein Galera Update. Primär ein Bugfix Release. Ein neues Feature klingt aber recht viel versprechend:
„Plus new experimental feature: weighted quorum (lp:1010225). Weight can be an integer in the range 0-255. Nodes with zero weight don’t participate in quorum calculation. By default all nodes have weight 1.“
http://www.codership.com/content/mysql-wsrep-5529-2373-and-galera-2324-released
Updaten lief ohne Probleme.
ioioio makes the server slow
Arbeitet man mit Virtualisierung (ESX, KVM & Co) sollte man auf den VMs immer den iowait im Auge haben. Egal was die Hostmaschinen an schönen Daten ausgeben, hat die VM einen zu hohen iowait gibt es früher oder später Probleme. Ich nutze dafür den check_cpu_stats Check von Steve Bosek für Nagios. Der Check liefert noch einige Daten mehr. Als Ergebnis bekommt man in etwa Folgendes:
$ /usr/lib/nagios/plugins/check_cpu_stats.sh -w 20 -c 40 CPU STATISTICS OK : user=0.50% system=1.01% iowait=3.27% idle=95.21% nice=0.00% steal=0.00% | CpuUser=0.50;CpuSystem=1.01;CpuIoWait=3.27;CpuIdle=95.21;CpuNice=0.00;CpuSteal=0.00;20;40
Bei Debian&Co sollte sysstat installiert sein. Mit den Zahlen lassen sich schöne Grafiken bei Centreon erzeugen:
Hinweise auf bessere Checks sind natürlich willkommen.
Centreon mit Custom Views
Ich hatte das zwar schon vor einiger Zeit im monitoring-portal geschrieben, aber totzdem auch nochmal hier.
Ab Centreon 2.4.0 kann man sich nun „Custom Views“ mit Widgets für den Startbildschirm zusammenstellen.
Eine Dokumentation gibt es unter
http://documentation.centreon.com/docs/centreon/en/latest/extending/widgets/index.html
Dort steht auch wie man eigene Widgets schreibt.
Die Widgest gibt es unter
http://www.centreon.com/Content-Download/centreon-widgets
Dort liegen schon neuere Versionen. Ich habe noch die Widgets von http://forge.centreon.com/projects/centreon-widgets/files installiert. Werde die neuen Versionen gleich mal installieren und berichten falls es größere Unterschiede gibt.
Wie aufwendig so ein Widget zu schreiben ist kann ich nicht abschätzen. Auf jeden Fall ein nettes Feature was sicherlich noch ausgebaut wird. Super wäre es natürlich wenn man ein Widget für nagvis Karte hätte.
Custom Views:
Diese Widgets gibt es bisher bei Centreon:
Update 1: Nutzt man nicht den Centreon Broker sondern ndo, werden beim service-monitoring widget (1.1.0) alle services 4mal Angezeigt. Das der Centreon Broker dies Problem behebt habe ich nur im Centreon Forum gelesen aber noch nicht ausprobiert.
Kurztipp: Raspbmc und ssh über WAN
Will man von außerhalb des lokalen Netzwerks auf den Raspberry Pi zugreifen, muss man die lokale Firewall von raspbmc etwas anpassen. Zu finden sind die Einstellungen unter /etc/network/if-up.d/secure-rmc
$ tail -n 7 /etc/network/if-up.d/secure-rmc logger -t iptables "Configuring ip tables for interface $IFACE" if [ "$IFACE" != "lo" ]; then NETMASK=$(get_subnet $IFACE) iptables -A INPUT -s $NETMASK -i $IFACE -j ACCEPT iptables -A INPUT -i $IFACE -j DROP fi
Das kann man dann nach eigenen Wünschen anpassen. Also z.B. ein
$ iptables -A INPUT -p tcp --dport 22 -j ACCEPT
vor der DROP Regel. Warum droppen eigentlich immer alle Leute!? Ich finde ein REJECT ist viel schicker und sinniger als so ein dämliches DROP ;-).
Am besten vorher mal ein
$ iptables -I INPUT -p tcp --dport 22 -j ACCEPT
eingeben um zu testen ob Portforwarding vom Router usw. überhaupt richtig eingetragen ist und funktioniert. Und nun das wichtigste:
ÄNDERT das Default Passwort
Natürlich kann man die Regeln dementsprechend anpassen und nur bestimmten IPs Zugriff erlauben, iptables ist bekannterweise ein weites Feld.
p.s. raspbmc gefällt mir um einiges besser als openelec
update: Nun kann man auch die Firewall direkt via raspbmc addon im xbmc deaktivieren.
Kurztipp: zu viele sleeping connections bei MySQL
Hat man zu viele sleeping Connections bei MySQL, hilft eventuell ein Heruntersetzen des Wertes für die wait_timeout
Variable. Default ist diese auf stolze 28800 Sekunden gesetzt. Vorher anschauen ob es überhaupt Probleme mit der Anzahl der Connections gibt, denn der Aufbau einer neuen Connection kostet immer etwas mehr als eine bestehende zu nutzen. Ein einfaches Erhöhen der max_connections Variable ist eventuell sinnvoller. Im laufenden Betrieb kann man den wait_timeout einfach mit
mysql> set global wait_timeout = 3600;
hoch setzen. Das ist natürlich nur eine „Schraube“ an der man drehen kann. Je nach Anwendung ist es auch sinnvoll sich die MySQL Einstellungen in der /etc/php5/apache2/php.ini anzuschauen, also mysql.allow_persistent & co.
Die Auswirkungen der Einstellungen könnten dann z.B. so aussehen (kurz nach 11 Uhr):
Die Werte dabei sind in keiner Weise kritisch, verdeutlichen aber den Unterschied.
update: Eventuell kann ein zu niedriger Wert negative Auswirkungen auf Replikationen haben
Wenn es mal wieder einfach und schnell gehen soll…Music Browser
Im Laufe der letzten Jahre habe ich mir Netjuke, Jinzora, Subsonic, Tin Can Jukebox und natürlich Ampache zur Musikverwaltung angeschaut. Netjuke hat mir damals sehr gut gefallen, wurde dann aber nicht mehr weiter entwickelt und ist irgendwie mit Jinzora „fusioniert“. Jinzora war einfach nur gruselig und dabei habe ich mir wirklich Mühe gegeben es zu mögen. Subsonic und Tin Can Jukebox habe ich nur kurz installiert und dann zeit nah wieder entfernt. Ampache ist super, auch wenn die Entwicklung zur Zeit etwas stagniert. Es gibt für fast jede Plattform einen Client und die Funktionen reichen vollkommen aus. Nervig bei Ampache ist, dass man saubere MP3 Tags haben muss, dies ist z.B. bei Hörbüchern nicht immer der Fall. Eine sehr einfache, aber meiner Meinung nach gute Lösung ist Music Browser. Dabei wird zwar auf vieles verzichtet, aber das Wesentliche funktioniert gut. Ein paar Vorteile sind z. B.:
Keine Datenbank
Keine MP3 Tags
Klein und schnell
Keine überflüssigen Optionen
Eventuell auch eine nette Anwendung für den Raspberry Pi…und ja ich weiß, es gibt zwei Fantastilliarden Möglichkeiten Musik übers Netz abzuspielen und zu verwalten.