Argomento precedente: Appliance di monitoraggio

Argomento successivo: Switch

MON: appliance di monitoraggio dell'applicazione

Ultima versione: 3.0.3-1

MON: appliance di monitoraggio dell'applicazione

In breve

Catalogo

Sistema

Categoria

Monitoraggio

Volumi di utente

Min. Memoria

288 MB

OS

Linux

Vincoli

no

Panoramica funzionale

MON è un'appliance di monitoraggio dell'applicazione che riunisce le statistiche di uso delle risorse e delle prestazioni (cioè i contatori) da altre appliance all'interno di un'applicazione. Le appliance segnalano i loro contatori a MON attraverso il terminale di MON.

MON ha un'interfaccia visiva che usa un browser Web e visualizza i contatori dell'appliance. Attraverso l'interfaccia visiva, l'utente crea le viste con uno o più grafici. Ogni grafico visualizza uno o più contatori dell'appliance. L'interfaccia visiva è accessibile attraverso:

Consultare la Guida di riferimento dell'interfaccia utente per maggiori informazioni sull'accesso e sull'uso dell'interfaccia visiva.

MON supporta anche il monitoraggio in background dei contatori delle appliance. Tutti i contatori in una vista singola, come specificato dalla proprietà alarm_view, sono monitorati in background da MON. Quando uno dei contatori scende al di sotto o supera la soglia specificata, MON genera un allarme al controller di griglia di CA 3Tera AppLogic, che visualizza un messaggio sul dashboard. Non occorre che sia aperto un browser all'interfaccia visiva di MON per eseguire il monitoraggio dei contatori dell'appliance in background.

Limite

Risorse

Risorsa

Minimo

Massimo

Predefinito

CPU

0,05

4

0,10

Memory (Memoria)

288 MB

2 GB

288 MB

Larghezza di banda

1 Mbps

500 Mbps

100 Mbps

Terminali

Nome

Dir

Protocollo

Descrizione

mon

in

CCE

Terminale su cui sono ricevute le statistiche sull'uso delle risorse e le prestazioni.

web

in

HTTP

Il terminale usato per accedere e visualizzare i contatori dell'appliance.

aux

in

Qualsiasi

Input usato per la raccolta programmatica dei contatori.

L'interfaccia predefinita è abilitata. L'interfaccia predefinita è usata dall'appliance per segnalare un CA 3Tera AppLogic che è riavviato con successo. Può anche essere usato per accedere all'appliance mediante una shell sicura dal controller di CA 3Tera AppLogic, essenzialmente per scopi diagnosi e risoluzione dei problemi. L'interfaccia predefinita è usata dalla GUI del CA 3Tera AppLogic per accedere all'interfaccia visiva di un'appliance MON.

Volumi di utente

Volume

Descrizione

dati

Lettura/scrittura, fornisce l'archiviazione per lo stato persistente di MON (ad esempio, viste e grafici).

Proprietà

Nome di proprietà

Tipo

Descrizione

titolo

Stringa

Titolo da visualizzare nelle finestre del browser dell'interfaccia visiva di MON. Se lasciato vuoto, viene usato il nome dell'applicazione. L'impostazione predefinita è vuota.

utente

Stringa

Nome utente per l'autenticazione basata su Web. L'autenticazione è usata soltanto quando si accede a MON mediante il terminale Web (cioè, attraverso un gateway). L'autenticazione non è eseguita quando si accede all'interfaccia visiva di MON dalla GUI di CA 3Tera AppLogic. Se vuoto, non c'è autenticazione. L'impostazione predefinita è vuota.

password

Stringa

Password per l'autenticazione basata su Web. Questa proprietà non è usata se user è vuoto. L'impostazione predefinita è vuota.

alarm_view

Stringa

Il nome della vista che contiene i contatori dell'appliance da monitorare in background. È possibile specificare soltanto un nome di vista. Se lasciato vuoto, il controllo in background è disabilitato. L'impostazione predefinita è vuota.

