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):

screenshot13

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.

Civilization das Brettspiel

civ

Ende letzten Jahres habe ich mich etwas ausführlicher mit Brettspielen beschäftigt. Dabei raus gekommen ist, dass ich mir fast „Twilight Imperium“ gekauft hätte, mir schließlich „Twilight Imperium: Rex“ und „Civilization“ inklusive Erweiterung gekauft habe, „Der Ringkrieg“ als Weihnachtsgeschenk bekommen habe und etliche Stunden mit  Lesen von Anleitungen und Forendiskussionen beschäftigt war.
Nun haben wir letzten Samstag „mal wieder“ Civilization gespielt. Gebraucht haben wir mit vier Personen ca. 6 Stunden, ohne größere Pause. Die Spieler kannten das Spiel größtenteils und längere Regelerklärungen vorab gab es nicht. Mir hat das Spiel sehr, sehr (sehr) viel Spaß gemacht, ich hoffe den anderen auch, aber ich denke schon. Anfangs muss man sich auf ein paar Regelauslegungen einigen damit es später nicht zu Unklarheiten und Frustration kommt. Unklarheiten und unterschiedliche Regelauslegungen wird es trotzdem geben, da kommt man eigentlich nicht dran vorbei. Wichtig dabei ist eine logische Argumentation für die Auslegung zu finden, die auch aus den offiziellen Regeln ableitbar ist. Weltwunder wurden eigentlich komplett ignoriert, und bis auf Silvia hat eigentlich niemand eins gekauft. Silvia hat gewonnen…
Es gab ein ziemliches Kopf an Kopf rennen zwischen Kultur- und Militärsieg. Auch mein Versuch, kurz vor Ende, Silvias Siegeszug mit einer atomaren Vernichtung einer Ihrer Städte aufzuhalten, verlief fruchtlos. Silvias Kultursieg konnte nicht mehr aufgehalten werden. Civilization ist ein Spiel, welches sein Potential erst nach einigen Spielen entfaltet. Mögen die ersten Versuche noch etwas verwirrend und chaotisch sein, so wird es mit jedem Spiel besser und besser. Ich freue mich schon auf das nächste Spiel. Vielleicht auch bald  mit der Erweiterung. Eine feste Spielerrunde ist sicherlich vorteilhaft.

Ein paar Hinweise zum Spielen

  1. Hab Spaß am Spiel – das ist die wichtigste Regel
    Geh positiv in das Spiel und lass Dich drauf ein. Verderbe den anderen Spielern nicht das Spiel.
  2. Der Ort muss stimmen.
    Achte darauf, dass genügend Platz vorhanden ist. Gedränge an kleinen Tischen mag niemand.
  3. Spiele kein langes Spiel wenn Dir die Zeit fehlt
    Fang kein Spiel an wo abzusehen ist, dass dir die Zeit fehlt es zu Ende zu spielen.
  4. Halte Dich an die Regeln und kläre so weit möglich alles am Anfang des Spiels
    Nichts ist frustrierender als nervige Regeldiskussionen mitten im Spiel. Also lese selbst und höre beim Erklären  zu.
  5. Spielzeit ist Spielzeit und nicht für andere Dinge gedacht
    Verzichte auf Telefonate oder Diskussionen über Gott und die Welt, bleib beim Spiel.
  6. You’re not out until you’re out!
    Egal wie die Situation ist, bleib dabei und mach das Beste daraus. Da ist Civilization ein gutes Beispiel für.
  7. Wenn Dir das Spiel vorher schon nicht gefällt, lass es
    Kläre vorher ob das Spiel etwas für Dich ist. Ansonsten nimmst Du allen anderen den Spaß am Spiel.

Ich habe das frei aus den Regeln von boardgamegeek  interpretiert und angepasst. Die sind natürlich etwas ausführlicher.

Links:

http://www.brettspiele-report.de/civilization-das-brettspiel/

http://www.spiele-akademie.de/sid-meiers-civilization-das-brettspiel/

http://www.spieletest.at/spiel.php?ID=3491

http://www.civilization-brettspiel.de/

Ein vhost verschickt spam mails…aber welcher nur?

