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/

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.

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

 

Centreon mit Ubuntu 12.04…einige Hinweise

Meiner Meinung nach ist Centreon immer noch eines der besten Tools um den Funktionsumfang von Nagios zu erweitern und die Konfiguration zu vereinfachen. Im Einsatz habe ich Centreon nun schon seit über vier Jahren und bin durchweg zufrieden. Leider ist die Installation unter Ubuntu 12.04  eine große Frickelei. Mit Debian war es in meiner Erinnerung deutlich einfacher. Ich fasse mal ein paar Tipps zusammen. Ich habe bewusst versucht Nagios & Co aus den Ubuntu Quellen zu nehmen und nichts von „außerhalb“ zu installieren. Ein how to wie man Nagios und Centreon eigenständig installiert findet man hier und hier (der link ist zur zeit broken…mal abwarten gestern ging er noch).  Will man sich wenig Arbeit machen, kann man auch einfach zum FAN Projekt (fully automated nagios) greifen. Icinga habe ich vor längerer Zeit mal installiert, konnte mich aber damals nicht überzeugen, eventuell ist die aktuelle Versionen besser. OMD habe ich mir noch nicht angeschaut, zweifel aber generell an der Beständigkeit von solchen Projekten.

Sicherlich habe ich irgendwelche Punkte und Pakete übersehen….aber dies ist kein how to.

Fangen wir mit ein paar Paketen an

aptitude install  mysql-server nagios3 nagios-plugins

aptitude install librrds-perl rrdtool php-pear ndoutils-nagios3-mysql sysutils lsb-release snmp libnet-snmp-perl libsnmp-perl libgd2-xpm libgd2-xpm-dev libpng12-dev

Persönlich würde ich noch phpmyadmin installieren.

Dann schauen wir erst mal ob Nagios überhaupt läuft. Bei mir lief es nicht („error: Could not stat() command file“) und ich musste

chmod g+x /var/lib/nagios3/rw

ausführen. Hinweise gab es hier.

Sobald alles läuft machen wir uns daran Centreon zu installieren:

wget http://download.centreon.com/centreon/centreon-2.3.9.tar.gz

Auspacken usw.

./install.sh -i

blabla und dann


------------------------------------------------------------------------
 Please choose what you want to install
 ------------------------------------------------------------------------

Do you want to install : Centreon Web Front
 [y/n], default to [n]:
 > y

Do you want to install : Centreon CentCore
 [y/n], default to [n]:
 > y

Do you want to install : Centreon Nagios Plugins
 [y/n], default to [n]:
 > y

Do you want to install : Centreon Snmp Traps process
 [y/n], default to [n]:
 > n

------------------------------------------------------------------------
 Start CentWeb Installation
 ------------------------------------------------------------------------

Where is your Centreon directory?
 default to [/usr/local/centreon]
 >

Do you want me to create this directory ? [/usr/local/centreon]
 [y/n], default to [n]:
 >
 Directory /usr/local/centreon does not exists.             CRITICAL

Where is your Centreon directory?
 default to [/usr/local/centreon]
 >

Do you want me to create this directory ? [/usr/local/centreon]
 [y/n], default to [n]:
 > y
 Path /usr/local/centreon                                   OK

Where is your Centreon log directory
 default to [/usr/local/centreon/log]
 >

Do you want me to create this directory ? [/usr/local/centreon/log]
 [y/n], default to [n]:
 > y
 Path /usr/local/centreon/log                               OK

Where is your Centreon etc directory
 default to [/etc/centreon]
 >

Do you want me to create this directory ? [/etc/centreon]
 [y/n], default to [n]:
 > y
 Path /etc/centreon                                         OK

Where is your Centreon generation_files directory?
 default to [/usr/local/centreon]
 >
 Path /usr/local/centreon                                   OK

Where is your Centreon variable library directory?
 default to [/var/lib/centreon]
 >

Do you want me to create this directory ? [/var/lib/centreon]
 [y/n], default to [n]:
 > y
 Path /var/lib/centreon                                     OK

Where is your CentPlugins Traps binary
 default to [/usr/local/centreon/bin]
 >

Do you want me to create this directory ? [/usr/local/centreon/bin]
 [y/n], default to [n]:
 > y
 Path /usr/local/centreon/bin                               OK

Where is the RRD perl module installed [RRDs.pm]
 default to [/usr/lib/perl5/RRDs.pm]
 >
 Path /usr/lib/perl5                                        OK
 /usr/bin/rrdtool                                           OK
 /usr/bin/mail                                              OK

Where is PEAR [PEAR.php]
 default to [/usr/share/php/PEAR.php]
 >
 Path /usr/share/php                                        OK

Where is installed Nagios ?
 default to [/usr/local/nagios]
 > /usr/lib/cgi-bin/nagios3
 Path /usr/lib/cgi-bin/nagios3                              OK

