SlideShare a Scribd company logo
1 of 18
Download to read offline
Nagios in alta affidabilità con strumenti open source
                                                       di Gianpaolo Buono



Scenario
Per consentire l’alta affidabilità dei servizi è stato sviluppato un sistema che preveda la ridondanza
sia fisica che logica del servizio in oggetto attraverso componenti opensource. Il “cluster” proposto
è costituito da due nodi GNU/Linux in configurazione Active/Standby ed i servizi erogati sono
nagios, apache, mysqld, drbd ed il VIP registrati in un gruppo di risorse che possono migrare da un
nodo all'altro senza perdita di dati; pertanto in caso di failure di uno dei due il detentore delle
attività, lascia il posto al nodo alternativo.
Questo tipo di funzionalità permette la totale ridondanza dei servizi, poiché gli host sono
perfettamente speculari in termini di configurazione ed i dati di servizio risiedono su un disco
mirrorato via rete mediante la patch del kernel drbd.


In questo tutorial non saranno approfonditi gli argomenti, ma saranno date le basi per poter
procedere ad una configurazione simile in autonomia.


1.       Software
          Nagios – Per il monitoraggio
          Drbd – Per sincronizzare i dati via rete
          NCPL – Per la gestione via web dei file di configurazione di Nagios
          MySQL – Il db che ospiterà le configurazioni di Nagios
          Pacemaker – Per gestire l’alta affidabilità
          CentOS – Il sistema operativo


     1.1        Nagios
     Nagios è una nota applicazione open source per il monitoraggio di computer e risorse di rete.
     La sua funzione base è quella di controllare nodi, reti e servizi specificati, avvertendo quando
     questi non garantiscono il loro servizio o quando ritornano attivi. E’ fortemente personalizzabile,
     in quanto i controlli avvengono tramite programmi esterni (plugin) e la disponibilità del codice
     sorgente facilita la scrittura di nuovi check.


                                                          http://www.nagios.org/



BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
1.2        DRBD
     DRBD (Distributed Replicated Block Device) è una sorta di RAID1 via rete, il software permette
     infatti di tenere sincronizzate due o più partizioni di Hard Disk ospitati su due server diversi. Una
     configurazione di DRBD si compone quindi di due nodi (Server Linux), uno attivo e l'altro passivo.
     Quello passivo è continuamente sincronizzato con il nodo attivo, la cui partizione non può
     essere montata. DRBD si compone da un modulo per il Kernel Linux e da alcuni tool, per la sua
     gestione, in userspace.


                                                            http://www.drbd.org/


     1.3        NCPL
     NCPL è un strumento web-based scritto in perl per gestire e configurare Nagios. Viene utilizzato
     per semplificare l’aggiunta e la modifica di controlli. Usa un db MySql per conservare i dati ed
     effettuare backup.


                                                http://sourceforge.net/projects/ncpl/


     1.4        Pacemaker
     Pacemaker è un software per creare servizi in cluster. Per servizi in cluster si intendono due
     macchine (definite nodi) sulle quali vengono assegnate risorse da gestire. Se un nodo o un
     servizio smette di funzionare, al suo posto subentra l’altro in grado di garantire il funzionamento
     delle stesse risorse e lo scopo di creare il minor disservizio possibile all’utente finale. In questo
     caso si parla di modalità active-passive, cioè una risorsa eroga il servizio mentre l’altra è in hot-
     stanby pronta ad erogare la risorsa in caso di malfunzionamenti.


                                                        http://www.clusterlabs.org/


     1.5        MySql
     MySql è un Relational Database Management System (RDBMS), composto da un client con
     interfaccia a caratteri e un server, entrambi disponibili sia per sistemi Unix come GNU/Linux che
     per Windows, anche se prevale un suo utilizzo in ambito Unix.


                                                          http://www.mysql.com/




BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
1.6        CentOS
     CentOS (acronimo di Community enterprise Operating System) è un sistema operativo
     concepito per fornire una piattaforma di classe enterprise per chiunque intenda utilizzare
     GNU/Linux per usi professionali. Si tratta di una distribuzione Linux che deriva da Red Hat
     Enterprise Linux con cui cerca di essere completamente compatibile.


                                                          http://www.centos.org/


2. Configurazione


     2.1 Network
     Considerando che i due server hanno tutte le componenti hardware ridondate, le schede di
     rete in questione sono 4 Gigabit aggregate a coppie di due in modalità 0 (active/standby) per
     garantire l’alta affidabilità utilizzando la tecnologia “channel bonding” che permette di
     aggregare su più di una interfaccia di rete un indirizzo IP. Pertanto, nel caso in cui
     un’interfaccia di rete perda la sua funzionalità, non si ha disservizio poiché quella in
     accoppiamento ha già preso il carico delle connessi.


     Analizziamo la configurazione di rete proposta:


     hostname = nagios1
           bond0 (eth0 | eth2)                                  10.0.0.1/255.255.255.248                    Cavi Cross
           bond1 (eth1 | eth3)                                  192.168.0.10/255.255.255.0                  Management


     hostname = nagios2
           bond0 (eth0 | eth2)                                  10.0.0.2/255.255.255.248                    Cavi Cross
           bond1 (eth1 | eth3)                                  192.168.0.11/255.255.255.0                  Management


                                                            VIP = 192.168.0.100/24


     Sull’interfaccia denominata bond0 faremo passare tutto ciò che riguarda il traffico di
     heartbeat ed i dati relativi alla sincronizzazione del disco drbd.
     Mentre l’interfaccia bond1 la dedicheremo per l’erogazione del servizio e la gestione dei
     server.




BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
E’ prassi, per avere una maggiore ridondanza, connettere le schede di rete presenti sul
     channel bond1 (eth1 ed eth3) su due switch Gigabit di rete differenti come mostrato in figura:




     2.2 Storage
     Ogni server ha due dischi interni, il primo (xvda) da 10GB è dove risiede il sistema operativo; il
     secondo (xvdb) 22 GB in gestione a drbd per la replica via rete; dove installeremo tutto il
     software da allineare e tutti i file di configurazione.
     I dischi o partizioni da replicare devono essere della stessa dimensione e medesima velocità,
     per evitare eventuali colli di bottiglia.


     Analizziamo la configurazione dei dischi:


     [root@nagios1/2 ~]# fdisk -l


     Disk /dev/xvda: 10.6 GB, 10687086592 bytes
     255 heads, 63 sectors/track, 1299 cylinders
     Units = cylinders of 16065 * 512 = 8225280 bytes


            Device Boot                     Start                    End              Blocks          Id      System
     /dev/xvda1              *                     1               1179             9470286           83      Linux
     /dev/xvda2                              1180                  1299               963900          82      Linux swap / Solaris


     Disk /dev/xvdb: 22.0 GB, 22045261824 bytes
     255 heads, 63 sectors/track, 2680 cylinders


     Quindi su entrambi i nodi creiamo la partizione da replicare via rete:


     [root@nagios1/2 ~]# fdisk /dev/xvdb




BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
The number of cylinders for this disk is set to 2680.
     There is nothing wrong with that, but this is larger than 1024,
     and could in certain setups cause problems with:
     1) software that runs at boot time (e.g., old versions of LILO)
     2) booting and partitioning software from other OSs
           (e.g., DOS FDISK, OS/2 FDISK)


     Command (m for help): n
     Command action
           e      extended
           p      primary partition (1-4)
     p
     Partition number (1-4): 1
     First cylinder (1-2680, default 1):
     Using default value 1
     Last cylinder or +size or +sizeM or +sizeK (1-2680, default 2680):
     Using default value 2680


     Command (m for help): w


     Quindi sulla partizione xvdb1 verranno installati tutti i dati che dovranno essere ridondati.