Um den Übeltäter zu finden, können zwei Einträge in der /etc/php5/apache2/php.ini helfen:

mail.add_x_header = On
mail.log = /var/log/phpmail.log

mail.add_x_header ist eigentlich per default aktiviert bei Debian. Im phpmail.log findet man dann:

mail() on [/var/www/vhosts/domain.com/httpdocs/pages/modules/system/system.mail.inc:83]: To: jeff@domain.co.uk -- Headers: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed; delsp=yes Content-Transfer-Encoding: 8Bit X-Mailer: Drupal Sender: jeff@domain.co.uk From: jeff@domain.co.uk

Darauf achten das der Webuser auch in das Log schreiben darf.
Das ganze gibt es erst seit PHP 5.3.

Tatsächlich hilft auch ab und an mal ein

$ clamscan -i -r *
docroots/profiles.php: PHP.Trojan.WebShell-9 FOUND

Clamscan findet eine ganze Reihe von PHP Shells und auffälligen Code.

Mehr Infos findet an

http://blog.rimuhosting.com/2012/09/20/finding-spam-sending-scripts-on-your-server

http://php.net/manual/en/mail.configuration.php

Kurztipp: Raspberry Pi mit Openelec – Force HDMI

Es erscheint mir etwas überflüssig solche Tipps zu geben, da jeder Besitzer eines solchen Gerätes in der Regel weiß wo er schauen muss. Trotzdem ein einfacher Tipp. Falls man das Teil direkt via HDMI an einen AV Receiver anschließen will und kein HDMI Display anschließen will/kann, man aber trotzdem Musik hören will:

$ mount /flash -o remount,rw

und
# Force HDMI even if unplugged or powered off
hdmi_force_hotplug=1

auskommentieren in der /flash/config.txt

reboot…keine Ahnung ob es irgendwie ohne reboot geht, ich meine nicht. Als Fernbedienung bietet sich yatse an. Zum rumspielen ganz witzig, mal schauen was da noch so möglich ist.

Legt man das Teil auf den AV Reciever sollte man die Temperatur im Auge behalten ;-).

Pacemaker – Nodes sehen sich nicht nach IP takeover

Ein paar Informationen zur Umgebung und zu den Konfigurationsdateien:
Zwei nodes (lb1,lb2) via ESX virtualisiert. Jeweils nur ein Interface je node.

Meine alte corosync.conf:

...
interface {
 ringnumber: 0
 bindnetaddr: 192.168.1.0
 mcastport: 5405
 mcastaddr: 226.94.1.10
 }
...

Folgendes Problem:

Zwei nodes lb1 und lb2 und eine Ressource FAILOVER-ADDR (Cluster IP). Auf beiden läuft Pacemaker. Beide sehen sich und eigentlich sieht alles ok aus. Mache ich nun ein

lb1$ crm resource migrate FAILOVER-ADDR lb2

Wird FAILOVER-ADDR auf lb2 geschwenkt. Alles wunderbar, aber sobald die Aktion vollzogen ist sehen sich lb1 und lb2 nicht mehr via multicast. Ich habe nicht herausfinden können warum, falls jemand  Ideen hat immer her damit.

lb1$ ping 226.94.1.10
 64 bytes from 192.168.1.11: icmp_req=878 ttl=64 time=0.021 ms
 64 bytes from 192.168.1.11: icmp_req=879 ttl=64 time=0.020 ms

wird nur noch von der IP des jeweiligen nodes beantwortet. Vor dem Schwenk tauchte dort  noch richtigerweise die IP des anderen nodes auf.

lb1$ ping 226.94.1.10
 64 bytes from 192.168.1.11:  icmp_req=878 ttl=64 time=0.021 ms
 64 bytes from 192.168.1.12: icmp_req=879 ttl=64 time=0.020 ms

Das ganze hat mich schon sehr (sehr) genervt.
Nun zur recht „einfachen“ Lösung.
Die corosync.conf wird folgendermaßen angepasst:

...
interface {
member {
memberaddr: 192.168.1.11
}
member {
memberaddr: 192.168.1.12
}
# The following values need to be set based on your environment
ringnumber: 0
bindnetaddr: 192.168.1.0
mcastport: 5405

}
transport: udpu
...