Where is your nagios config directory
 default to [/usr/local/nagios/etc]
 > /etc/nagios3
 Path /etc/nagios3                                          OK

Where is your Nagios var directory ?
 default to [/usr/local/nagios/var]
 > /var/lib/nagios3
 Path /var/lib/nagios3                                      OK

Where is your Nagios plugins (libexec) directory ?
 default to [/usr/local/nagios/libexec]
 > /usr/lib/nagios/plugins
 Path /usr/lib/nagios/plugins                               OK
 /usr/sbin/nagios3                                          OK

Where is your Nagios image directory ?
 default to [/usr/local/nagios/share/images/logos]
 > /usr/share/nagios/htdocs/images/logos
 Path /usr/share/nagios/htdocs/images/logos                 OK
 /usr/sbin/nagios3stats                                     OK
 p1_file : /usr/lib/nagios3/p1.pl                           OK
 /usr/bin/php                                               OK
 /usr/bin/perl                                              OK
 Finding Apache group :                                     www-data
 Finding Apache user :                                      www-data
 Finding Nagios user :                                      nagios
 Finding Nagios group :                                     nagios

Where is your NDO ndomod binary ?
 default to [/usr/sbin/ndomod.o]
 > /usr/lib/ndoutils/ndomod-mysql-3x.o
 /usr/lib/ndoutils/ndomod-mysql-3x.o                        OK

------------------------------------------------------------------------
 Configure Sudo
 ------------------------------------------------------------------------

Where is sudo configuration file
 default to [/etc/sudoers]
 >
 /etc/sudoers                                               OK
 Nagios init script                                         OK
 Your sudo is not configured

Do you want me to configure your sudo ? (WARNING)
 [y/n], default to [n]:
 > y
 Configuring Sudo                                           OK

------------------------------------------------------------------------
 Configure Apache server
 ------------------------------------------------------------------------

Do you want to add Centreon Apache sub configuration file ?
 [y/n], default to [n]:
 > y
 Create '/etc/apache2/conf.d/centreon.conf'                 OK
 Configuring Apache                                         OK

Do you want to reload your Apache ?
 [y/n], default to [n]:
 > y
 Reloading Apache service                                   OK
 Preparing Centreon temporary files
 Change right on /usr/local/centreon/log                    OK
 Change right on /etc/centreon                              OK
 Change right on /usr/share/nagios/htdocs/images/logos      OK
 Install nagios documentation                               OK
 Change macros for insertBaseConf.sql                       OK
 Change macros for php files                                OK
 Change right on /etc/nagios3                               OK
 Copy CentWeb in system directory
 Install CentWeb (web front of centreon)                    OK
 Install libraries                                          OK
 Copying libinstall                                         OK
 Change macros for centreon.cron                            OK
 Install Centreon cron.d file                               OK
 Change macros for centAcl.php                              OK
 Change macros for downtimeManager.php                      OK
 Change macros for eventReportBuilder.pl                    OK
 Change macros for dashboardBuilder.pl                      OK
 Install cron directory                                     OK
 Change right for eventReportBuilder.pl                     OK
 Change right for dashboardBuilder.pl                       OK

------------------------------------------------------------------------
 Pear Modules
 ------------------------------------------------------------------------
 Check PEAR modules
 PEAR                            1.4.9       1.9.4          OK
 DB                              1.7.6                      NOK
 DB_DataObject                   1.8.4                      NOK
 DB_DataObject_FormBuilder       1.0.0RC4                   NOK
 MDB2                            2.0.0                      NOK
 Date                            1.4.6                      NOK
 HTML_Common                     1.2.2                      NOK
 HTML_QuickForm                  3.2.5                      NOK
 HTML_QuickForm_advmultiselect   1.1.0                      NOK
 HTML_Table                      1.6.1                      NOK
 Archive_Tar                     1.1         1.3.7          OK
 Auth_SASL                       1.0.1                      NOK
 Console_Getopt                  1.2         1.3.0          OK
 Net_SMTP                        1.2.8                      NOK
 Net_Socket                      1.0.1                      NOK
 Net_Traceroute                  0.21                       NOK
 Net_Ping                        2.4.1                      NOK
 Validate                        0.6.2                      NOK
 XML_RPC                         1.4.5                      NOK
 SOAP                            0.10.1                     NOK
 Log                             1.9.11                     NOK
 Archive_Zip                     0.1.2                      NOK

