Configuració de la supervisió en temps real amb Ganglia per a graelles i clústers de servidors Linux


Des que els administradors de sistemes s'han encarregat de gestionar servidors i grups de màquines, eines com les aplicacions de monitorització han estat les seves millors amigues. Probablement estareu familiaritzat amb eines com Icinga i Centreon. Tot i que aquests són els pesos pesats de la supervisió, configurar-los i aprofitar plenament les seves funcions pot ser una mica difícil per als usuaris nous.

En aquest article us presentarem Ganglia, un sistema de monitorització fàcilment escalable i que permet visualitzar una gran varietat de mètriques del sistema de servidors i clústers Linux (a més de gràfics) en temps real.

Ganglia us permet configurar graelles (ubicacions) i clústers (grups de servidors) per a una millor organització.

Així, podeu crear una graella composta per totes les màquines en un entorn remot i, a continuació, agrupar aquestes màquines en conjunts més petits en funció d'altres criteris.

A més, la interfície web de Ganglia està optimitzada per a dispositius mòbils i també us permet exportar dades en formats .csv i .json.

El nostre entorn de prova estarà format per un servidor central CentOS 7 (adreça IP 192.168.0.29) on instal·larem Ganglia, i una màquina Ubuntu 14.04 (192.168.0.32), la caixa que volem supervisar mitjançant la interfície web de Ganglia.

Al llarg d'aquesta guia, ens referirem al sistema CentOS 7 com a node mestre i a la caixa Ubuntu com a màquina supervisada.

Instal·lació i configuració de Ganglia

Per instal·lar les utilitats de supervisió al node mestre, seguiu aquests passos:

1. Habiliteu el repositori EPEL i instal·leu Ganglia i les utilitats relacionades des d'allà:

# yum update && yum install epel-release
# yum install ganglia rrdtool ganglia-gmetad ganglia-gmond ganglia-web 

Els paquets instal·lats al pas anterior juntament amb els ganglis, la pròpia aplicació, realitzen les funcions següents:

  1. rrdtool, la base de dades Round-Robin, és una eina que s'utilitza per emmagatzemar i mostrar la variació de dades al llarg del temps mitjançant gràfics.
  2. ganglia-gmetad és el dimoni que recull dades de supervisió dels amfitrions que voleu supervisar. En aquests amfitrions i al node mestre també cal instal·lar ganglia-gmond (el mateix dimoni de monitorització):
  3. ganglia-web proporciona la interfície web on veurem els gràfics històrics i les dades sobre els sistemes monitoritzats.

2. Configureu l'autenticació per a la interfície web de Ganglia (/usr/share/ganglia). Utilitzarem l'autenticació bàsica tal com ens proporciona Apache.

Si voleu explorar mecanismes de seguretat més avançats, consulteu la secció Autorització i autenticació dels documents d'Apache.

Per aconseguir aquest objectiu, creeu un nom d'usuari i assigneu una contrasenya per accedir a un recurs protegit per Apache. En aquest exemple, crearem un nom d'usuari anomenat adminganglia i assignarem una contrasenya de la nostra elecció, que s'emmagatzemarà a /etc/httpd/auth.basic (no dubteu a triar un altre directori i/o fitxer). nom: sempre que Apache tingui permisos de lectura sobre aquests recursos, estarà bé):

# htpasswd -c /etc/httpd/auth.basic adminganglia

Introduïu la contrasenya d'adminganglia dues vegades abans de continuar.

3. Modifiqueu /etc/httpd/conf.d/ganglia.conf de la manera següent:

Alias /ganglia /usr/share/ganglia
<Location /ganglia>
    AuthType basic
    AuthName "Ganglia web UI"
    AuthBasicProvider file
    AuthUserFile "/etc/httpd/auth.basic"
    Require user adminganglia
</Location>

4. Editeu /etc/ganglia/gmetad.conf:

Primer, utilitzeu la directiva gridname seguida d'un nom descriptiu per a la graella que esteu configurant:

gridname "Home office"

A continuació, utilitzeu data_source seguit d'un nom descriptiu per al clúster (grup de servidors), un interval de sondeig en segons i l'adreça IP dels nodes mestres i supervisats:

data_source "Labs" 60 192.168.0.29:8649 # Master node
data_source "Labs" 60 192.168.0.32 # Monitored node

5. Editeu /etc/ganglia/gmond.conf.

a) Assegureu-vos que el bloc de clúster té el següent aspecte:

cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}

b) Al bloc udp_send_chanel, comenta la directiva mcast_join:

udp_send_channel   {
  #mcast_join = 239.2.11.71
  host = localhost
  port = 8649
  ttl = 1
}

c) Finalment, comenta les directives mcast_join i bind al bloc udp_recv_channel:

udp_recv_channel {
  #mcast_join = 239.2.11.71 ## comment out
  port = 8649
  #bind = 239.2.11.71 ## comment out
}

Deseu els canvis i sortiu.

6. Obriu el port 8649/udp i permeteu que els scripts PHP (executats mitjançant Apache) es connectin a la xarxa mitjançant el booleà SELinux necessari:

# firewall-cmd --add-port=8649/udp
# firewall-cmd --add-port=8649/udp --permanent
# setsebool -P httpd_can_network_connect 1

7. Reinicieu Apache, gmetad i gmond. A més, assegureu-vos que estiguin habilitats per iniciar-se a l'arrencada:

# systemctl restart httpd gmetad gmond
# systemctl enable httpd gmetad httpd

En aquest punt, hauríeu de poder obrir la interfície web de Ganglia a http://192.168.0.29/ganglia i iniciar sessió amb les credencials del #Pas 2.

8. A l'amfitrió Ubuntu, només instal·larem gangli-monitor, l'equivalent de gangli-gmond a CentOS:

$ sudo aptitude update && aptitude install ganglia-monitor

9. Editeu el fitxer /etc/ganglia/gmond.conf al quadre supervisat. Hauria de ser idèntic al mateix fitxer del node mestre, excepte que les línies comentades del clúster, udp_send_channel i udp_recv_channel haurien d'estar habilitades:

cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}

udp_send_channel   {
  mcast_join = 239.2.11.71
  host = localhost
  port = 8649
  ttl = 1
}

udp_recv_channel {
  mcast_join = 239.2.11.71 ## comment out
  port = 8649
  bind = 239.2.11.71 ## comment out
}

A continuació, reinicieu el servei:

$ sudo service ganglia-monitor restart

10. Actualitzeu la interfície web i hauríeu de poder veure les estadístiques i els gràfics dels dos amfitrions dins de la quadrícula de l'oficina a casa/clúster Labs (utilitzeu el menú desplegable al costat de la quadrícula de l'oficina a casa per triar un clúster, Labs en el nostre cas):

Mitjançant les pestanyes del menú (destacades més amunt) podeu accedir a molta informació interessant sobre cada servidor individualment i en grups. Fins i tot podeu comparar les estadístiques de tots els servidors d'un clúster un al costat de l'altre mitjançant la pestanya Compara amfitrions.

Simplement trieu un grup de servidors mitjançant una expressió regular i podreu veure una comparació ràpida de com funcionen:

Una de les funcions que personalment trobo més atractives és el resum adaptat per a mòbils, al qual podeu accedir mitjançant la pestanya Mòbil. Trieu el clúster que us interessa i després l'amfitrió individual:

Resum

En aquest article hem presentat Ganglia, una solució de monitorització potent i escalable per a graelles i clústers de servidors. No dubteu a instal·lar, explorar i jugar amb Ganglia tant com vulgueu (per cert, fins i tot podeu provar Ganglia en una demostració que es proporciona al lloc web oficial del projecte.

Mentre hi esteu, també descobrireu que diverses empreses conegudes tant en el món informàtic com no utilitzen Ganglia. Hi ha moltes bones raons per això, a més de les que hem compartit en aquest article, amb facilitat d'ús i gràfics juntament amb estadístiques (és bo posar una cara al nom, no?) probablement estar al capdamunt.

Però no només ens creguis a la paraula, prova-ho tu mateix i no dubtis a enviar-nos una línia mitjançant el formulari de comentaris a continuació si tens cap pregunta.