ttl habe ich dabei extra nicht gesetzt.  Multicast wird so nicht mehr genutzt und ein broadcast ins ganze Netz findet (hoffentlich) nicht statt. Seit den Anpassungen gab es keinerlei Probleme mehr mit schwenken von Ressourcen.

Notizen:

echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

nicht vergessen

Livestream der ARD und Ubuntu 12.04

Die ARD hat ja nun bekannter weise einen Livestream bzw. http://m.daserste.de/#live. Leider läuft dieser Livestream bei mir  nicht unter Ubuntu 12.04 (32/64bit ) mit Firefox und der Flashplayer Version 11.2.202.258. Mit Chrome und 11.5.31.5 als Version läuft es problemlos. Falls ihr auch betroffen seid, mailt am besten an daserstemediathek@DasErste.de und macht auf das Problem aufmerksam, je mehr desto besser. Informationen zum Problem findet man auch bei linuxundich, dort wird auch gezeigt wie man mplayer & co zum abspielen nutzen kann. Natürlich wird nicht alles live gestreamt, das wäre auch zu einfach.

Dokuwiki Jabber Bot – Jabber Dokuwiki Bot

Liebe Leute,
ich und alle anderen Menschen auf dem Planeten Erde wünschen sich (neben Feldfrieden und universellem Glück für alle) folgendes zu Weihnachten:
Einen Jabber-Dokuwiki-Bot.
Der Jabberbot soll Eingaben direkt in ein Dokuwiki posten. Diese Eingaben sollen sich mit Tags verschlagworten lassen. Es soll die Möglichkeit geben neue Wikiseiten über den Bot anlegen zu lassen oder Text an bestehende Seiten anzuhängen. Andersherum soll der Bot auch anzeigen können was er zu bestimmten Tags bereits im Wiki stehen (Seitennamen wo z.B. die Tags vorkommen) hat und es soll auch die Möglichkeit geben den Text von kompletten Wikiseiten anzeigen zu lassen.

Ich hoffe es wird ungefähr klar was gemeint ist. Es sind noch fünf Tage bis Weihnachten, also genug Zeit eine erste Alpha bereit zustellen. Mit technischen Ressourcen kann ich gerne helfen. Als Belohnung gibt es eine selbst gebackene Urwaldtorte in Göttingen.

Meine Status.net Installation hat so einen bot, aber halt leider nur für Status.net.

Nagios Plugin für glb max connections

Ein recht einfaches Nagios Plugin für glb den Loadbalancer für Galera. Getestet mit glb-0.9.0beta2. Das ganze ist schnell zusammengeschrieben, also nicht über Fehler wundern. Zum download gibt es das hier:

http://exdc.net/nagios/check_glbd_connections

Ausgabe:

$ /usr/lib/nagios/plugins/check_glbd_connections 100 450
Warning current connections:257 | 'connections'=257 'maxconnections'=493

$ /usr/lib/nagios/plugins/check_glbd_connections 100 250
Critical current connections:257 | 'connections'=257 'maxconnections'=493

$ /usr/lib/nagios/plugins/check_glbd_connections 100 250
OK current connections:1 | 'connections'=1 'maxconnections'=493

Das Skript:


#!/bin/bash
#########################################################################
# Script:       check_glbd_connections                                  #
# Author:       Thomas Linnemann (mail@exdc.net) http://exdc.net        #
# Purpose:      Monitor GLBS Connections status with Nagios             #
# Thanks to:    Bjoern Herbold, Alexey Yurchenko                        #
# History:      2012.12.18 version 0.0.1                                #
#                                                                       #
#########################################################################

print_usage() {
echo "Usage: check__glbd_connections warning critical  "
echo "e.g.  check_glbd_connections 350 450"
}