Do you want me to install/upgrade your PEAR modules
 [y/n], default to [y]:
 > y
 Upgrading PEAR modules
 Installing PEAR modules
 DB                              1.7.6       1.7.14         OK
 DB_DataObject                   1.8.4       1.10.0         OK
 DB_DataObject_FormBuilder       1.0.0RC4    1.0.2          OK
 MDB2                            2.0.0       2.4.1          OK
 HTML_QuickForm_advmultiselect   1.1.0       1.5.1          OK
 HTML_Table                      1.6.1       1.8.3          OK
 Auth_SASL                       1.0.1       1.0.6          OK
 Net_SMTP                        1.2.8       1.6.1          OK
 Net_Traceroute                  0.21        0.21.3         OK
 Net_Ping                        2.4.1       2.4.5          OK
 Validate                        0.6.2       0.8.5          OK
 XML_RPC                         1.4.5       1.5.5          OK
 SOAP                            0.10.1      0.13.0         OK
 Log                             1.9.11      1.12.7         OK
 Archive_Zip                     0.1.2       0.1.2          OK
 Check PEAR modules
 PEAR                            1.4.9       1.9.4          OK
 DB                              1.7.6       1.7.14         OK
 DB_DataObject                   1.8.4       1.10.0         OK
 DB_DataObject_FormBuilder       1.0.0RC4    1.0.2          OK
 MDB2                            2.0.0       2.4.1          OK
 Date                            1.4.6       1.4.7          OK
 HTML_Common                     1.2.2       1.2.5          OK
 HTML_QuickForm                  3.2.5       3.2.13         OK
 HTML_QuickForm_advmultiselect   1.1.0       1.5.1          OK
 HTML_Table                      1.6.1       1.8.3          OK
 Archive_Tar                     1.1         1.3.7          OK
 Auth_SASL                       1.0.1       1.0.6          OK
 Console_Getopt                  1.2         1.3.0          OK
 Net_SMTP                        1.2.8       1.6.1          OK
 Net_Socket                      1.0.1       1.0.10         OK
 Net_Traceroute                  0.21        0.21.3         OK
 Net_Ping                        2.4.1       2.4.5          OK
 Validate                        0.6.2       0.8.5          OK
 XML_RPC                         1.4.5       1.5.5          OK
 SOAP                            0.10.1      0.13.0         OK
 Log                             1.9.11      1.12.7         OK
 Archive_Zip                     0.1.2       0.1.2          OK
 All PEAR modules                                           OK

------------------------------------------------------------------------
 Centreon Post Install
 ------------------------------------------------------------------------
 Create /usr/local/centreon/www/install/install.conf.php    OK
 Create /etc/centreon/instCentWeb.conf                      OK

------------------------------------------------------------------------
 Start CentStorage Installation
 ------------------------------------------------------------------------

Where is your Centreon Run Dir directory?
 default to [/var/run/centreon]
 >

Do you want me to create this directory ? [/var/run/centreon]
 [y/n], default to [n]:
 > y
 Path /var/run/centreon                                     OK

Where is your CentStorage binary directory
 default to [/usr/local/centreon/bin]
 >
 Path /usr/local/centreon/bin                               OK

Where is your CentStorage RRD directory
 default to [/var/lib/centreon]
 >
 Path /var/lib/centreon                                     OK
 Finding Nagios group :                                     nagios
 Finding Nagios user :                                      nagios
 Preparing Centreon temporary files
 /tmp/centreon-setup exists, it will be moved...
 install www/install/createTablesCentstorage.sql            OK
 Creating Centreon Directory '/var/lib/centreon/status'     OK
 Creating Centreon Directory '/var/lib/centreon/metrics'    OK
 Change macros for centstorage binary                       OK
 Install CentStorage binary                                 OK
 Install library for centstorage                            OK
 Change right : /var/run/centreon                           OK
 Change macros for centstorage init script                  OK

Do you want me to install CentStorage init script ?
 [y/n], default to [n]:
 > y
 CentStorage init script installed                          OK

Do you want me to install CentStorage run level ?
 [y/n], default to [n]:
 > y
 update-rc.d: warning: /etc/init.d/centstorage missing LSB information
 update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 Adding system startup for /etc/init.d/centstorage ...
 /etc/rc0.d/K30centstorage -> ../init.d/centstorage
 /etc/rc1.d/K30centstorage -> ../init.d/centstorage
 /etc/rc6.d/K30centstorage -> ../init.d/centstorage
 /etc/rc2.d/S40centstorage -> ../init.d/centstorage
 /etc/rc3.d/S40centstorage -> ../init.d/centstorage
 /etc/rc4.d/S40centstorage -> ../init.d/centstorage
 /etc/rc5.d/S40centstorage -> ../init.d/centstorage
 Configuration file /etc/centreon/conf.pm not found.  Exiting.
 CentStorage stop                                           FAIL
 Change macros for logAnalyser                              OK
 Install logAnalyser                                        OK
 Change macros for nagiosPerfTrace                          OK
 Install nagiosPerfTrace                                    OK
 Change macros for purgeLogs                                OK
 Install purgeLogs                                          OK
 Change macros for purgeCentstorage                         OK
 Install purgeCentstorage                                   OK
 Change macros for centreonPurge.sh                         OK
 Install centreonPurge.sh                                   OK
 Change macros for centstorage.cron                         OK
 Install CentStorage cron                                   OK
 Create /etc/centreon/instCentStorage.conf                  OK