Messaggi di errore

I seguenti messaggi possono apparire nei file di log e nel log di sistema del controller di griglia quando l'appliance non riesce ad avviarsi:

httpd non si avvia

Gruppi di contatori e contatori

I seguenti gruppi di contatori sono definiti per tutte le appliance:

Consultare Creazione di contatori personalizzati per informazioni su come creare e su monitorare i contatori personalizzati in un'appliance.

Uso tipico

Monitoraggio delle applicazioni mediante la GUI di CA 3Tera AppLogic

Il seguente diagramma mostra un uso tipico di MON per un'applicazione semplice. In questa applicazione, il monitoraggio è accessibile soltanto dalla GUI di CA 3Tera AppLogic.

Un uso tipico di MON per un'applicazione semplice

Appliance in uso:

Il terminale MON di tutte le appliance è connesso al terminale MON di MON.

Monitoraggio dell'applicazione mediante la GUI del CA 3Tera AppLogic e l'indirizzo IP sulla porta 80

Il seguente diagramma mostra come MON può essere usata per accedere al monitoraggio dell'applicazione mediante la GUI di CA 3Tera AppLogic o mediante l'indirizzo IP.

Esempio: come utilizzare MON per accedere al monitor di applicazione mediante la GUI di AppLogic o un indirizzo IP

Appliance in uso:

Il terminale MON di tutte le appliance è connesso al terminale MON di MON.

Il terminale OUT è connesso al terminale Web di MON in modo che gli utenti possano accedere al monitor mediante l'indirizzo IP specificato dalla proprietà ip_addr su admin.

Monitoraggio dell'applicazione mediante la GUI del CA 3Tera AppLogic e l'indirizzo IP sulla porta 8080

Il seguente diagramma mostra come MON può essere usato per accedere al monitoraggio dell'applicazione mediante la GUI di CA 3Tera AppLogic o mediante l'indirizzo IP sulla porta 8080.

Esempio: come utilizzare MON per accedere al monitor di applicazione mediante la GUI di AppLogic o un indirizzo IP sulla porta 8080

Appliance in uso:

Il terminale MON di tutte le appliance è connesso al terminale MON di MON.

INSSLR è configurato per inoltrare il traffico https a WEBx8 e al restante traffico TCP al terminale di AUX. PS8 è configurato per inoltrare tutto il traffico sulla porta 8080 mediante out8 al terminale Web di MON. Questo permette agli utenti di monitorare l'applicazione attraverso l'indirizzo IP dell'applicazione specificato dalla proprietà ip_addr su INSSLR sulla porta 8080.

Nota: L'appliance di MAIL non è distribuita con CA 3Tera AppLogic.

Controllo di background

In questa sezione viene descritto come utilizzare MON per monitorare i contatori dell'appliance in background e impostare degli avvisi quando il contatore dell'appliance esce dall'intervallo.

  1. Impostare la proprietà alarm_view su MON nel nome di una vista che contiene i contatori da monitorare.
  2. (Ri)avviare l'applicazione.
  3. Accedere al monitor dell'applicazione.
  4. Fare clic sul pulsante Nuovo per creare una nuova vista e attribuirle lo stesso nome della proprietà di alarm_view.
  5. Fare clic sul pulsante Aggiungi grafico per creare un nuovo grafico e aggiungerlo alla vista.
  6. Selezionare un contatore da monitorare e aggiungerlo al grafico.
  7. Impostare la soglia di allarme compilando le due caselle accanto ad Allarme.
    Per impostare una soglia minima, immettere un valore nella casella di testo a sinistra. Se questa casella di testo viene lasciata vuota, non esisterà una soglia minima.
    Per impostare una soglia massima, immettere un valore nella casella di testo a destra. Se questa casella di testo viene lasciata vuota, non esisterà una soglia massima.
  8. Ripetere le fasi 5-7 per monitorare altri contatori di appliance.

