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

Nagios Plugin Slave Status

Wer ein gutes Nagiosplugin zur Überwachung einer MySQL Slave Instanz sucht, sollte sich mal das Plugin von Claudio Kuenzler unter

http://www.claudiokuenzler.com/nagios-plugins/check_mysql_slavestatus.php

anschauen. Gefällt mir deutlich besser als alle bisherigen Slave Status Plugins, die ich dafür genutzt habe. Alternativ kann man natürlich die Percona Plugins nutzen.  Dazu ist das Plugin noch recht kurz und verständlich geschrieben. Ich teste das mal auf vier Instanzen und falls es gut läuft wird es auch für den Rest genutzt.

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.

MySQL 5.5 Replikation

Bei MySQL 5.5 haben sich 1-2 Sachen im Bezug auf die „normale“ Replikation geändert:

master-host
master-user
master-password
master-port

werden nicht mehr in der my.cnf gesetzt, sondern müssen direkt via MySQL gesetzt werden. Das fällt schnell auf, da MySQL ansonsten mit

unknown variable master-host

den Start verweigert.

Ansonsten alles wie immer:

Master:

create user 'slave_user'@'slavehost' identified by 'slavepassword';
GRANT REPLICATION SLAVE ON *.* to 'slave_user'@'slavehost' identified by 'slavepassword';
GRANT REPLICATION CLIENT ON *.* to 'slave_user'@'slavehost' identified by 'slavepassword';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
UNLOCK TABLES;

Slave:

change master to  MASTER_HOST='masterhost', MASTER_PORT=3306, MASTER_USER ='slave_user', MASTER_PASSWORD='slavepassword', MASTER_LOG_FILE='mysql-bin.000045', MASTER_LOG_POS=730;
START SLAVE;
SHOW SLAVE STATUS \G;

Das GRANT REPICATION CLIENT ist nicht unbedingt nötig. Tatsächlich sind das sinnige Änderungen, auch wenn es sich nicht sofort erschließt.

nagios – check dell warranty

Es gibt ein größeres Update vom check_dell_warranty Skript für Nagios. Seit den letzten Versionen hat es immer wieder Probleme gemacht, aber nun scheint es wieder sauber zu laufen.

ChangeLog:
2012-10-27 3.0.1: Dell dropped the counter for days left from their site, this is now calculated internally. Add patch for European style dates with periods between that numbers.

Das Datum lässt auf eine preAir Version schließen ;-).

Die Ausgabe sieht in etwa so aus, falls es jemand noch nicht kennt:

#/usr/lib/nagios/plugins/check_dell_warranty.py
OK: Service Tag: XYXYXY Warranty: 4 Hour ProSupport, Provider: Dell, Start: 2012-07-18, End: 2014-07-17, Days left: 632 Warranty: Next Business Day, Provider: Dell, Start: 2009-07-18, End: 2010-07-17, Days left: -829

 

wtf is md0 oder wenn sich mal einfach so die UUID ändert

Alle kennen und keiner mag sie, Probleme mit dem Softraid. Betreiben wir doch leider ein Raid5 als Softraid und mussten erstaunt feststellen, dass nach einem Tausch einer HD, unser feines /dev/md0 plötzlich verschwunden war. Die HD wurde vorher ordnungsgemäß als faulty markiert und aus dem Raidverbund entfernt. Leider war unser Softraid nach dem Reboot nicht mehr verfügbar. Geholfen hat schließlich folgendes:

Die UUID bekommen wir mit:

mdadm --examine /dev/sdc
/dev/sdc:
Magic : a92b4efc
Version : 0.90.00
UUID : 12345ecd:fc03887b:db1fe20b:ec7c96b5

wobei sdc zum Raidverbund gehören muss. Starten tun wir das Raid schließlich mit:

mdadm /dev/md0 --assemble -u 12345ecd:fc03887b:db1fe20b:ec7c96b5

Eigentlich hätte auch ein

mdadm --assemble --scan

reichen sollen, da alles in der /etc/mdadm.conf eingetragen war:

cat /etc/mdadm.conf
ARRAY /dev/md0 level=raid5 num-devices=8 UUID=17b8e7f5:50c0331a:367a44be:d51f00a4

Hat es aber nicht, da, warum auch immer, die UUID nicht gestimmt hat.
Damit die mdadm.conf wieder stimmt

mdadm --detail --scan >> /etc/mdadm.conf
cat mdadm.conf
ARRAY /dev/md0 level=raid5 num-devices=8 metadata=0.90 UUID=12345ecd:fc03887b:db1fe20b:ec7c96b5

Bleibt schließlich die Frage, warum in der mdadm.conf eine andere UUID eingetragen war. Eventuell wurde das Raid irgendwann mal neu aufgesetzt und vergessen die mdadm.conf anzupassen.

Unter http://www.tcpdump.com/kb/os/linux/starting-and-stopping-raid-arrays.html findet man nochmal eine genauere Anleitung zum Thema Softraid starten und stoppen.

Wichtig bei solchen Aktion ist immer: Ruhig bleiben, keine übereilten und unüberlegten Befehle in die Konsole eingeben.

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