------------------------------------------------------------------------
 Start CentCore Installation
 ------------------------------------------------------------------------

Where is your CentCore binary directory
 default to [/usr/local/centreon/bin]
 >
 Path /usr/local/centreon/bin                               OK
 /usr/bin/ssh                                               OK
 /usr/bin/scp                                               OK
 Finding Nagios group :                                     nagios
 Finding Nagios user :                                      nagios
 Preparing Centreon temporary files
 /tmp/centreon-setup exists, it will be moved...
 Change CentCore Macro                                      OK
 Copy CentCore in binary directory                          OK
 Change right : /var/run/centreon                           OK
 Change right : /var/lib/centreon                           OK
 Replace CentCore init script Macro                         OK

Do you want me to install CentCore init script ?
 [y/n], default to [n]:
 > y
 CentCore init script installed                             OK

Do you want me to install CentCore run level ?
 [y/n], default to [n]:
 > y
 update-rc.d: warning: /etc/init.d/centcore missing LSB information
 update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 Adding system startup for /etc/init.d/centcore ...
 /etc/rc0.d/K30centcore -> ../init.d/centcore
 /etc/rc1.d/K30centcore -> ../init.d/centcore
 /etc/rc6.d/K30centcore -> ../init.d/centcore
 /etc/rc2.d/S40centcore -> ../init.d/centcore
 /etc/rc3.d/S40centcore -> ../init.d/centcore
 /etc/rc4.d/S40centcore -> ../init.d/centcore
 /etc/rc5.d/S40centcore -> ../init.d/centcore
 Create /etc/centreon/instCentCore.conf                     OK

------------------------------------------------------------------------
 Start CentPlugins Installation
 ------------------------------------------------------------------------

Where is your CentPlugins lib directory
 default to [/var/lib/centreon/centplugins]
 >

Where is your CentPlugins lib directory
 default to [/var/lib/centreon/centplugins]
 >

Do you want me to create this directory ? [/var/lib/centreon/centplugins]
 [y/n], default to [n]:
 > y
 Path /var/lib/centreon/centplugins                         OK
 Finding Nagios user :                                      nagios
 Finding Nagios group :                                     nagios
 Preparing Centreon temporary files
 /tmp/centreon-setup exists, it will be moved...
 Change macros for CentPlugins                              OK
 Installing the plugins                                     OK
 Change right on centreon.conf                              OK
 CentPlugins is installed
 Create /etc/centreon/instCentPlugins.conf                  OK

Danach führt man den Rest der Installation via Webinterface durch.
Nun schaut man ob die beiden Prozesse

/usr/bin/perl -w /usr/local/centreon/bin/centcore

und

/usr/bin/perl -w /usr/local/centreon/bin/centstorage

laufen. Tun sie das nicht, versucht man sie via


/etc/init.d/centcore start

/etc/init.d/centstorage start

zu starten.  Funktioniert das nicht, liegt es eventuell daran, dass der nagios User keine shell hat. Also ändert man in der /etc/passwd/ beim user nagios das /bin/false auf /bin/sh. Nun sollte man die beiden Prozesse starten können.

Ganz am Ende habe ich nochmal ein

./install.sh -u /etc/centreon

ausgeführt. Das braucht man eigentlich nicht, aber erst danach wurden erst alle checks  bei Centreon angezeigt, vorher hatte ich nur eine sehr kleine Auswahl an checks.  „Service Performance Data File“ sollte eventuell noch in Centreon konfiguriert werden um Performancedaten darstellen zu können (das ist aber eine andere Geschichte und soll ein anderes mal erzählt werden).

Ich empfehle immer gleichzeitig eine zweite Testmaschine aufzusetzen, so kann man Updates testen und hat eine gewisse Redundanz für den Notfall.

Ich bin für jede Verbesserung offen ;-).

Update 1: Als System kam ein 32bit 12.04 Ubuntu unter KVM zum Einsatz.
Update 2: den „Physical HTML Path“ in der CGI.cfg in centreon anpassen zu /usr/share/nagios3/htdocs un den URL HTML Path zu /nagios3
Update 3: adduser www-data nagios ist nötig falls ein „Error: Could not read object configuration data!“ beim Aufruf von Nagios erscheint
Update 4: secure_path in /etc/sudoers anpassen bzw. auskommentieren (achtung!)

owncloud

Eigentlich recht hoffnungsvoll angefangen das Projekt. Nun wollte ich heute eigentlich zum ersten mal nach langer Zeit Owncloud zum sharen von 3-4 Dateien nutzen und nichts hat funktioniert. Ich konnte zwar einen zweiten Benutzer anlegen usw. aber es war nicht möglich, dass dieser Benutzer den „Shared“ Ordner mit den Freigaben öffnen konnte. Tatsächlich war „Shared“ auch ein File und kein Order auf Dateiebene. Natürlich habe ich 4.5.1 und 4.0.8 getestet und sogar neu installiert, aber keine Chance. Bei einer 4er Version habe ich keine Lust nach Fehlern zu suchen, also werde ich meine Ownlcoud Installationen wieder runter werfen.