Quando un contatore di appliance esce dalle soglie specificate, MON genera un avviso al controller di CA 3Tera AppLogic. A questo punto, nel dashboard viene registrato un messaggio che specifica quale contatore, e in quale appliance, è fuori dall'intervallo. Per ciascuna appliance, il controller di CA 3Tera AppLogic registra soltanto l'ultimo avviso nel dashboard. Nel messaggio del dashboard viene specificato comunque se sono stati ricevuti più avvisi per l'appliance. Tutti gli avvisi sono registrati in /var/registro/messaggi sul controller di CA 3Tera AppLogic.

Nota: non è necessario aprire un browser al monitor di applicazione affinché MON monitori i contatori dell'appliance in background.

Per interrompere il monitoraggio di un contatore di appliance specifico:

Per disattivare il monitoraggio in background, eseguire una delle seguenti operazioni:

Eliminare la proprietà alarm_view su MON e riavviare l'istanza di MON (oppure riavviare l'applicazione).

Interfaccia di raccolta di dati

Dalla versione 1.1.3, l'appliance MON fornisce una API di raccolta di dati di servizio REST, esporta la configurazione e i valori del contatore nei formati XML, JSON e UDL. Per ulteriori informazioni sull'API, consultare MonDataCollectionInterface.

Note

Limiti noti

Per monitorare un'applicazione attraverso la GUI di CA 3Tera AppLogic, il nome dell'appliance MON nell'applicazione dovrebbe essere MON.

Software Open Source e di terze parti utilizzato all'interno dell'appliance

Software

Versione

Modificato

License

Note

CGI.pm

3,05

No

libero

pagina iniziale su CPAN

perl-CGI-Session

4,03

Perl (Artistic e GPLv2)

pagina iniziale su CPAN

perl-Carp-Assert

0,18

Perl (Artistic e GPLv2)

N/D

perl-Data-Dumper

2,121

Perl (Artistic e GPLv2)

N/D

perl-error

0,15

Perl (Artistic e GPLv2)

N/D

perl-IPC-Run

0,80

No

Perl (Artistic e GPLv2)

N/D

cups-libs

1.1.22-0.rc1.8.9

No

LGPL con eccezioni. Leggere il file LICENSE.txt nelle origini.

N/D

file

4.10-2

No

BSD-like

N/D

freetype

2.1.9-8

No

FreeType License e GPLv2

N/D

httpd

2.0.63

No

Apache License

N/D

perl-error

0.15-1

Perl (Artistic e GPLv2)

pagina iniziale su CPAN

samba

3.0.10-1.fc3

No

GPLv3

N/D

mod_perl

2.0.2-6.3

No

GPLv2

N/D

Contatori di appliance

Elenco dei contatori di appliance standard

Panoramica

In questo documento è definito l'elenco di tutti i contatori standard esportati da CCA. CCA è l'agente di raccolta di contatori eseguito in tutte le appliance di CA 3Tera AppLogic. CCA è usato per segnalare i contatori alla GUI di monitoraggio esposta dall'appliance di MON. La disponibilità dei contatori potrebbe essere limitata in alcune piattaforme di appliance supportate (come riportato nella tabella dei contatori di seguito). Quando il SO dell'appliance supporta un contatore, questo dovrebbe essere visibile nella GUI di MON quando il terminale di output di MON dell'appliance è connesso all'appliance di MON.

Riepilogo di CPU

Contatore

Linux

Solaris

Windows

Attesa I/O di CPU

no

CPU inattiva

CPU Irq

no

CPU Nice

no

no

CPU Soft Irq

no

no

Sistema di CPU

Totale CPU

Utente CPU

File system

Contatore

Linux

Solaris

Windows

Gestione dei file assegnati

no

Periferiche di blocco

no

Periferiche di blocco unico

no

Periferiche di carattere

no

Periferiche di carattere unico