3. Installazione del Software


     3.1 DRBD:
     Nel repository ufficiale CentOS 5.5 sono presenti i pacchetti, quindi basterà lanciare i seguenti
     comandi per avere un kernel drbd, su entrambi i nodi:


     [root@nagios1/2 ~]# yum install -y drbd83.x86_64 kmod-drbd83-xen.x86_64
     [root@nagios1/2 ~]# shutdown –r now


     I tool di gestione a riga di comando sono tre:


               drbdadm è il più utilizzato ed è una interfaccia per drbdsetup e drbdmeta
               drbdsetup configura il modulo DRBD caricato nel kernel
               drbdmeta gestisce i meta-dati dei dispositivi da replicare




BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
Creare il file di configurazione identico su entrambi i nodi:


     [root@nagios1/2 ~]# cat /etc/drbd.conf
     #
     # please have a a look at the example configuration file in
     # /usr/share/doc/drbd83/drbd.conf
     #
     global {
         usage-count yes;
     }
     common {
         protocol C;
     }


     resource r0 {
     syncer { rate 100M; }
         on nagios1 {
             device            /dev/drbd1;
             disk              /dev/xvdb1;
             address           10.0.0.1:7789;
             meta-disk internal;
         }
         on nagios2 {
             device            /dev/drbd1;
             disk              /dev/xvdb1;
             address           10.0.0.2:7789;
             meta-disk internal;
         }
     }


     Inutile dire che è possibile diversificare in svariati modi le configurazioni drbd; è possibile
     cambiare il tipo di protocollo, i parametri che riguardano la rete e tuning particolari a seconda
     di cosa debba contenere il filesystem.


     Creiamo la risorsa su entrambi i nodi:


     [root@nagios1/2 ~]# drbdadm create-md r0
     [root@nagios1/2 ~]# drbdadm attach r0


BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
[root@nagios1/2 ~]# drbdadm syncer r0
     [root@nagios1/2 ~]# drbdadm connect r0


     Essendo drbd uno strumento che può scrivere solo su un nodo alla volta, è necessario decidere
     il server Master che nel nostro caso è nagios1 e sincronizzare il disco da nagios1 (eletto master)
     verso nagios2 (eletto slave) con il seguente comando:


     [root@nagios1 ~]# drbdadm -- --overwrite-data-of-peer primary r0


     Per verificare lo stato d'avanzamento della replica, su entrambi i nodi può essere dato il
     comando:


     [root@nagios1 ~]# cat /proc/drbd


     o


     [root@nagios2 ~]# drbd-overview


     A questo punto e' possibile formattare il disco replicato, solo sul nodo master:


     [root@nagios1 ~]# mkfs.ext3                          /dev/drbd1


     Creare la directory e montare il file system drbd, solo sul nodo master:


     [root@nagios1 ~]#                  mkdir /drbd
     [root@nagios1 ~]# mount /dev/drbd1 /drbd


     Per verifica, scrivere qualcosa sul volume montato.


     [root@nagios1 ~]# dd if=/dev/zero of=/drbd/test.dd bs=1M count=1024


     Dato che la gestione del software drbd verrà data al cluster Pacemaker, è necessario provare
     che tutto funzioni correttamente anche sull’altro nodo, quindi bisogna effettuare uno switch
     della risorsa drbd manuale:




BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
Sul nodo master:


     [root@nagios1 ~]# umount /drbd
     [root@nagios1 ~]# drbdadm secondary r0


     Sul nodo slave:


     [root@nagios2 ~]# drbdadm primary r0
     [root@nagios2 ~]# mount /dev/drbd1 /drbd


     Prima di far gestire drbd al cluster, smontare il filesystem /drbd e dare il comando:


     [root@nagios2 ~]# drbdadm secondary r0


    In modo che qualsiasi nodo è pronto per attivare drbd.


     3.2 MySQL:
     Sul nodo definito da noi master, montare manualmente il fs drbd:


     [root@nagios1 ~]# drbdadm primary r0
     [root@nagios1 ~]# mount /dev/drbd1 /drbd


     Su entrambi i nodi:


     [root@nagios1/2 ~]# yum -y install mysql-server.x86_64


     Solo sul nodo master:


     [root@nagios1 src]# mv /var/lib/mysql /drbd/
     [root@nagios1 src]# chown -R mysql:mysql /drbd/mysql/


     Dato che mysql dovrà essere gestito dal cluster, eliminarlo dallo startup dei runlevel, su
     entrambi i nodi:


     [root@nagios1/2 src]# chkconfig mysql off


     Solo sul nodo slave:

BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
[root@nagios2 src]# rm -rf /var/lib/mysql/


     Correggere il file my.cnf in modo da far puntare alla nuova datadir di mysql su entrambi i nodi:


     [root@nagios1/2 ~]# cat /etc/my.cnf
     [mysqld]
     datadir                      =              /drbd/mysql
     socket                       =              /drbd/mysql/mysql.sock
     user                         =              mysql


     old_passwords=1
       [mysqld_safe]
     socket                       =              /drbd/mysql/mysql.sock
     pid-file=/var/run/mysqld/mysqld.pid


     Provare uno start di myql, solo sul nodo master con filesystem drbd montato:


     [root@nagios1 ~]# /etc/init.d/mysqld start


     3.3 Installazione Apache
     Anche l’installazione di apache è costituita da pochi passaggi. Installare i pacchetti su
     entrambi i nodi:


     [root@nagios1/2]# yum install -y httpd*


     Creare il file di configurazione di apache relativo a nagios su entrami i nodi:


     [root@nagios1/2 ~]# cat /etc/httpd/conf.d/nagios.conf


     <VirtualHost _default_:80>
                    Alias /nagios "/drbd/nagios/share"
                    <Directory "/drbd/nagios/share">
                                  Options None
                                  Options                MultiViews                   -Indexes                SymLinksIfOwnerMatch
     IncludesNoExec
                                  AllowOverride None
                                  Order Allow,Deny


BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
Allow from all
                    </Directory>
     </VirtualHost>


     3.4 Nagios
     Installiamo nagios sulla partizione che verrà repcliata, su entrambi i nodi:


     [root@nagios1/2]# mkdir /drbd/nagios
     [root@nagios1/2]# useradd -m nagios
     [root@nagios1/2]# groupadd nagios
     [root@nagios1/2]# usermod -a -G nagios nagios
     [root@nagios1/2]# usermod -a -G nagios apache
     [root@nagios1/2]#cd /usr/local/src; wget nagios-3.2.3.tar.gz
     [root@nagios1/2]# tar zxvf nagios-3.2.3.tar.gz
     [root@nagios1/2]# cd nagios-3.2.3
     [root@nagios1/2]#
       ./configure --with-nagios-user=nagios --with-nagios-group=nagios                                                      
     --with-command-user=nagios --with-command-group=nagios 
       --prefix=/drbd/nagios-3.2.3 --enable-embedded-perl  --enable-nanosleep
     --enable-FEATURE=yes --with-PACKAGE=yes
     [root@nagios1/2]# make all
     [root@nagios1/2]# make install
     [root@nagios1/2]# make install-init
     [root@nagios1/2]# make install-config
     [root@nagios1/2]# make install-commandmode
     [root@nagios1/2]# make install-webconf
     [root@nagios1/2]# ln -s /drbd/nagios-3.2.3 /drbd/nagios


     Solo sul nodo pimario:


     [root@nagios1/2]# htpasswd -c /drbd/nagios/etc/htpasswd.users nagiosadmin


     Dato che le risorse apache e nagios dovranno essere gestite dal cluster è necessario
     disabilitare i servizi allo startup, quindi su entrambi i nodi:


     [root@nagios1/2]# chkconfig --add nagios
     [root@nagios1/2]# chkconfig --level 2345 nagios off




BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
Nel medesimo modo installare i plugin su entrambi i nodi:


     tar zxvf nagios-plugins-1.4.15.tar.gz


     Alla fine della compilazione, è necessario eliminare dal nodo slave tutto ciò che è presente in
     /drbd/* visto che i dati necessari sono solo quelli presenti sul filesystem /drbd del nodo master,
     quindi solo sul nodo secondario:


     [root@nagios2]#rm –rf /drbd/*


     3.5 Installazione NCPL
     Visto che nagios ha i propri file di configurazione localmente e che nel momento in cui ci sono
     centinaia/migliaia di check ed host da gestire e modificare nagios non ci semplifica la vita;
     abbiamo utilizzato uno strumentino scritto in perl, che esporta tutti i file di nagios in MySql e che
     si gestisce via web.


     Seguire i seguenti passi su entrambi i nodi:


     [root@nagios1/2]# cd /drbd/nagios/share/
     [root@nagios1/2]# tar zxvf ncpl.tar.gz
     [root@nagios1/2]# rm -f ncpl.tar.gz
     [root@nagios1/2]# chown -R nagios:nagios ncpl


     Creare il file di configurazione di apache per ncpl su entrambi i nodi:


     [root@nagios1/2]# cat /etc/httpd/conf.d/ncpl.conf
     ScriptAlias /ncpl/cgi-bin /drbd/nagios/share/ncpl/cgi-bin
     Alias /ncpl /drbd/nagios/share/ncpl
     <Directory "/drbd/nagios/share/ncpl">
                    Options         ExecCGI
                    Order allow,deny
                    Allow from all
     </Directory>


     Creare il DB NCPL solo sul nodo master:


     [root@nagios1]# mysql -u root -p < create_ncpl.sql


BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
[root@nagios1]# mysql -u root -p
     [root@nagios1]# GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES ON ncpl.* TO
     'ncpl'@'localhost' IDENTIFIED BY 'Your Password Here';
     [root@nagios1]# GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES ON ncpl.* TO
     'ncpl'@'servername%' IDENTIFIED BY 'Your Password Here';


    A questo punto importare i file di nagios e definire tutti path.


     3.6 Installazione Heartbeat
     Nel repository ufficiale CentOS 5.5 sono presenti i pacchetti, quindi basterà lanciare i seguenti
     comandi, su entrambi i nodi:


     [root@nagios1/2                 ~]#        yum       install           heartbeat.x86_64                  heartbeat-gui.x86_64
     pygtk2.x86_64 pygtk2-libglade.x86_64


     Sul nodo nagios1:


     [root@nagios1 ~]# cat /etc/ha.d/ha.cf
     debugfile /var/log/ha-debug
     logfile /var/log/ha-log
     logfacility                  local0
     keepalive 2
     deadtime 15
     warntime 5
     ucast bond1 10.0.0.2
     ucast bond0 192.168.0.11
     auto_failback off
     crm yes
     node nagios1
     node nagios2
     logfacility                  local


     Sul nodo nagios2:


     [root@nagios2 ~]# cat /etc/ha.d/ha.cf
     debugfile /var/log/ha-debug
     logfile /var/log/ha-log
     logfacility                  local0

BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
keepalive 2
     deadtime 15
     warntime 5
     ucast bond1 10.0.0.1
     ucast bond0 192.168.0.10
     auto_failback off
     crm yes
     node nagios1
     node nagios2
     logfacility                  local


     Creare il file delle password su entrambi i nodi:


     [root@nagios1/2 ~]# cat /etc/ha.d/authkeys
     auth 1
     1 sha1 YourSecretClusterPassword
     [root@nagios1/2 ~]# chmod 600 /etc/ha.d/authkeys


     Startare heartbeat su entrambi i nodi:


     [root@nagios1/2 ~]#/etc/init.d/heartbeat start


     Cambiare la password dell’utente hacluster su entrambi i nodi:


     [root@nagios1/2 ~]# passwd hacluster


     Per la prima configurazione del cluster, consiglio vivamente di utilizzare la gui, è necessario
     quindi esportare il display, solo su un nodo:


     [root@nagios1 ~]# export DISPLAY=IL_TUO_IP:0.0
     [root@nagios1 ~]# hb_gui &


     E’ necessario creare un gruppo di risorse che chiameremo rg_nagios con all’interno i servizi che
     il cluster gestirà.


     La prima risorsa del resource group rg_nagios la chiameremo drbddisk, in base alla nostra
     configurazione di drbd dare i valori riportati nella seguente figura:


BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
Il compito della risorsa drbd_active è quello di attivare sul nodo primario e disattivare sul nodo
     secondario drbd.


     Creare la risorsa per il mount in automatico del fs:




BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
Il compito della risorsa drbd_fs è quella di montare il filesystem /dev/drbd1 in /drbd.


     Creare la risorsa per il la gestione del VIP:




     Allo stesso modo creeremo le risorse per la gestione httpd, mysqld e nagios. Visto che si parla di
     un semplice start di servizi, illustriamo la creazione della sola risorsa drbd_httpd:



BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
Alcuni comandi Pacemaker:
     Per verificare lo stato delle risorse da interfaccia testuale:


     [root@nagios1/2 ~]# crm_mon
     [root@ nagios1/2 ~]# crm_resource -L


     Lista OID dei nodi:


     [root@nagios1/2 ~]#                    crmadmin --nodes
                    normal node:nagios1 (9a98457e-a336-4e19-a822-fa4c1c4d41d4)
                    normal node: nagios2 (0be49ddf-8efd-4e15-b5d0-bb70b3652d53)


     Per Listare l'xml di una risorsa:


     [root@nagios1/2 ~]# crm_resource --resource drbd_active --query-xml


     Per Migrare una risorsa:


     [root@nagios1 ~]# crm_resource -r rg_nagios -M -H nagios2


     Per Pulire lo stato dopo una migrazione:


     [root@nepi-bd-01 ~]# crm_resource -r rg_nagios                                          –U


     Per Stoppare una risorsa:




BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
[root@nagios1/2 ~]# crm_resource -r vip -m -p target_role -v stopped


     Per effettuare modifiche sul file xml:


     [root@nagios1/2 ~]# cibadmin -Ql > local.xml <--- dump
     [root@nagios1/2 ~]# vi local.xml
     [root@nagios1/2 ~]# cibadmin -R -x local.xml <--- update




    Alcuni comandi drbd
    Verifica stato drbd:


     [root@nagios1/2 ~]# more /proc/drbd
     [root@ nagios1/2 ~]# drbd-overview


    Per effettuare uno switch manuale di risorsa drbd:


     [root@nagios1/2 ~]# umount /drbd
     [root@nagios1/2 ~]# drbdadm secondary r0
     [root@nagios1/2 ~]# drbdadm primary r0
     [root@nagios1/2 ~]# mount /dev/drbd1 /DRBD


    Nel caso si desincronizzassero i volumi, causati da uno Split Brain:


    Solo sul nodo con dati corrotti:


     [root@nagios1/2 ~]# drbdadm secondary r0
     [root@nagios1/2 ~]# drbdadm -- --discard-my-data connect r0


    Solo sul nodo con dati consistenti:


     [root@nagios1/2 ~]# drbdadm primary r0
     [root@nagios1/2 ~]# drbdadm connect r0




BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
Licenza d'uso “Attribuzione - Non commerciale - Non opere derivate”, secondo i criteri
internazionali Creative Commons (http://creativecommons.org/licenses/by-nc-nd/2.5/it/)




BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680
E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it
Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v.
Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015

More Related Content

What's hot

festival ICT 2013: Manager, CEO e Responsabili IT in Cloud. Caso concreto di ...
festival ICT 2013: Manager, CEO e Responsabili IT in Cloud. Caso concreto di ...festival ICT 2013: Manager, CEO e Responsabili IT in Cloud. Caso concreto di ...
festival ICT 2013: Manager, CEO e Responsabili IT in Cloud. Caso concreto di ...festival ICT 2016
 
Reti e internet
Reti e internetReti e internet
Reti e internetyrcorr
 
Reti Informatiche
Reti InformaticheReti Informatiche
Reti Informatichebity1988
 
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...Marcello Marino
 
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...Claudio Cardinali
 
BioDec LinuxDay2012 Erlug
BioDec LinuxDay2012 ErlugBioDec LinuxDay2012 Erlug
BioDec LinuxDay2012 ErlugBioDec
 

What's hot (9)

5_internet
5_internet5_internet
5_internet
 
Reti informatiche
Reti informaticheReti informatiche
Reti informatiche
 
festival ICT 2013: Manager, CEO e Responsabili IT in Cloud. Caso concreto di ...
festival ICT 2013: Manager, CEO e Responsabili IT in Cloud. Caso concreto di ...festival ICT 2013: Manager, CEO e Responsabili IT in Cloud. Caso concreto di ...
festival ICT 2013: Manager, CEO e Responsabili IT in Cloud. Caso concreto di ...
 
PostgreSQL : Tuning
PostgreSQL : TuningPostgreSQL : Tuning
PostgreSQL : Tuning
 
Reti e internet
Reti e internetReti e internet
Reti e internet
 
Reti Informatiche
Reti InformaticheReti Informatiche
Reti Informatiche
 
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
 
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
 
BioDec LinuxDay2012 Erlug
BioDec LinuxDay2012 ErlugBioDec LinuxDay2012 Erlug
BioDec LinuxDay2012 Erlug
 

Viewers also liked

Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012
Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012
Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012Fabio Grasso
 
Network Monitoring e Nagios®
Network Monitoring e Nagios®Network Monitoring e Nagios®
Network Monitoring e Nagios®Nicholas Pocher
 
Virtualizzazione e Network Management Open Source
Virtualizzazione e Network Management Open SourceVirtualizzazione e Network Management Open Source
Virtualizzazione e Network Management Open SourceMarco Vanino
 
Simple Network Management Protocol
Simple Network Management ProtocolSimple Network Management Protocol
Simple Network Management Protocolmichelemanzotti
 
CMDBUILD: Collaboration Suite?
CMDBUILD: Collaboration Suite?CMDBUILD: Collaboration Suite?
CMDBUILD: Collaboration Suite?CMDBuild org
 
Un prototipo di integrazione fra CMDBuild e NetEye / Nagios
Un prototipo di integrazione fra CMDBuild e NetEye / NagiosUn prototipo di integrazione fra CMDBuild e NetEye / Nagios
Un prototipo di integrazione fra CMDBuild e NetEye / NagiosCMDBuild org
 
Monitoraggio servizi OVERnetwork
Monitoraggio servizi OVERnetworkMonitoraggio servizi OVERnetwork
Monitoraggio servizi OVERnetworkLuca Lomi
 
Overview monitoraggio servizi erogati in rete tramite Nagios
Overview monitoraggio servizi erogati in rete tramite NagiosOverview monitoraggio servizi erogati in rete tramite Nagios
Overview monitoraggio servizi erogati in rete tramite NagiosLuca Lomi
 

Viewers also liked (9)

Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012
Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012
Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012
 
Network Monitoring e Nagios®
Network Monitoring e Nagios®Network Monitoring e Nagios®
Network Monitoring e Nagios®
 
Virtualizzazione e Network Management Open Source
Virtualizzazione e Network Management Open SourceVirtualizzazione e Network Management Open Source
Virtualizzazione e Network Management Open Source
 
Simple Network Management Protocol
Simple Network Management ProtocolSimple Network Management Protocol
Simple Network Management Protocol
 
CMDBUILD: Collaboration Suite?
CMDBUILD: Collaboration Suite?CMDBUILD: Collaboration Suite?
CMDBUILD: Collaboration Suite?
 
Un prototipo di integrazione fra CMDBuild e NetEye / Nagios
Un prototipo di integrazione fra CMDBuild e NetEye / NagiosUn prototipo di integrazione fra CMDBuild e NetEye / Nagios
Un prototipo di integrazione fra CMDBuild e NetEye / Nagios
 
Monitoraggio di rete con nagios
Monitoraggio di rete con nagiosMonitoraggio di rete con nagios
Monitoraggio di rete con nagios
 
Monitoraggio servizi OVERnetwork
Monitoraggio servizi OVERnetworkMonitoraggio servizi OVERnetwork
Monitoraggio servizi OVERnetwork
 
Overview monitoraggio servizi erogati in rete tramite Nagios
Overview monitoraggio servizi erogati in rete tramite NagiosOverview monitoraggio servizi erogati in rete tramite Nagios
Overview monitoraggio servizi erogati in rete tramite Nagios
 

Similar to Nagios in alta affidabilità con strumenti open source

Cross compiler per uso domestico
Cross compiler per uso domesticoCross compiler per uso domestico
Cross compiler per uso domesticoBabel
 
VMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia ViewVMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia ViewVMUG IT
 
VMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia ViewVMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia ViewVMUG IT
 
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackMySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackPar-Tec S.p.A.
 
LPPP - Linux Per le PMI (piccole e medie imprese) e la PA (Pubblica Amministr...
LPPP - Linux Per le PMI (piccole e medie imprese) e la PA (Pubblica Amministr...LPPP - Linux Per le PMI (piccole e medie imprese) e la PA (Pubblica Amministr...
LPPP - Linux Per le PMI (piccole e medie imprese) e la PA (Pubblica Amministr...Francesco Taurino
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileBioDec
 
ClearOS - Linux Small Business Server
ClearOS - Linux Small Business ServerClearOS - Linux Small Business Server
ClearOS - Linux Small Business ServerFrancesco Taurino
 
Installazione di Joomla nel cloud di Red Hat
Installazione di Joomla nel cloud di Red HatInstallazione di Joomla nel cloud di Red Hat
Installazione di Joomla nel cloud di Red HatBabel
 
Infrastrutture ad alta disponibilità ridondate geograficamente sull'infrastru...
Infrastrutture ad alta disponibilità ridondate geograficamente sull'infrastru...Infrastrutture ad alta disponibilità ridondate geograficamente sull'infrastru...
Infrastrutture ad alta disponibilità ridondate geograficamente sull'infrastru...seeweb
 
Smau Milano 2016 - Seeweb, Marco d'Itri
Smau Milano 2016 - Seeweb, Marco d'ItriSmau Milano 2016 - Seeweb, Marco d'Itri
Smau Milano 2016 - Seeweb, Marco d'ItriSMAU
 
Panoramica sul progetto OpenStack
Panoramica sul progetto OpenStackPanoramica sul progetto OpenStack
Panoramica sul progetto OpenStackPar-Tec S.p.A.
 
Cloudup, cloud server al minuto
Cloudup, cloud server al minutoCloudup, cloud server al minuto
Cloudup, cloud server al minutoENTER S.r.l.
 
Sicurezza flessibile con SELinux: architettura e configurazione
Sicurezza flessibile con SELinux: architettura e configurazioneSicurezza flessibile con SELinux: architettura e configurazione
Sicurezza flessibile con SELinux: architettura e configurazioneBabel
 
MySQL Tech Tour 2016 - Panoramica sul progetto Openstack
MySQL Tech Tour 2016 - Panoramica sul progetto OpenstackMySQL Tech Tour 2016 - Panoramica sul progetto Openstack
MySQL Tech Tour 2016 - Panoramica sul progetto OpenstackPar-Tec S.p.A.
 
Virtualizzare Nanosoft
Virtualizzare   NanosoftVirtualizzare   Nanosoft
Virtualizzare NanosoftDario Vemagi
 

Similar to Nagios in alta affidabilità con strumenti open source (20)

Cross compiler per uso domestico
Cross compiler per uso domesticoCross compiler per uso domestico
Cross compiler per uso domestico
 
Foundation server
Foundation serverFoundation server
Foundation server
 
Progetto Netkit
Progetto NetkitProgetto Netkit
Progetto Netkit
 
VMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia ViewVMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia View
 
VMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia ViewVMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia View
 
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackMySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
 
LPPP - Linux Per le PMI (piccole e medie imprese) e la PA (Pubblica Amministr...
LPPP - Linux Per le PMI (piccole e medie imprese) e la PA (Pubblica Amministr...LPPP - Linux Per le PMI (piccole e medie imprese) e la PA (Pubblica Amministr...
LPPP - Linux Per le PMI (piccole e medie imprese) e la PA (Pubblica Amministr...
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatile
 
ClearOS - Linux Small Business Server
ClearOS - Linux Small Business ServerClearOS - Linux Small Business Server
ClearOS - Linux Small Business Server
 
Installazione di Joomla nel cloud di Red Hat
Installazione di Joomla nel cloud di Red HatInstallazione di Joomla nel cloud di Red Hat
Installazione di Joomla nel cloud di Red Hat
 
Infrastrutture ad alta disponibilità ridondate geograficamente sull'infrastru...
Infrastrutture ad alta disponibilità ridondate geograficamente sull'infrastru...Infrastrutture ad alta disponibilità ridondate geograficamente sull'infrastru...
Infrastrutture ad alta disponibilità ridondate geograficamente sull'infrastru...
 
Smau Milano 2016 - Seeweb, Marco d'Itri
Smau Milano 2016 - Seeweb, Marco d'ItriSmau Milano 2016 - Seeweb, Marco d'Itri
Smau Milano 2016 - Seeweb, Marco d'Itri
 
Panoramica sul progetto OpenStack
Panoramica sul progetto OpenStackPanoramica sul progetto OpenStack
Panoramica sul progetto OpenStack
 
Erlug
ErlugErlug
Erlug
 
Cloudup, cloud server al minuto
Cloudup, cloud server al minutoCloudup, cloud server al minuto
Cloudup, cloud server al minuto
 
Sicurezza flessibile con SELinux: architettura e configurazione
Sicurezza flessibile con SELinux: architettura e configurazioneSicurezza flessibile con SELinux: architettura e configurazione
Sicurezza flessibile con SELinux: architettura e configurazione
 
MySQL Tech Tour 2016 - Panoramica sul progetto Openstack
MySQL Tech Tour 2016 - Panoramica sul progetto OpenstackMySQL Tech Tour 2016 - Panoramica sul progetto Openstack
MySQL Tech Tour 2016 - Panoramica sul progetto Openstack
 
Case study VDI
Case study VDICase study VDI
Case study VDI
 
Case study VDI
Case study VDICase study VDI
Case study VDI
 
Virtualizzare Nanosoft
Virtualizzare   NanosoftVirtualizzare   Nanosoft
Virtualizzare Nanosoft
 

More from Babel

Sophos Complete Security: arte e scienza della sicurezza
Sophos Complete Security: arte e scienza della sicurezzaSophos Complete Security: arte e scienza della sicurezza
Sophos Complete Security: arte e scienza della sicurezzaBabel
 
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...Babel
 
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...Babel
 
Intercettazioni: guida alle nuove norme per i provider
Intercettazioni: guida alle nuove norme per i providerIntercettazioni: guida alle nuove norme per i provider
Intercettazioni: guida alle nuove norme per i providerBabel
 
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...Babel
 
Will iPython replace Bash?
Will iPython replace Bash?Will iPython replace Bash?
Will iPython replace Bash?Babel
 
La gestione integrata della sicurezza in ANSA: dal firewalling all'UTM
La gestione integrata della sicurezza in ANSA: dal firewalling all'UTMLa gestione integrata della sicurezza in ANSA: dal firewalling all'UTM
La gestione integrata della sicurezza in ANSA: dal firewalling all'UTMBabel
 
Shell Control Box - Il Gusto della Sicurezza
Shell Control Box - Il Gusto della SicurezzaShell Control Box - Il Gusto della Sicurezza
Shell Control Box - Il Gusto della SicurezzaBabel
 
Tracciamento delle attività di amministrazione mediante i BalaBit Shell Contr...
Tracciamento delle attività di amministrazione mediante i BalaBit Shell Contr...Tracciamento delle attività di amministrazione mediante i BalaBit Shell Contr...
Tracciamento delle attività di amministrazione mediante i BalaBit Shell Contr...Babel
 
La Desktop Virtualization
La Desktop VirtualizationLa Desktop Virtualization
La Desktop VirtualizationBabel
 
Crittografia e integrazione dei sistemi con Python
Crittografia e integrazione dei sistemi con PythonCrittografia e integrazione dei sistemi con Python
Crittografia e integrazione dei sistemi con PythonBabel
 
Intercettazioni e posta elettronica: le misure di sicurezza per i gestori
Intercettazioni e posta elettronica: le misure di sicurezza per i gestoriIntercettazioni e posta elettronica: le misure di sicurezza per i gestori
Intercettazioni e posta elettronica: le misure di sicurezza per i gestoriBabel
 
Babel presenta: Opsview
Babel presenta: OpsviewBabel presenta: Opsview
Babel presenta: OpsviewBabel
 
Monitoraggio di infrastrutture IT mediante Opsview Enteprise V4
Monitoraggio di infrastrutture IT mediante Opsview Enteprise V4Monitoraggio di infrastrutture IT mediante Opsview Enteprise V4
Monitoraggio di infrastrutture IT mediante Opsview Enteprise V4Babel
 
OpenVAS, lo strumento open source per il vulnerability assessment
OpenVAS, lo strumento open source per il vulnerability assessmentOpenVAS, lo strumento open source per il vulnerability assessment
OpenVAS, lo strumento open source per il vulnerability assessmentBabel
 
Testing with MySQL embedded
Testing with MySQL embeddedTesting with MySQL embedded
Testing with MySQL embeddedBabel
 
Ridirezionamento di I/O con Bash: un breve approfondimento
Ridirezionamento di I/O con Bash: un breve approfondimentoRidirezionamento di I/O con Bash: un breve approfondimento
Ridirezionamento di I/O con Bash: un breve approfondimentoBabel
 
Il fenomeno dello spam: origine e contromisure
Il fenomeno dello spam: origine e contromisureIl fenomeno dello spam: origine e contromisure
Il fenomeno dello spam: origine e contromisureBabel
 
Il software open source: regole e licenze
Il software open source: regole e licenzeIl software open source: regole e licenze
Il software open source: regole e licenzeBabel
 
Git: un'introduzione pratica
Git: un'introduzione praticaGit: un'introduzione pratica
Git: un'introduzione praticaBabel
 

More from Babel (20)

Sophos Complete Security: arte e scienza della sicurezza
Sophos Complete Security: arte e scienza della sicurezzaSophos Complete Security: arte e scienza della sicurezza
Sophos Complete Security: arte e scienza della sicurezza
 
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
 
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
 
Intercettazioni: guida alle nuove norme per i provider
Intercettazioni: guida alle nuove norme per i providerIntercettazioni: guida alle nuove norme per i provider
Intercettazioni: guida alle nuove norme per i provider
 
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
 
Will iPython replace Bash?
Will iPython replace Bash?Will iPython replace Bash?
Will iPython replace Bash?
 
La gestione integrata della sicurezza in ANSA: dal firewalling all'UTM
La gestione integrata della sicurezza in ANSA: dal firewalling all'UTMLa gestione integrata della sicurezza in ANSA: dal firewalling all'UTM
La gestione integrata della sicurezza in ANSA: dal firewalling all'UTM
 
Shell Control Box - Il Gusto della Sicurezza
Shell Control Box - Il Gusto della SicurezzaShell Control Box - Il Gusto della Sicurezza
Shell Control Box - Il Gusto della Sicurezza
 
Tracciamento delle attività di amministrazione mediante i BalaBit Shell Contr...
Tracciamento delle attività di amministrazione mediante i BalaBit Shell Contr...Tracciamento delle attività di amministrazione mediante i BalaBit Shell Contr...
Tracciamento delle attività di amministrazione mediante i BalaBit Shell Contr...
 
La Desktop Virtualization
La Desktop VirtualizationLa Desktop Virtualization
La Desktop Virtualization
 
Crittografia e integrazione dei sistemi con Python
Crittografia e integrazione dei sistemi con PythonCrittografia e integrazione dei sistemi con Python
Crittografia e integrazione dei sistemi con Python
 
Intercettazioni e posta elettronica: le misure di sicurezza per i gestori
Intercettazioni e posta elettronica: le misure di sicurezza per i gestoriIntercettazioni e posta elettronica: le misure di sicurezza per i gestori
Intercettazioni e posta elettronica: le misure di sicurezza per i gestori
 
Babel presenta: Opsview
Babel presenta: OpsviewBabel presenta: Opsview
Babel presenta: Opsview
 
Monitoraggio di infrastrutture IT mediante Opsview Enteprise V4
Monitoraggio di infrastrutture IT mediante Opsview Enteprise V4Monitoraggio di infrastrutture IT mediante Opsview Enteprise V4
Monitoraggio di infrastrutture IT mediante Opsview Enteprise V4
 
OpenVAS, lo strumento open source per il vulnerability assessment
OpenVAS, lo strumento open source per il vulnerability assessmentOpenVAS, lo strumento open source per il vulnerability assessment
OpenVAS, lo strumento open source per il vulnerability assessment
 
Testing with MySQL embedded
Testing with MySQL embeddedTesting with MySQL embedded
Testing with MySQL embedded
 
Ridirezionamento di I/O con Bash: un breve approfondimento
Ridirezionamento di I/O con Bash: un breve approfondimentoRidirezionamento di I/O con Bash: un breve approfondimento
Ridirezionamento di I/O con Bash: un breve approfondimento
 
Il fenomeno dello spam: origine e contromisure
Il fenomeno dello spam: origine e contromisureIl fenomeno dello spam: origine e contromisure
Il fenomeno dello spam: origine e contromisure
 
Il software open source: regole e licenze
Il software open source: regole e licenzeIl software open source: regole e licenze
Il software open source: regole e licenze
 
Git: un'introduzione pratica
Git: un'introduzione praticaGit: un'introduzione pratica
Git: un'introduzione pratica
 

Nagios in alta affidabilità con strumenti open source

  • 1. Nagios in alta affidabilità con strumenti open source di Gianpaolo Buono Scenario Per consentire l’alta affidabilità dei servizi è stato sviluppato un sistema che preveda la ridondanza sia fisica che logica del servizio in oggetto attraverso componenti opensource. Il “cluster” proposto è costituito da due nodi GNU/Linux in configurazione Active/Standby ed i servizi erogati sono nagios, apache, mysqld, drbd ed il VIP registrati in un gruppo di risorse che possono migrare da un nodo all'altro senza perdita di dati; pertanto in caso di failure di uno dei due il detentore delle attività, lascia il posto al nodo alternativo. Questo tipo di funzionalità permette la totale ridondanza dei servizi, poiché gli host sono perfettamente speculari in termini di configurazione ed i dati di servizio risiedono su un disco mirrorato via rete mediante la patch del kernel drbd. In questo tutorial non saranno approfonditi gli argomenti, ma saranno date le basi per poter procedere ad una configurazione simile in autonomia. 1. Software  Nagios – Per il monitoraggio  Drbd – Per sincronizzare i dati via rete  NCPL – Per la gestione via web dei file di configurazione di Nagios  MySQL – Il db che ospiterà le configurazioni di Nagios  Pacemaker – Per gestire l’alta affidabilità  CentOS – Il sistema operativo 1.1 Nagios Nagios è una nota applicazione open source per il monitoraggio di computer e risorse di rete. La sua funzione base è quella di controllare nodi, reti e servizi specificati, avvertendo quando questi non garantiscono il loro servizio o quando ritornano attivi. E’ fortemente personalizzabile, in quanto i controlli avvengono tramite programmi esterni (plugin) e la disponibilità del codice sorgente facilita la scrittura di nuovi check. http://www.nagios.org/ BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 2. 1.2 DRBD DRBD (Distributed Replicated Block Device) è una sorta di RAID1 via rete, il software permette infatti di tenere sincronizzate due o più partizioni di Hard Disk ospitati su due server diversi. Una configurazione di DRBD si compone quindi di due nodi (Server Linux), uno attivo e l'altro passivo. Quello passivo è continuamente sincronizzato con il nodo attivo, la cui partizione non può essere montata. DRBD si compone da un modulo per il Kernel Linux e da alcuni tool, per la sua gestione, in userspace. http://www.drbd.org/ 1.3 NCPL NCPL è un strumento web-based scritto in perl per gestire e configurare Nagios. Viene utilizzato per semplificare l’aggiunta e la modifica di controlli. Usa un db MySql per conservare i dati ed effettuare backup. http://sourceforge.net/projects/ncpl/ 1.4 Pacemaker Pacemaker è un software per creare servizi in cluster. Per servizi in cluster si intendono due macchine (definite nodi) sulle quali vengono assegnate risorse da gestire. Se un nodo o un servizio smette di funzionare, al suo posto subentra l’altro in grado di garantire il funzionamento delle stesse risorse e lo scopo di creare il minor disservizio possibile all’utente finale. In questo caso si parla di modalità active-passive, cioè una risorsa eroga il servizio mentre l’altra è in hot- stanby pronta ad erogare la risorsa in caso di malfunzionamenti. http://www.clusterlabs.org/ 1.5 MySql MySql è un Relational Database Management System (RDBMS), composto da un client con interfaccia a caratteri e un server, entrambi disponibili sia per sistemi Unix come GNU/Linux che per Windows, anche se prevale un suo utilizzo in ambito Unix. http://www.mysql.com/ BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 3. 1.6 CentOS CentOS (acronimo di Community enterprise Operating System) è un sistema operativo concepito per fornire una piattaforma di classe enterprise per chiunque intenda utilizzare GNU/Linux per usi professionali. Si tratta di una distribuzione Linux che deriva da Red Hat Enterprise Linux con cui cerca di essere completamente compatibile. http://www.centos.org/ 2. Configurazione 2.1 Network Considerando che i due server hanno tutte le componenti hardware ridondate, le schede di rete in questione sono 4 Gigabit aggregate a coppie di due in modalità 0 (active/standby) per garantire l’alta affidabilità utilizzando la tecnologia “channel bonding” che permette di aggregare su più di una interfaccia di rete un indirizzo IP. Pertanto, nel caso in cui un’interfaccia di rete perda la sua funzionalità, non si ha disservizio poiché quella in accoppiamento ha già preso il carico delle connessi. Analizziamo la configurazione di rete proposta: hostname = nagios1 bond0 (eth0 | eth2)  10.0.0.1/255.255.255.248  Cavi Cross bond1 (eth1 | eth3)  192.168.0.10/255.255.255.0  Management hostname = nagios2 bond0 (eth0 | eth2)  10.0.0.2/255.255.255.248  Cavi Cross bond1 (eth1 | eth3)  192.168.0.11/255.255.255.0  Management VIP = 192.168.0.100/24 Sull’interfaccia denominata bond0 faremo passare tutto ciò che riguarda il traffico di heartbeat ed i dati relativi alla sincronizzazione del disco drbd. Mentre l’interfaccia bond1 la dedicheremo per l’erogazione del servizio e la gestione dei server. BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 4. E’ prassi, per avere una maggiore ridondanza, connettere le schede di rete presenti sul channel bond1 (eth1 ed eth3) su due switch Gigabit di rete differenti come mostrato in figura: 2.2 Storage Ogni server ha due dischi interni, il primo (xvda) da 10GB è dove risiede il sistema operativo; il secondo (xvdb) 22 GB in gestione a drbd per la replica via rete; dove installeremo tutto il software da allineare e tutti i file di configurazione. I dischi o partizioni da replicare devono essere della stessa dimensione e medesima velocità, per evitare eventuali colli di bottiglia. Analizziamo la configurazione dei dischi: [root@nagios1/2 ~]# fdisk -l Disk /dev/xvda: 10.6 GB, 10687086592 bytes 255 heads, 63 sectors/track, 1299 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/xvda1 * 1 1179 9470286 83 Linux /dev/xvda2 1180 1299 963900 82 Linux swap / Solaris Disk /dev/xvdb: 22.0 GB, 22045261824 bytes 255 heads, 63 sectors/track, 2680 cylinders Quindi su entrambi i nodi creiamo la partizione da replicare via rete: [root@nagios1/2 ~]# fdisk /dev/xvdb BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 5. The number of cylinders for this disk is set to 2680. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-2680, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-2680, default 2680): Using default value 2680 Command (m for help): w Quindi sulla partizione xvdb1 verranno installati tutti i dati che dovranno essere ridondati. 3. Installazione del Software 3.1 DRBD: Nel repository ufficiale CentOS 5.5 sono presenti i pacchetti, quindi basterà lanciare i seguenti comandi per avere un kernel drbd, su entrambi i nodi: [root@nagios1/2 ~]# yum install -y drbd83.x86_64 kmod-drbd83-xen.x86_64 [root@nagios1/2 ~]# shutdown –r now I tool di gestione a riga di comando sono tre:  drbdadm è il più utilizzato ed è una interfaccia per drbdsetup e drbdmeta  drbdsetup configura il modulo DRBD caricato nel kernel  drbdmeta gestisce i meta-dati dei dispositivi da replicare BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 6. Creare il file di configurazione identico su entrambi i nodi: [root@nagios1/2 ~]# cat /etc/drbd.conf # # please have a a look at the example configuration file in # /usr/share/doc/drbd83/drbd.conf # global { usage-count yes; } common { protocol C; } resource r0 { syncer { rate 100M; } on nagios1 { device /dev/drbd1; disk /dev/xvdb1; address 10.0.0.1:7789; meta-disk internal; } on nagios2 { device /dev/drbd1; disk /dev/xvdb1; address 10.0.0.2:7789; meta-disk internal; } } Inutile dire che è possibile diversificare in svariati modi le configurazioni drbd; è possibile cambiare il tipo di protocollo, i parametri che riguardano la rete e tuning particolari a seconda di cosa debba contenere il filesystem. Creiamo la risorsa su entrambi i nodi: [root@nagios1/2 ~]# drbdadm create-md r0 [root@nagios1/2 ~]# drbdadm attach r0 BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 7. [root@nagios1/2 ~]# drbdadm syncer r0 [root@nagios1/2 ~]# drbdadm connect r0 Essendo drbd uno strumento che può scrivere solo su un nodo alla volta, è necessario decidere il server Master che nel nostro caso è nagios1 e sincronizzare il disco da nagios1 (eletto master) verso nagios2 (eletto slave) con il seguente comando: [root@nagios1 ~]# drbdadm -- --overwrite-data-of-peer primary r0 Per verificare lo stato d'avanzamento della replica, su entrambi i nodi può essere dato il comando: [root@nagios1 ~]# cat /proc/drbd o [root@nagios2 ~]# drbd-overview A questo punto e' possibile formattare il disco replicato, solo sul nodo master: [root@nagios1 ~]# mkfs.ext3 /dev/drbd1 Creare la directory e montare il file system drbd, solo sul nodo master: [root@nagios1 ~]# mkdir /drbd [root@nagios1 ~]# mount /dev/drbd1 /drbd Per verifica, scrivere qualcosa sul volume montato. [root@nagios1 ~]# dd if=/dev/zero of=/drbd/test.dd bs=1M count=1024 Dato che la gestione del software drbd verrà data al cluster Pacemaker, è necessario provare che tutto funzioni correttamente anche sull’altro nodo, quindi bisogna effettuare uno switch della risorsa drbd manuale: BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 8. Sul nodo master: [root@nagios1 ~]# umount /drbd [root@nagios1 ~]# drbdadm secondary r0 Sul nodo slave: [root@nagios2 ~]# drbdadm primary r0 [root@nagios2 ~]# mount /dev/drbd1 /drbd Prima di far gestire drbd al cluster, smontare il filesystem /drbd e dare il comando: [root@nagios2 ~]# drbdadm secondary r0 In modo che qualsiasi nodo è pronto per attivare drbd. 3.2 MySQL: Sul nodo definito da noi master, montare manualmente il fs drbd: [root@nagios1 ~]# drbdadm primary r0 [root@nagios1 ~]# mount /dev/drbd1 /drbd Su entrambi i nodi: [root@nagios1/2 ~]# yum -y install mysql-server.x86_64 Solo sul nodo master: [root@nagios1 src]# mv /var/lib/mysql /drbd/ [root@nagios1 src]# chown -R mysql:mysql /drbd/mysql/ Dato che mysql dovrà essere gestito dal cluster, eliminarlo dallo startup dei runlevel, su entrambi i nodi: [root@nagios1/2 src]# chkconfig mysql off Solo sul nodo slave: BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 9. [root@nagios2 src]# rm -rf /var/lib/mysql/ Correggere il file my.cnf in modo da far puntare alla nuova datadir di mysql su entrambi i nodi: [root@nagios1/2 ~]# cat /etc/my.cnf [mysqld] datadir = /drbd/mysql socket = /drbd/mysql/mysql.sock user = mysql old_passwords=1 [mysqld_safe] socket = /drbd/mysql/mysql.sock pid-file=/var/run/mysqld/mysqld.pid Provare uno start di myql, solo sul nodo master con filesystem drbd montato: [root@nagios1 ~]# /etc/init.d/mysqld start 3.3 Installazione Apache Anche l’installazione di apache è costituita da pochi passaggi. Installare i pacchetti su entrambi i nodi: [root@nagios1/2]# yum install -y httpd* Creare il file di configurazione di apache relativo a nagios su entrami i nodi: [root@nagios1/2 ~]# cat /etc/httpd/conf.d/nagios.conf <VirtualHost _default_:80> Alias /nagios "/drbd/nagios/share" <Directory "/drbd/nagios/share"> Options None Options MultiViews -Indexes SymLinksIfOwnerMatch IncludesNoExec AllowOverride None Order Allow,Deny BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 10. Allow from all </Directory> </VirtualHost> 3.4 Nagios Installiamo nagios sulla partizione che verrà repcliata, su entrambi i nodi: [root@nagios1/2]# mkdir /drbd/nagios [root@nagios1/2]# useradd -m nagios [root@nagios1/2]# groupadd nagios [root@nagios1/2]# usermod -a -G nagios nagios [root@nagios1/2]# usermod -a -G nagios apache [root@nagios1/2]#cd /usr/local/src; wget nagios-3.2.3.tar.gz [root@nagios1/2]# tar zxvf nagios-3.2.3.tar.gz [root@nagios1/2]# cd nagios-3.2.3 [root@nagios1/2]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-command-user=nagios --with-command-group=nagios --prefix=/drbd/nagios-3.2.3 --enable-embedded-perl --enable-nanosleep --enable-FEATURE=yes --with-PACKAGE=yes [root@nagios1/2]# make all [root@nagios1/2]# make install [root@nagios1/2]# make install-init [root@nagios1/2]# make install-config [root@nagios1/2]# make install-commandmode [root@nagios1/2]# make install-webconf [root@nagios1/2]# ln -s /drbd/nagios-3.2.3 /drbd/nagios Solo sul nodo pimario: [root@nagios1/2]# htpasswd -c /drbd/nagios/etc/htpasswd.users nagiosadmin Dato che le risorse apache e nagios dovranno essere gestite dal cluster è necessario disabilitare i servizi allo startup, quindi su entrambi i nodi: [root@nagios1/2]# chkconfig --add nagios [root@nagios1/2]# chkconfig --level 2345 nagios off BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 11. Nel medesimo modo installare i plugin su entrambi i nodi: tar zxvf nagios-plugins-1.4.15.tar.gz Alla fine della compilazione, è necessario eliminare dal nodo slave tutto ciò che è presente in /drbd/* visto che i dati necessari sono solo quelli presenti sul filesystem /drbd del nodo master, quindi solo sul nodo secondario: [root@nagios2]#rm –rf /drbd/* 3.5 Installazione NCPL Visto che nagios ha i propri file di configurazione localmente e che nel momento in cui ci sono centinaia/migliaia di check ed host da gestire e modificare nagios non ci semplifica la vita; abbiamo utilizzato uno strumentino scritto in perl, che esporta tutti i file di nagios in MySql e che si gestisce via web. Seguire i seguenti passi su entrambi i nodi: [root@nagios1/2]# cd /drbd/nagios/share/ [root@nagios1/2]# tar zxvf ncpl.tar.gz [root@nagios1/2]# rm -f ncpl.tar.gz [root@nagios1/2]# chown -R nagios:nagios ncpl Creare il file di configurazione di apache per ncpl su entrambi i nodi: [root@nagios1/2]# cat /etc/httpd/conf.d/ncpl.conf ScriptAlias /ncpl/cgi-bin /drbd/nagios/share/ncpl/cgi-bin Alias /ncpl /drbd/nagios/share/ncpl <Directory "/drbd/nagios/share/ncpl"> Options ExecCGI Order allow,deny Allow from all </Directory> Creare il DB NCPL solo sul nodo master: [root@nagios1]# mysql -u root -p < create_ncpl.sql BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 12. [root@nagios1]# mysql -u root -p [root@nagios1]# GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES ON ncpl.* TO 'ncpl'@'localhost' IDENTIFIED BY 'Your Password Here'; [root@nagios1]# GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES ON ncpl.* TO 'ncpl'@'servername%' IDENTIFIED BY 'Your Password Here'; A questo punto importare i file di nagios e definire tutti path. 3.6 Installazione Heartbeat Nel repository ufficiale CentOS 5.5 sono presenti i pacchetti, quindi basterà lanciare i seguenti comandi, su entrambi i nodi: [root@nagios1/2 ~]# yum install heartbeat.x86_64 heartbeat-gui.x86_64 pygtk2.x86_64 pygtk2-libglade.x86_64 Sul nodo nagios1: [root@nagios1 ~]# cat /etc/ha.d/ha.cf debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 keepalive 2 deadtime 15 warntime 5 ucast bond1 10.0.0.2 ucast bond0 192.168.0.11 auto_failback off crm yes node nagios1 node nagios2 logfacility local Sul nodo nagios2: [root@nagios2 ~]# cat /etc/ha.d/ha.cf debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 13. keepalive 2 deadtime 15 warntime 5 ucast bond1 10.0.0.1 ucast bond0 192.168.0.10 auto_failback off crm yes node nagios1 node nagios2 logfacility local Creare il file delle password su entrambi i nodi: [root@nagios1/2 ~]# cat /etc/ha.d/authkeys auth 1 1 sha1 YourSecretClusterPassword [root@nagios1/2 ~]# chmod 600 /etc/ha.d/authkeys Startare heartbeat su entrambi i nodi: [root@nagios1/2 ~]#/etc/init.d/heartbeat start Cambiare la password dell’utente hacluster su entrambi i nodi: [root@nagios1/2 ~]# passwd hacluster Per la prima configurazione del cluster, consiglio vivamente di utilizzare la gui, è necessario quindi esportare il display, solo su un nodo: [root@nagios1 ~]# export DISPLAY=IL_TUO_IP:0.0 [root@nagios1 ~]# hb_gui & E’ necessario creare un gruppo di risorse che chiameremo rg_nagios con all’interno i servizi che il cluster gestirà. La prima risorsa del resource group rg_nagios la chiameremo drbddisk, in base alla nostra configurazione di drbd dare i valori riportati nella seguente figura: BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 14. Il compito della risorsa drbd_active è quello di attivare sul nodo primario e disattivare sul nodo secondario drbd. Creare la risorsa per il mount in automatico del fs: BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 15. Il compito della risorsa drbd_fs è quella di montare il filesystem /dev/drbd1 in /drbd. Creare la risorsa per il la gestione del VIP: Allo stesso modo creeremo le risorse per la gestione httpd, mysqld e nagios. Visto che si parla di un semplice start di servizi, illustriamo la creazione della sola risorsa drbd_httpd: BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 16. Alcuni comandi Pacemaker: Per verificare lo stato delle risorse da interfaccia testuale: [root@nagios1/2 ~]# crm_mon [root@ nagios1/2 ~]# crm_resource -L Lista OID dei nodi: [root@nagios1/2 ~]# crmadmin --nodes normal node:nagios1 (9a98457e-a336-4e19-a822-fa4c1c4d41d4) normal node: nagios2 (0be49ddf-8efd-4e15-b5d0-bb70b3652d53) Per Listare l'xml di una risorsa: [root@nagios1/2 ~]# crm_resource --resource drbd_active --query-xml Per Migrare una risorsa: [root@nagios1 ~]# crm_resource -r rg_nagios -M -H nagios2 Per Pulire lo stato dopo una migrazione: [root@nepi-bd-01 ~]# crm_resource -r rg_nagios –U Per Stoppare una risorsa: BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 17. [root@nagios1/2 ~]# crm_resource -r vip -m -p target_role -v stopped Per effettuare modifiche sul file xml: [root@nagios1/2 ~]# cibadmin -Ql > local.xml <--- dump [root@nagios1/2 ~]# vi local.xml [root@nagios1/2 ~]# cibadmin -R -x local.xml <--- update Alcuni comandi drbd Verifica stato drbd: [root@nagios1/2 ~]# more /proc/drbd [root@ nagios1/2 ~]# drbd-overview Per effettuare uno switch manuale di risorsa drbd: [root@nagios1/2 ~]# umount /drbd [root@nagios1/2 ~]# drbdadm secondary r0 [root@nagios1/2 ~]# drbdadm primary r0 [root@nagios1/2 ~]# mount /dev/drbd1 /DRBD Nel caso si desincronizzassero i volumi, causati da uno Split Brain: Solo sul nodo con dati corrotti: [root@nagios1/2 ~]# drbdadm secondary r0 [root@nagios1/2 ~]# drbdadm -- --discard-my-data connect r0 Solo sul nodo con dati consistenti: [root@nagios1/2 ~]# drbdadm primary r0 [root@nagios1/2 ~]# drbdadm connect r0 BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015
  • 18. Licenza d'uso “Attribuzione - Non commerciale - Non opere derivate”, secondo i criteri internazionali Creative Commons (http://creativecommons.org/licenses/by-nc-nd/2.5/it/) BABEL S.r.l. - P.zza S.Benedetto da Norcia 33 - 00040, Pomezia (RM) - Tel:. +39 06.9826.9600 - Fax. +39 06.9826.9680 E-Mail: info@babel.it – PEC: babel@pec.babel.it – WEB: http://www.babel.it Reg. Imprese di Roma N° 06062681009 - N.R.E.A. 953123 - P.I. e C.F. 06062681009 Cap. Soc. € 102.774,00 i.v. Società soggetta alla direzione e coordinamento della Par-tec S.p.A - Società iscritta al registro delle Imprese di Milano al numero 1293820015