Galera Cluster mit Ubuntu 12.04 64bit und MySQL 5.5 – Teil 3 IP Failover

Nun haben wir unseren 4 Node Mysql Galera Cluster (hier sollte man besser eine ungerade Zahl wählen, wegen des Quorum Problems). Wir haben auch einen Loadbalancer auf 2 VMs laufen. Nun wollen wir aber noch einen IP Failover haben, falls eine der LB VMs ausfällt, sei es geplant oder ungeplant. Pacemaker ist meiner Meinung nach ein fantastisches Stück Software. Basis Funktionen, wie IP Failover bekommt man relativ unkompliziert ans Laufen, will man jedoch etwas mehr, wird schnell klar, wie komplex Pacemaker/Corosync ist, aber auch welche sinnvollen Funktionen zur Verfügung stehen. Ich beschränke mich auf das Nötigste, weil ich 1. noch nicht mehr weiß und 2. es für mein Projekt vollkommen ausreicht. Die Links am Ende sollte man sich auf jeden Fall anschauen, ich verspreche es lohnt sich. Ich spare mir in die Tiefe zu gehen, da die angefügten Links eigentlich alles erklären und dies deutlich besser tun, als ich es hier kurz zusammenfassen kann.
Fangen wir also mit den Zutaten an:

  • 3 IPs
  • 2 Server minimum (lb1, lb2)
  • Zeit

Nun gehen wir auf einen der Server, nehmen wir lb1:

aptitude install pacemaker

Danach passen wir /etc/corosync/corosync.conf  an:

interface {
 # The following values need to be set based on your environment
 ringnumber: 0
 bindnetaddr: 123.123.123.0
 mcastaddr: 226.94.1.1
 mcastport: 5405
}

Wobei bindnetaddr ein Netz angibt und keine Rechneradresse. Danach führen wir

corosync-keygen

aus. Das dauert etwas und kann durch etwas i/o beschleunigt werden. Danach

chown root:root /etc/corosync/authkey
chmod 400 /etc/corosync/authkey
scp /etc/corosync/authkey lb2:/etc/corosync/authkey
/etc/init.d/corosync start

Sollte corosync seltsamerweise nicht starten, hat bei mir bei ein reboot geholfen. Wo der Fehler dabei lag, kann ich nicht sagen. Schauen wir uns erst mal den aktuellen Zustand an

crm_mon --one-shot -V

Dabei sollte nicht viel erscheinen.

Legen wir also unsere erste Ressource an:

crm configure primitive FAILOVER-ADDR ocf:heartbeat:IPaddr2 params ip="123.123.123.123" nic="eth0" op monitor interval="10s" meta is-managed="true"

Wobei 123.123.123.123 hier die Cluster IP ist.
Stonit und Quorum brauchen wir bei zwei Hosts eigentlich nicht, besonders wenn beide Maschinen auf gleicher Hardware virtualisiert sind ;-).

crm configure property stonith-enabled=false
crm configure property no-quorum-policy=ignore

Soll die IP automatisch wieder auf den aktiven Host zurückspringen oder beim aktuellen  bleiben?

crm_attribute --type rsc_defaults --attr-name resource-stickiness --attr-value 100

default-resource-stickiness=100 ist vergleichbar mit autofailback=false. Default ist der Wert auf 0 gesetzt, bedeutet die Ressource, bei uns FAILOVER-ADDR, springt automatisch wieder  auf den ursprünglichen Host zurück, sobald dieser verfügbar, bzw. Pacemaker gestartet ist.

Das Thema mit der Stickiness ist etwas komplexer, daher verweise ich auf diesen Link, wo der Punkt ausführlich erklärt wird. Der Punkt ist sehr wichtig, da man eventuell nicht immer will, dass die IP sofort wieder auf den Host zurückspringt der z. B. grad rebootet werden musste.

Verschiebt man die IP jedoch von Hand, setzt Pacemaker eine Location Regel für den jeweiligen Host

crm configure show
...
location cli-prefer-FAILOVER-ADDR FAILOVER-ADDR \
rule $id="cli-prefer-rule-FAILOVER-ADDR" inf: #uname eq lb1
...

Diese muss man dann von Hand wieder löschen. Ansonsten wird die Ressource wieder auf den node aus der Location Regel springen, wenn dieser verfügbar ist.
Ein

crm resource unmigrate FAILOVER-ADDR

Löscht die Location Regel.

Mit

crm configure show

können wir uns die  Konfiguration anzeigen lassen. Und mit

crm_mon --one-shot -V

sehen wir den aktuellen Zustand unseres Pacemaker Systems

