Ricerca nel sito web

Configurazione del monitoraggio in tempo reale con "Ganglia" per griglie e cluster di server Linux


Da quando gli amministratori di sistema si sono occupati della gestione di server e gruppi di macchine, strumenti come le applicazioni di monitoraggio sono stati i loro migliori amici. Probabilmente avrai familiarità con strumenti come Nagios, Zabbix, Icinga e Centreon. Sebbene questi siano i pesi massimi del monitoraggio, configurarli e sfruttare appieno le loro funzionalità potrebbe essere alquanto difficile per i nuovi utenti.

In questo articolo ti presenteremo Ganglia, un sistema di monitoraggio facilmente scalabile e che consente di visualizzare un'ampia varietà di parametri di sistema di server e cluster Linux (più grafici) in tempo reale.

Ganglia ti consente di impostare griglie (posizioni) e cluster (gruppi di server) per una migliore organizzazione.

Pertanto, è possibile creare una griglia composta da tutte le macchine in un ambiente remoto e quindi raggrupparle in insiemi più piccoli in base ad altri criteri.

Inoltre, l'interfaccia web di Ganglia è ottimizzata per i dispositivi mobili e consente anche di esportare dati nei formati .csv e .json.

Il nostro ambiente di test sarà composto da un server centrale CentOS 7 (indirizzo IP 192.168.0.29) dove installeremo Ganglia e un Macchina Ubuntu 14.04 (192.168.0.32), il box che vogliamo monitorare attraverso l'interfaccia web di Ganglia.

In questa guida faremo riferimento al sistema CentOS 7 come al nodo principale e al box Ubuntu come alla macchina monitorata.

Installazione e configurazione di Ganglia

Per installare le utilità di monitoraggio nel nodo master, procedi nel seguente modo:

1. Abilita il repository EPEL e quindi installa Ganglia e le relative utilità da lì:

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

I pacchetti installati nel passaggio precedente insieme a Ganglia, l'applicazione stessa, eseguono le seguenti funzioni:

  1. rrdtool, il database Round-Robin, è uno strumento utilizzato per archiviare e visualizzare la variazione dei dati nel tempo utilizzando grafici.
  2. ganglia-gmetad è il demone che raccoglie i dati di monitoraggio dagli host che desideri monitorare. In questi host e nel nodo master è necessario installare anche ganglia-gmond (il demone di monitoraggio stesso):
  3. ganglia-web fornisce il frontend web dove visualizzeremo i grafici storici e i dati sui sistemi monitorati.

2. Configura l'autenticazione per l'interfaccia web Ganglia (/usr/share/ganglia). Utilizzeremo l'autenticazione di base fornita da Apache.

Se desideri esplorare meccanismi di sicurezza più avanzati, fai riferimento alla sezione Autorizzazione e autenticazione della documentazione di Apache.

Per raggiungere questo obiettivo, crea un nome utente e assegna una password per accedere a una risorsa protetta da Apache. In questo esempio, creeremo un nome utente chiamato adminganglia e assegneremo una password di nostra scelta, che verrà memorizzata in /etc/httpd/auth.basic (sentitevi liberi di scegli un'altra directory e/o nome di file (finché Apache ha i permessi di lettura su quelle risorse, starai bene):

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

Inserisci due volte la password per l'amministrazione prima di procedere.

3. Modifica /etc/httpd/conf.d/ganglia.conf come segue:

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. Modifica /etc/ganglia/gmetad.conf:

Innanzitutto, utilizza la direttiva gridname seguita da un nome descrittivo per la griglia che stai configurando:

gridname "Home office"

Quindi, utilizza data_source seguito da un nome descrittivo per il cluster (gruppo di server), un intervallo di polling in secondi e l'indirizzo IP del master e dei nodi monitorati:

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

5. Modifica /etc/ganglia/gmond.conf.

a) Assicurati che il blocco cluster abbia il seguente aspetto:

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

b) Nel blocco udp_send_chanel, commenta la direttiva mcast_join:

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

c) Infine, commenta le direttive mcast_join e bind nel blocco udp_recv_channel:

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

Salva le modifiche ed esci.

6. Apri la porta 8649/udp e consenti agli script PHP (eseguiti tramite Apache) di connettersi alla rete utilizzando il booleano SELinux necessario:

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

7. Riavvia Apache, gmetad e gmond. Inoltre, assicurati che siano abilitati per l'avvio all'avvio:

systemctl restart httpd gmetad gmond
systemctl enable httpd gmetad httpd

A questo punto, dovresti essere in grado di aprire l'interfaccia web di Ganglia su http://192.168.0.29/ganglia e accedere con le credenziali del #Step 2.

8. Nell'host Ubuntu, installeremo solo ganglia-monitor, l'equivalente di ganglia-gmond in CentOS:

sudo aptitude update && aptitude install ganglia-monitor

9. Modifica il file /etc/ganglia/gmond.conf nella casella monitorata. Dovrebbe essere identico allo stesso file nel nodo master, tranne per le righe commentate nel cluster, udp_send_channel e udp_recv_channel dovrebbe essere abilitato:

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
}

Quindi, riavvia il servizio:

sudo service ganglia-monitor restart

10. Aggiorna l'interfaccia web e dovresti essere in grado di visualizzare le statistiche e i grafici per entrambi gli host all'interno della griglia Home Office/cluster Labs ( utilizza il menu a discesa accanto a Griglia Home Office per scegliere un cluster, Labs nel nostro caso):

Utilizzando le schede del menu (evidenziate sopra) puoi accedere a molte informazioni interessanti su ciascun server individualmente e in gruppi. Puoi anche confrontare le statistiche di tutti i server in un cluster fianco a fianco utilizzando la scheda Confronta host.

Scegli semplicemente un gruppo di server utilizzando un'espressione regolare e sarai in grado di vedere un rapido confronto delle loro prestazioni:

Una delle funzionalità che personalmente trovo più interessante è il riepilogo ottimizzato per i dispositivi mobili, a cui puoi accedere utilizzando la scheda Mobile. Scegli il cluster che ti interessa e poi il singolo host:

Riepilogo

In questo articolo abbiamo introdotto Ganglia, una soluzione di monitoraggio potente e scalabile per griglie e cluster di server. Sentiti libero di installare, esplorare e giocare con Ganglia quanto vuoi (a proposito, puoi anche provare Ganglia in una demo fornita nel sito ufficiale del progetto.

Già che ci sei, scoprirai anche che diverse aziende molto note sia nel mondo IT che non utilizzano Ganglia. Ci sono molte buone ragioni per questo oltre a quelle che abbiamo condiviso in questo articolo, con la facilità d'uso e i grafici insieme alle statistiche (è bello dare un volto al nome, non è vero?) probabilmente al top.

Ma non limitarti a crederci sulla parola, provalo tu stesso e non esitare a scriverci utilizzando il modulo di commento qui sotto se hai domande.