no

Directory

no

Directory uniche

no

Fifos

no

Fifos unici

no

Gestione dei file liberi

no

File regolari

no

File regolari unici

no

Socket

no

Socket unici

no

Gestione dei file usati

no

Statistiche di memoria

Contatore

Linux

Solaris

Windows

Attivo

no

no

Buffer

no

no

Cached

no

Libero

Alto libero

no

no

Alto totale

no

no

Alto usato

no

no

Non attivo

no

no

Basso libero

no

no

Basso totale

no

no

Basso usato

no

no

Swapping nella cache

no

no

Swapping libero

no

Swapping pagine IN

no

Swapping pagine OUT

no

Swapping totale

no

Swapping usato

no

Totale

no

Utilizzato

no

Utilità di pianificazione

Contatore

Linux

Solaris

Windows

Switch di contesto

Interrompe

Processi per 1 min

no

Processi per 15 min

no

Processi per 5 min

no

Pagine IN

Pagine OUT

Avvii di processo

no

Processi bloccati

no

Processi in esecuzione

no

CPU#X

Contatore

Linux

Solaris

Windows

Attesa I/O di CPU

no

CPU inattiva

CPU Irq

no

CPU Nice

no

no

CPU Soft Irq

no

Sistema di CPU

Totale CPU

Utente CPU

no

Volume X

Contatore

Linux

Solaris

Windows

Byte letti

Byte scritti

Il disco legge

Settori di disco letti

no

Settori di disco scritti

no

Scritture di disco

File liberi

no

Spazio libero

Tempo trascorso in Leggi

no

Tempo trascorso in Scrivi

no

File totali

no

Spazio totale

no

File usati

no

Spazio usato

no

Terminale X

Contatore

Linux

Solaris

Windows

Byte ricevuti

Pacchetti ricevuti

Byte inviati

Pacchetti inviati

Contatori personalizzati

Panoramica

Ciascuna appliance che esegue il daemno ccad (agente di raccolta del contatore) autorizza i contatori personalizzati da definire e raccogliere dalle utility di terze parti. Questa capacità è definita interfaccia di estensione e fornisce ai creatori delle appliance un'opzione per monitorare il contatore specifico dell'appliance mediante l'interfaccia utente MON standard.

Creazione di contatori personalizzati

Per monitorare i contatori personalizzati, occorre aggiungere le definizioni dei contatori alla configurazione di ccad e introdurre i valori correnti del contatore su ccad

Aggiunta di definizioni dei contatori

I contatori personalizzati devono essere definiti nel file di configurazione /etc/ccad.conf opzionale (in formato UDL). Quando si apportano modifiche alla configurazione, il daemon ccad deve essere riavviato affinché le modifiche abbiano effetto.

Segue un esempio di configurazione semplice:

Apache dei contatori
   {
   velocità = 1000
   pipe = /tmp/cca
   contatore Total_Accesses
      {
      nome = "Hit totali"
      desc = "Numero di totale di hit"
      unità = "#"
      tipo = "MAX"
      }
   contatore Total_kBytes
      {
      nome = "Byte totali"
      desc = "Numero di byte totali"
      unità = "byte"
      tipo = "MAX"
      }
   contatore BusyWorkers
      {
      nome = "Richieste attive"
      desc = "Numero di richieste attive"
      unità = "#"
      tipo = "MAX"
      }
   contatore IdleWorkers
      {
      nome = "Server inattivi"
      desc = "Numero di server inattivi"
      unità = "#"
      tipo = "MAX"
      }
   }

Questo esempio definisce 4 contatori. Ciascun contatore supporta i seguenti attributi:

Il nome dell'entità dei contatori di livello principale è usato per il nome Entità quando i contatori sono visualizzati in MON. Inoltre, i seguenti attributi sono significativi per questa entità:

Oltre al metodo di definizione del contatore descritto di sopra, ccad.conf permette ai contatori di essere raggruppati. Questo viene fatto collocandoli un livello sotto nel gruppo di entità come nell'esempio seguente:

Impianti di contatori
   {
   velocità = 2000
   pipe = /my-pipe
   struttura del contatore: desc = "Qualsiasi struttura" , unità = "#"
   gruppo Frutta
      {
      desc = "Frutta deliziosa!
      contatore pere: desc = "Numero di pere", unità = "pere"
      contatore mele: desc = "Numero di mele", unità = "mele"
      }
   gruppo Vegetali
      {
      contatore patate: desc = "Numero di patate", unità = "patate"
      contatore pomodori: desc = "Numero di pomodori", unità = "pomodori"
      }
   }

Questa configurazione produce 3 entità di contatore personalizzate nella GUI di MON - Piante, Frutta Deliziosa! e Vegetali con i 5 contatori definiti distribuiti fra di loro. I gruppi hanno un attributo di descrizione (come le entità del contatore) che può essere usato per definire un nome di gruppo più completo rispetto a un nome di entità di gruppo più limitato. I nomi di contatore dovrebbero essere unici nel file di configurazione altrimenti la raccolta del contatore non sarebbe possibile a causa dei nomi di contatore duplicati.

Immissione dei dati di contatore