crm_mon --one-shot -V
============
Last updated: Fri Nov  2 14:09:16 2012
Last change: Mon Sep 10 13:34:26 2012 via crm_attribute on lb1
Stack: openais
Current DC: lb1 - partition with quorum
Version: 1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f50c
2 Nodes configured, 2 expected votes
2 Resources configured.
============

Online: [ lb1 lb2 ]

Resource Group: Balancer
FAILOVER-ADDR    (ocf::heartbeat:IPaddr2):    Started lb1
GLBD    (lsb:glbd):    Started lb1

Nun testen wir mit

crm resource migrate FAILOVER-ADDR lb2

Ob sich unsere  Ressource verschieben lässt. Danach sollte in etwa folgendes erscheinen:

crm_mon --one-shot -V
============
Last updated: Fri Nov  2 14:15:16 2012
Last change: Fri Nov  2 14:15:12 2012 via crm_resource on lb1
Stack: openais
Current DC: lb1galera - partition with quorum
Version: 1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f50c
2 Nodes configured, 2 expected votes
2 Resources configured.
============

Online: [ lb1 lb2 ]

Resource Group: Balancer
FAILOVER-ADDR    (ocf::heartbeat:IPaddr2):    Started lb2
GLBD    (lsb:glbd):    Started lb2

Unsere FAILOVER-ADDR Ressource wurde also erfolgreich auf lb2 migriert. Mit dem Befehl

ip addr show

auf beiden Maschinen, können wir das nochmal unabhängig von Pacemaker überprüfen.
Dies GLBD, was erscheint, kann vorerst ignoriert werden. GLBD ist bei mir der MySQL Loadbalancer, der mit FAILOVER-ADDR zu der Gruppe „Balancer“ hinzugefügt wurde. Wie man den glbd Loadbalancer  mit in das Konstrukt aufnimmt, schreibe ich dann hoffentlich in Teil 4 (Pacemaker, Loadbalancer und Nagios) .

Pacemaker bitte eine ganze Reihe von praktischen Befehlen, Funktionen und Möglichkeiten zum anpassen der Konfiguration. Ich spare mir das mal alles und verweise auf die Links am Ende und auf google.

Link zu Teil 1:
http://exdc.net/2012/08/15/galera-cluster-mit-ubuntu-12-04-64bit-und-mysql-5-5-teil-2-loadbalancerproxy/

Links, die man sich auf jeden Fall anschauen will:
http://earlruby.org/corosync-pacemaker-notes/
http://blog.foaa.de/2010/10/intro-to-pacemaker-on-heartbeat/
http://blog.foaa.de/2010/10/intro-to-pacemaker-part-2-advanced-topics/
http://www.clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/
http://wiki.techstories.de/display/IT/Pacemaker+HA-Cluster+Schulung+GFU+Koeln

update:

glbd kann sich auch an jedes beliebige Interface binden. Dazu reicht es einfach nur den listening Port anzugeben oder 0.0.0.0:port.

Brettspiele

Seit ein paar  Wochen beschäftige ich mich nun etwas ausführlicher mit Brettspielen. Daher haben wir uns zwei, drei Spieleläden in Braunschweig angeschaut, was aber eher (sehr) enttäuschend  war.  Nun waren wir heute Nachmittag in der Spieleburg in Göttingen. Jedes Spiel, was ich mir vorher online angeschaut hatte, gab es dort zum anschauen und kaufen, selbst Twilight Imperium, inklusive der Erweiterungen, gab es. Die Beratung ist unglaublich gut, die Preise sind mehr als fair.  Wir haben folgende Brettspiele gekauft:

Der Ringkrieg
Twilight Imperium: Rex
Civilization

Mage Knight gab es auch, aber das wäre dann doch etwas viel geworden, aber mal abwarten. Jetzt brauchen wir nur noch Leute, die mitspielen;-). Ich kann die Spieleburg in Göttingen nur empfehlen, besonders wenn man mal etwas komplexere Spiele und gute Beratung sucht. So ein Laden, mit der Auswahl und Beratung, ist mehr wert, als viele diverse Onlineangebote. Das klingt wie Werbung, soll es auch sein ;-).

 

Linux Cluster Management Console

Für zwischendurch.

Linux Cluster Management Console is a GUI that helps to configure Pacemaker, DRBD and KVM clusters.

Damit ist eigentlich alles gesagt. Habe ich nicht zum Einrichten von Pacemaker genutzt, ist aber nett um sich das Ergebnis anzuschauen. Bei größeren Umgebungen, kann so ein Tool sicherlich sehr nützlich sein. Bei mir läuft auf den Nodes nur Pacemaker&co und glbd als MySQl Proxy. Bei der 1.3er Version war das Anlegen der Hosts nicht besonders intuitiv, vielleicht ist es bei der neuen 1.4er verbessert worden. DRBD ist natürlich nicht nötig, aber möglich.

httpvh://youtu.be/nEPn5RJA1Ig

p.s. damit teste ich auch gleich mal ob der osbn feed funktioniert

