Munin e' un sistema di monitoraggio distribuito di facile estensione: con munin_plugins anche Plone viene monitorato completamente.

Performance: monitoriamo Plone con i plugin di Munin

Munin e' un sistema di monitoraggio distribuito di facile estensione: con munin_plugins anche Plone viene monitorato completamente.

Quali sensori offre Munin_plugins 

Munin è un software per il monitoraggio dei server estremamente estensibile e leggero: permette infatti lo sviluppo di plugin in qualsiasi linguaggio senza richiedere alcun import di librerie. Munin_plugins, si compone di tre sensori modulari: plone_usage, nginx_full, monit_downtime

Catturare lo stato di Plone con Plone_usage

Questo sensore ricopre un ruolo fondamentale nel rilevamento dello stato del server, in quanto si occupa di catturare il comportamento di tutti i Plone server in esecuzione. Non richiede installazione di moduli interni a Plone, al contrario di altre soluzioni come munin.zope.
Il rilevamento delle istanze di Plone, avviene in maniera automatica: ogni processo (instanza completa, zeo client, zeo server) viene riconosciuto nel momento in cui viene lanciato in esecuzione e memorizzato in una cache interna, in modo da mantenere lo storico dei dati nel caso il servizio venisse spento.
Le informazioni che mostra per singolo processo (instanza completa, zeo client, zeo server) sono:

  • carico di cpu: informazione vitale per sapere quanto sta lavorando la nostra applicazione;
  • memoria allocata: informazione vitale per sapere quanto richiede la vostra applicazione;  
  • swap utilizzato: informazione che permette di valutare quanta memoria è allocata inutilmente;
  • numero di connessioni: informazione che permette di capire il numero di richieste, utile nel caso di zeo client multipli con load balancer;
  • dimensione file principali utilizzati (log e data.fs): informazione utile per valutare possibili rallentamenti dovuti all'eccessiva allocazione su fs;
  • numero di operazioni di I/O: informazione utile per valutare l'interazione con il fs ed i consengueti rallentamenti, soprattutto in ambienti virtualizzati;
  • numero di thread utilizzati: informazione utile per valutare, insieme agli altri indici, il carico del singolo processo.
 Plone cpu    Plone memory 

 

Rilevare il carico e la velocita di Nginx con Nginx_full

Il sensore di Nginx mira a capire la velocità e ed il carico del server. Si compone di tre grafici:

  • latenza: mostra come si distribuiscono le richieste in base hai tempi di risposta (<0.5s, 1s, 2s, 5s, >5s) in modo da poter capire immediatamente quanto possano lavorare velocemente gli utenti del sito;

    Nginx latency
  • codici di errore: mostra il numero di errori rilevati per ogni singolo codice HTTP, in modo da capire se il server stia lavorando correttamente o abbia dei difetti;

    Nginx http codes
  • numero di bot: mostra l'andamento delle richieste effettuate dai bot. I bot sono utenti "silenziosi", nel senso che possono arrivare ad intasare un sito di richieste, al punto da farli considerare dei DDOS a tutti gli effetti. Senza una monitorizzazione e limitazione della loro attività, qualsiasi attività di ottimizzazione può diventare vana.

    Nginx bots

Verificare che il servizio Monit sia attivo con Monit_downtime

Il terzo sensore si occupa di controllare lo stato di Monit nel tempo. Monit è un demone che si preoccupa periodicamente di controllare lo stato dei processi di una macchina, controllandone anche i tempi di risposta nonchè il carico di lavoro. Quando un processo non esaudisce determinati vincoli, Monit può riavviare il servizio oppure avvisare semplicemente chi di dovere. Il nostro sensore ha il dovere di mostrare nel tempo quali azioni Monit ha intrapreso, facendo vedere quanti processi sono in quali stati.

Monit downtime 

Installazione

Tutti i sensori sono disponibili su pypi, e quindi installabili secondo le normali modalità degli egg Python. Il mio consiglio è quello di creare un virtualenv ed utilizzare quello come ambiente di lavoro. 
Una volta installato l'egg, nella cartella bin, si potranno vedere gli script:

Per procedere all'installazione è necessario lanciare lo script:

$ bin/generate

Lo script chiederà conferma per ogni plugin, in modo da permettervi di escludere quelli che non vi interessano.

Una volta terminato, potrete riavviare il munin-node, secondo le modalità ordinarie. Nel caso del systemV:

$ /etc/init.d/munin-node restart

Ora non resta che aspettare qualche minuto per permettere la raccolta dei primi dati, ed il gioco è fatto.

Download

Pypi: https://pypi.python.org/pypi/munin_plugins

Development

GitHub: https://github.com/cippino/munin_plugins

Share this on

Share |

On same topics

Commenti

comments powered by Disqus