Dopo aver eseguito ccad con le adeguate definizioni di contatore, è necessario introdurre i valori correnti del contatore. Per far ciò, scrivere i valori di contatore alla pipe denominata creata da ccad (specificata dall'attributo di pipe in /etc/ccad.conf, predefinito /tmp/cca).
Il formato corretto è uno dei seguenti:

contatore = valore (il nome e il valore sono separati da =)

contatore: valore (il nome e il valore sono separati da :)
Un set di contatori dovrebbe essere eliminato (a MON) con la stampa. o carattere di immissione del modulo (\f) nel pipe denominato su una riga. Lo script di raccolta di contatori (in bash) potrebbe alimentare il contatore a ccad come segue:

echo "Total_Accesses = 31" > /tmp/cca
echo "Total_kBytes = 22241" > /tmp/cca
echo "BusyWorkers = 6" > /tmp/cca
echo "IdleWorkers = 34" > /tmp/cca
echo "." > /tmp/cca

L'operazione dovrebbe essere effettuata ogni millisecondo come specificato in /etc/ccad.conf

Questo è un bash loop semplice che raccoglierebbe i dati necessari e li introdurrebbe in ccad. Sono introdotti più dati del necessario perché è più rapido fornire tutti i dati raccolti a ccad (che ignorerà le linee che non riportano valori di contatore) che analizzare i dati prima di alimentarli a ccad:

while true; do
   curl -s http://in/server-status?auto | sed "s/^Total\ /Total_/g" > /tmp/cca # analizza i dati per farli corrispondere alle definizioni del contatore
   sleep 1 || exit 4        
   echo "." > /tmp/cca

done

Esempi

Apache

Nota: il server deve avere lo "stato esteso" abilitato

#!/bin/bash

DEFAULT_PACE=1000
DEFAULT_PIPE=/tmp/cca
CCAD_CONF=/etc/ccad.conf
STATUS_URL='http://in/server-status?auto'
CURL=/usr/bin/curl
SED=/bin/sed
SLEEP=/bin/sleep
function get_value_from_config {
   CONF_VALUE=`grep -oE "$1[[:space:]]*=[[:space:]]*[^[:space:]]+" $CCAD_CONF |cut -d"=" -f 2|tr -d " "`
}
get_value_from_config "pace"
PACE=${CONF_VALUE:-$DEFAULT_PACE}
PACE=$(( $PACE / 1000 ))
get_value_from_config "pipe"
PIPE=${CONF_VALUE:-$DEFAULT_PIPE}
test -p $PIPE || exit 3
while true; do
   $CURL -s "$STATUS_URL" | $SED "s/^Total\ /Total_/g" > $PIPE
   sleep $PACE || exit 4
   echo "." > $PIPE
done

Mysql

#!/bin/bash

DEFAULT_PACE=1000
DEFAULT_PIPE=/tmp/cca
CCAD_CONF=/etc/ccad.conf
MYSQL='/usr/bin/mysql'
TR=/usr/bin/tr
SLEEP=/bin/sleep
function get_value_from_config {
   CONF_VALUE=`grep -oE "$1[[:space:]]*=[[:space:]]*[^[:space:]]+" $CCAD_CONF |cut -d"=" -f 2|tr -d " "`
}
get_value_from_config "pace"
PACE=${CONF_VALUE:-$DEFAULT_PACE}
PACE=$(( $PACE / 1000 ))
get_value_from_config "pipe"
PIPE=${CONF_VALUE:-$DEFAULT_PIPE}
test -p $PIPE || exit 3
while true; do
   $MYSQL -e 'show status'|$TR '[[:blank:]]' '=' > $PIPE
   $SLEEP $PACE || exit 4
   echo "." > $PIPE
done

API del servizio Web di raccolta dei contatori

Panoramica delle API di monitoraggio

L'appliance MON esporta la configurazione e i dati dei contatori raccolti da appliance connesse a partire dal suo terminale di output aux. Questa operazione viene eseguita mediante un protocollo personalizzato basato su REST in esecuzione su HTTP. Tale protocollo definisce tre tipi di risorse:

Ciascuno di questi tipi è incorporato nell'ambito del precedente. In questo modo le entità risultano significative solo nell'ambito delle appliance e i contatori solo nell'ambito di una determinata entità. L'API per la raccolta dei dati consente di recuperare tutti i valori e le configurazioni dei contatori noti a MON.

MON esporta i valori e le configurazione di dati richiesti in uno dei seguenti formati di testo strutturati:

JSON (destinato a client browser con JavaScript abilitato)

Protocollo delle API di monitoraggio

Il protocollo utilizza solamente il metodo HTTP GET, in quanto fornisce una funzionalità di sola lettura. Per questo motivo ogni tipo di richiesta di protocollo supportato può essere definito per mezzo dell'URI e della struttura di output. Caratteri considerati speciali per l'URI devono essere preceduti da un carattere di escape utilizzando la codifica standard %. L'output viene definito in base al relativo schema XML (il formato di output principale è XML). La conversione in altri formati di output (UDL, JSON) si ottiene utilizzando direttamente i mezzi per esprimere la struttura e gli attributi del rispettivo formato di output (ad esempio entità UDL al posto di entità XML, attributi UDL al posto di attributi XML, oggetti JSON al posto di entità XML, proprietà oggetto JSON al posto di attributi XML).

Il nodo principale di tutti gli output contiene un attributo timestamp che fornisce l'orario al server nel momento in cui viene creata la risposta.

Segue una descrizione di tutti gli URL supportati (chiamate).

Chiamate di configurazione dei contatori

/monapi/desc[?fmt=] 

Fornisce un elenco di tutte le appliance disponibili nel formato di output specificato ( indica uno dei formati di output noti, ad esempio XML).

Output:

<response timestamp="1194967464">
   <appliance name="main.web" />
   <appliance name="main.in" />
</response>

Chiamate di valore dei contatori

/monapi/val/<apps>/<ents>/<cnts>[?fmt=] 

Restituisce i valori dei contatori specificati. Se viene omesso uno dei parametri app, ent o cnt, viene utilizzato il valore del carattere jolly. Quindi, ad esempio, /monapi/val/main.web significa "i valori di tutti i contatori di tutte le entità main.web dell'appliance".

Output:

<response timestamp="1194967464">
   <appliance name="main.web">
      <entity name="Terminal in">
         <counter name="Sent bytes" value="23234" />
         <counter name="Received bytes" value="690432" />
      </entity>
   </appliance>
</response>