HTC Desire mit Cyanogenmod 7.2.0.1

Nach über zwei Jahren mit meinem HTC Desire habe ich nun gestern Cyanogenmod auf das Handy gefllasht. Grund war natürlich die Neugier und meine positiven Erfahrungen mit Cyanogenmod auf dem HP Touchpad. Wenn man das letzte halb offizielle Upgrade von HTC mitgemacht hat, ist es eigentlich überflüssig Cyanogenmod zu installieren. Die Verbesserungen halten sich in Grenzen. Natürlich kann man noch mehr einstellen und „individualisieren“, aber eigentlich war es auch mit der HTC Android Version ein gut funktionierendes Handy…bis auf den doch sehr kleinen Hauptspeicher. Eine wirklich nette Funktion ist natürlich der integrierte SIP Client, so spart man sich Sipdroid, Sipgateclient, CSipSimple & co als extra Sipclient. Tatsächlich bin ich mir nicht sicher ob diese Funktion nicht auch beim letzten HTC Update  dabei war…egal ;-). Ich bin jedenfalls nach der Anleitung unter  http://wiki.cyanogenmod.com/wiki/HTC_Desire_%28GSM%29:_Full_Update_Guide vorgegangen und bis auf einen kleinen Fehler meinerseits (nicht auf den Bildschirm geschaut beim revolutionary rooten), lief alles Problemlos. Der ganze Vorgang dauert ca. 5 Minuten. Hier ein kleines Video zum integrierten SIP client von Android…und ja, Sipdroid & co bieten mehr Funktionen.

httpvh://youtu.be/XOXzs6LoBz0

Interessanterweise steht diese, doch recht alte Funktion, anscheinend nicht beim aktuellen Samsung ACE 2 (z. Z. Android 2.3.6) zu Verfügung, warum ist mir jedoch unklar.

Ach ja, man flasht so was natürlich weil man es kann, flasht man nicht mehr, ist man alt ;-).

Galera cluster_size Nagios check

Ein kleiner Nagios Check für MySQL / Galera.  Die Variable wsrep_cluster_status habe ich nur als zusätzliche Information mit rein genommen. Sobald mehr Zeit, erweitere ich das um die anderen wichtigen Variablen ( wsrep_ready, wsrep_connected, wsrep_flow_control_paused usw.)  und unterscheide ein paar mehr Fälle. Natürlich sind mit dem Skript kaum Fälle abgefangen, aber für so auf die schnelle funktioniert es. Nett wäre es, wenn die Galera Leute direkt ein Plugin zur Verfügung stellen würden, die kennen sich immerhin am besten damit aus.

#!/bin/bash
if [ $# != 1 ]; then
 echo "Bitte Anzahl der erwarteten MySQL Galera Nodes angeben"
 exit 1
else

 mysqlhost=127.0.0.1
 port=3306
 mysqluser=mysqluser
 password=mysqlpassword
 gstat1=$(mysql -h$mysqlhost -P$port -u$mysqluser -p$password -e "show status like 'wsrep_cluster_size'"|grep wsrep_cluster_size|cut -f 2)
 gstat2=$(mysql -h$mysqlhost -P$port -u$mysqluser -p$password -e "show status like 'wsrep_cluster_status'"|grep wsrep_cluster_status|cut -f 2)

  if [ $gstat2 == "Primary" ]
   then
    if [ "$gstat1" == "$1" ]
     then
     echo "OK wsrep_cluster_size:$gstat1 wsrep_cluster_status:$gstat2"
     exit 0
    else
     echo "Achtung wsrep_cluster_size:$gstat1 wsrep_cluster_status:$gstat2"
     exit 1
    fi
  else
   echo "Achtung wsrep_cluster_status:$gstat2"
   exit 2
  fi
fi

Link:
http://www.codership.com/wiki/doku.php?id=monitoring&s[]=monitoring

Galera Cluster mit Ubuntu 12.04 64bit und MySQL 5.5 – Teil 2 Loadbalancer/Proxy

Nun da Galera mittlerweile auf vier Nodes läuft, wäre ein Loadbalancer eine gute Sache. HAProxy fand ich etwas zu mächtig für mein Anliegen, obwohl er  von vielen Benutzern als Option präferiert wird . Getestet habe ich mysql-proxy direkt von Mysql und glbd von Galera. Beides scheint größtenteils problemlos zu laufen. Bei einfachen Benchmarks, konnte ich bisher keine gravierenden Unterschiede erkennen, dazu aber mehr in Teil 4. Mysql-proxy ist seit längerer Zeit im Alphastatus und glbd liegt in der Version 0.7.5 vor. Also beides ausbaufähig ;-). Mein Favorit ist glbd, weil er genau das tut, was er soll und nicht unnötig viele Einstellung benötigt oder bietet. Die Syntax ist recht einfach:

glbd --daemon --threads 8 --control 127.0.0.1:4041 123.123.123:4040 node1:3306:3 node2:3306:3 node3:3306:3 node4:3306:1 