if [ $# -lt 2 ]; then
print_usage
exit 3
fi

conn_info=$(echo "getinfo" | nc -q 1 127.0.0.1 4041|grep Destinations)
conn=$(echo "$conn_info" | cut -d " " -f 5)
maxcon=$(echo "$conn_info" | cut -d " " -f 7)

if [[ $conn -ge $1 && $conn -lt $2 ]]
then
echo "Warning current connections:$conn | 'connections'=$conn 'maxconnections'=$maxcon"
exit 1

elif [ $conn -ge $2 ]
then
echo "Critical current connections:$conn | 'connections'=$conn 'maxconnections'=$maxcon"
exit 2
else
echo "OK current connections:$conn | 'connections'=$conn 'maxconnections'=$maxcon"
exit 0
fi

Performancedaten für Centreon werden auch geliefert (ja gelb ist eine tolle Farbe ich weiß)

galera-lb-1-glbd connections

Kurztipp: Text zwischen zwei Strings anzeigen

Will man den Text zwischen zwei Strings angezeigt bekommen, kann man das recht einfach mit awk machen:

$ awk '/Dec 17 16:35:17/,/Dec 17 17:55:17/' /var/log/syslog
Dec 17 16:35:17 jabber -- MARK --
Dec 17 16:55:17 jabber -- MARK --
Dec 17 17:01:01 jabber /USR/SBIN/CRON[24012]: (root) CMD (ntpdate ntps1.gwdg.de  >/dev/null 2>&1)
Dec 17 17:15:17 jabber -- MARK --
Dec 17 17:17:02 jabber /USR/SBIN/CRON[24252]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Dec 17 17:35:17 jabber -- MARK --
Dec 17 17:55:17 jabber -- MARK --

Wenn man es braucht hat man es eh wieder vergessen, aber ich wollte es mal erwähnt haben ;-).

Mulitcasting Pacemaker

„Wenn sich mehrere HA-Cluster im selben Netz befinden müssen die mulitcast-adressen und multicast-ports aller cluster/clustermember unterschiedlich sein.“

http://www.borgmann.tv/pages/startseite/linux-zeug/howto-linux-ha-cluster.php

The multicast addresses are in the range 224.0.0.0 through 239.255.255.255. Address assignments are listed below.
The range of addresses between 224.0.0.0 and 224.0.0.255, inclusive, is reserved for the use of routing protocols and other low-level topology discovery or maintenance protocols, such as gateway discovery and group membership reporting.

http://www.iana.org/assignments/multicast-addresses/multicast-addresses.xml

Links:

http://www.hastexo.com/resources/hints-and-kinks/whats-totem-retransmit-list-all-about-corosync

 

Nagios Plugin für Galera wsrep_flow_control_paused

Ein sehr (sehr, sehr…) einfaches Plugin für den wsrep_flow_control_paused Wert bei Galera. Vielleicht hilft es irgendwem.

#!/bin/bash
if [ $# != 4 ]; then
        echo "Bitte IP,Port, MySQLuser und Passwort eines Galera Nodes angeben"
        exit 1
else
gstat1=$(mysql -h$1 -P$2 -u$3 -p$4 -e "show status like 'wsrep_flow_control_paused'"|grep wsrep_flow_control_paused|cut -f 2)
 if [ $gstat1 == "0.000000" ]
        then
                echo "OK flow_control_paused:$gstat1 | flow_control_paused=$gstat1"
                exit 0
        else
                echo "Achtung flow_control_paused:$gstat1 | flow_control_paused=$gstat1"
                exit 1
 fi
fi

Die wichtigen Werte findet man unter:
http://www.codership.com/wiki/doku.php?id=monitoring&s[]=monitoring

siehe auch:

http://exdc.net/2012/08/24/galera-cluster_size-nagios-check/
http://exdc.net/2012/09/14/galera-nagios-plugin/

Math mit Mediawiki 1.19.3

Die Math Extension unter http://www.mediawiki.org/wiki/Extension:Math scheint anscheinend (noch) nicht mit der Mediawiki Version 1.19.3 kompatibel zu sein. Seiten mit Formeln werden nicht angezeigt, andere gehen. Also entweder die Extension deaktivieren…oder…keine Ahnung, warten wir mal ab.

Als kleines update dazu: Die 1.19.2er hat bei mir funktioniert, jedoch musste dabei noch

$wgTexvc = 'extensions/Math/math/texvc';

mit in die LocalSettings.php eingetragen werden.