Ein –help zeigt alle Optionen:

glbd --help
Usage:
glbd [OPTIONS] LISTEN_ADDRESS [DESTINATION_LIST]
OPTIONS:
--help                  this help message.
--daemon                run as a daemon.
--fifo <fifo name>      name of the FIFO file for control.
--control [HOST:]PORT   listen for control requests on this address.
--threads N             number of working threads (connection pools).
--source_tracking       turn on source tracking: route connections from one
source to the same destination.
--verbose               turn on verbose reporting.
--version               print program version.
LISTEN_ADDRESS:
[IP:]PORT               where to listen for incoming TCP connections.
DESTINATION_LIST:
[H1[:P1[:W1]]] [H2[:P2[:W2]]]...  - a space-separated list of destinations
in the form address:port:weight.

Die Optionen nach Bedarf anpassen. Meiner Meinung nach empfiehlt es ich das weight eines nodes relativ niedrig anzusetzen. Dieser kann dann primär für Backups oder als Donor  fuer zusätzliche Nodes dienen, da er während des Syncs mit einem neuen Node im readonly mode ist. Statusabfragen von glbd macht man z.B. mit:

# echo "getinfo" | nc -q 1 127.0.0.1 4041
Router:
----------------------------------------------------
Address       :   weight   usage   conns
node1:3306  :    3.000   0.000     0
node2:3306  :    3.000   0.000     0
node3:3306  :    3.000   0.000     0
node4:3306  :    1.000   0.000     0
----------------------------------------------------
Destinations: 4, total connections: 0

Weiter Informationen finden sich im Readme.  Sehr gute Informationen und eine deutlich detaillierte Anleitung zu glbd findet man unter fromdual.com/mysql-and-galera-load-balancer. Dort ist auch ein Skript hinterlegt um glbd zu administrieren. Bricht ein Node weg, leitet glbd die Anfrage transparent an einen verfügbaren Node weiter. Leider ist die Dokumentation von glbd etwas dürftig, daher werden sich viele Verhaltensweisen erst im Laufe von diversen Tests zeigen. Probleme können eventuell auftauchen wenn man mit Pacemaker/Corosync arbeitet, da glbd sich (zu Recht) weigert,  an ein nicht existierendes Interface gebunden zu werden (Stichwort „crm colocation“), dazu mehr in Teil 3.

Mysql-Proxy ist als Paket bei Ubuntu 12.04 dabei, zwar „nur“ die 0.8.1, dafür  genießt man die Vorteile der Paketverwaltung. Konfiguriert wird mysql-proxy in der

/etc/default/mysql-proxy:

ENABLED="true"
OPTIONS="--proxy-skip-profiling --proxy-address=123.123.123.123:4040 --proxy-backend-addresses=node1:3306 --proxy-backend-addresses=node2:3306 --proxy-backend-addresses=node3:3306 --proxy-backend-addresses=node4:3306 --admin-username=superadmin --admin-password=imnotshyijustdontlikeu --admin-lua-script=/usr/lib/mysql-proxy/lua/admin.lua"

Damit läuft  erst mal die Proxyfunktion. Mysql-proxy kann deutlich mehr als nur  Proxy sein. So kann er zum Beispiel die Mysqlanfragen nach read-write selektieren und mit der --proxy-read-only-backend-addresses Option auf dedizierte Readonly „Slaves“ leiten. Die Dokumentation ist sehr gut, dank auch der  MySQL Integration. MySQL Anfragen können mit Hilfe von Lua Skripten direkt manipuliert  werden. Zum lesen nochmal zwei Links zu mysql-proxy, hier und hier. Der Beitrag von mysqlperformanceblog.com  ist von Juni 2009, daher wurde noch die 0.7.1 getestet. Zu eigenen Benchmarks komme ich in Teil 4.

Ob nun glbd, mysql-proxy, pen oder haproxy, hängt vom Einsatzzweck und System ab. Sicherlich gibt es noch etliche andere Lösungen für ein Mysql Proxy/Loadbalancer Szenarien. Schaut man sich kommerzielle Anbieter an, wird man sicherlich hinter all den Webinterfaces, Firmenlogos und Gedöhns, häufig ein Programm aus der Open Source Welt finden, was dort still und unscheinbar seinen Dienst verrichtet. Teil 3 handelt von Pacemaker und IP Failover und Teil 4 schließlich von Benchmaks zu unterschiedlichen Konfigurationen. Ein wesentlicher Faktor beim Einrichten einer solchen Umgebungen ist natürlich die Zeit, die man dafür zur Verfügung hat. Sollte ich komplett auf dem Holzweg sein, sind Kommentare natürlich willkommen, ansonsten natürlich auch.

Link zu Teil 1:

http://exdc.net/2012/08/06/galera-cluster-mit-ubuntu-12-04-64bit-und-mysql-5-5-teil-1/