Cosa monitorare

In genere, in una configurazione di produzione, devi attivare i meccanismi di monitoraggio all'interno di un deployment di Apigee Edge for Private Cloud. Queste tecniche di monitoraggio avvisano gli amministratori (o gli operatori) di rete di un errore o di un'operazione non riuscita. Ogni errore generato viene segnalato come avviso in Apigee Edge. Per ulteriori informazioni sugli avvisi, consulta Best practice per il monitoraggio.

I componenti di Apigee sono classificati principalmente in due categorie:

  • Servizi Java Server specifici di Apigee: includono Management Server, Message Processor, Qpid Server e Postgres Server.
  • Servizi di terze parti:includono Nginx Router, Apache Cassandra, Apache ZooKeeper, SymasLDAP, database PostgreSQL e Qpid.

In un deployment on-premise di Apigee Edge, la seguente tabella fornisce una rapida panoramica dei parametri che puoi monitorare:

Componente Controlli di sistema Statistiche a livello di processo Controlli a livello di API Controlli del flusso di messaggi Componente specifico

Servizi Java specifici di Apigee

Server di gestione

processore di messaggi

Qpid Server

Server Postgres

Servizi di terze parti

Apache Cassandra

Apache ZooKeeper

SymasLDAP

Database PostgreSQL

Qpid

Router Nginx

In generale, dopo l'installazione di Apigee Edge, puoi eseguire le seguenti attività di monitoraggio per monitorare il rendimento di un'installazione di Apigee Edge for Private Cloud.

Controlli di integrità del sistema

È molto importante misurare i parametri di integrità del sistema, come l'utilizzo della CPU, l'utilizzo della memoria e la connettività delle porte a un livello superiore. Puoi monitorare i seguenti parametri per ottenere le informazioni di base sullo stato del sistema.

  • Utilizzo della CPU:specifica le statistiche di base (utente/sistema/attesa I/O/inattività) sull'utilizzo della CPU. Ad esempio, la CPU totale utilizzata dal sistema.
  • Memoria libera/utilizzata:specifica l'utilizzo della memoria di sistema in byte. Ad esempio, la memoria fisica utilizzata dal sistema.
  • Utilizzo dello spazio su disco:specifica le informazioni sul file system in base all'utilizzo attuale del disco. Ad esempio, lo spazio sul disco rigido utilizzato dal sistema.
  • Carico medio:specifica il numero di processi in attesa di esecuzione.
  • Statistiche di rete: pacchetti e/o byte di rete trasmessi e ricevuti, insieme agli errori di trasmissione relativi a un componente specificato.

Controlli di processi/applicazioni

A livello di processo, puoi visualizzare informazioni importanti su tutti i processi in esecuzione. Ad esempio, includono statistiche sull'utilizzo di memoria e CPU da parte di un processo o di un'applicazione. Per processi come Qpid, Postgres Postmaster, Java e così via, puoi monitorare quanto segue:

  • Identificazione del processo: identifica un particolare processo Apigee. Ad esempio, puoi monitorare l'esistenza di un processo Java del server Apigee.
  • Statistiche sui thread: visualizza i pattern di threading sottostanti utilizzati da un processo. Ad esempio, puoi monitorare il conteggio dei thread di picco, il conteggio dei thread per tutti i processi.
  • Utilizzo della memoria: visualizza l'utilizzo della memoria per tutti i processi Apigee. Ad esempio, puoi monitorare i parametri come l'utilizzo della memoria heap, l'utilizzo della memoria non heap da parte di un processo.

Controlli a livello di API

A livello di API, puoi monitorare se un server è attivo e in esecuzione per le chiamate API utilizzate di frequente con proxy da Apigee. Ad esempio, puoi eseguire il controllo API su Management Server, Router e Message Processor richiamando il seguente comando curl:

curl http://host:port/v1/servers/self/up

dove host è l'indirizzo IP del componente Apigee Edge. Il numero port è specifico per ogni componente Edge. Ad esempio:

Management Server: 8080

  • Router: 8081
  • Processore di messaggi: 8082
  • e così via

Per informazioni sull'esecuzione di questo comando per ogni componente, consulta le singole sezioni riportate di seguito.

Questa chiamata restituisce "true" e "false". Per risultati ottimali, puoi anche effettuare chiamate API direttamente sul backend (con cui interagisce il software Apigee) per determinare rapidamente se esiste un errore nell'ambiente software Apigee o nel backend.

Controlli del flusso di messaggi

Puoi raccogliere dati da router e processori di messaggi su pattern/statistiche del flusso di messaggi. In questo modo, puoi monitorare quanto segue:

  • Numero di client attivi
  • Numero di risposte (10X, 20X, 30X, 40X e 50X)
  • Errori di connessione

In questo modo puoi fornire dashboard per il flusso di messaggi API. Per saperne di più, vedi Come monitorare.

Controllo di integrità del router del processore di messaggi

Il router implementa un meccanismo di controllo di integrità per determinare quali Message Processor funzionano come previsto. Se un Message Processor viene rilevato come inattivo o lento, il router può rimuoverlo automaticamente dalla rotazione. In questo caso, il router scrive messaggi "Mark Down" nel file di log del router all'indirizzo /opt/apigee/var/log/edge-router/logs/system.log.

Puoi monitorare il file di log del router per questi messaggi. Ad esempio, se il router rimuove un Message Processor dalla rotazione, scrive il messaggio nel log nel formato:

2014-05-06 15:51:52,159 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now DISCONNECTED. handle = MP_IP at 1399409512159
2014-04-17 12:54:48,512 org: env: nioEventLoopGroup-2-2 INFO HEARTBEAT - HBTracker.gotResponse() : No HeartBeat detected from /MP_IP:PORT Mark Down

dove MP_IP:PORT è l'indirizzo IP e il numero di porta del processore di messaggi.

Se in un secondo momento il router esegue un controllo di integrità e determina che il processore di messaggi funziona correttamente, lo reinserisce automaticamente nella rotazione. Il router scrive anche un messaggio "Mark Up" nel log nel formato:

2014-05-06 16:07:29,054 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now CONNECTED. handle = IP at 1399410449054
2014-04-17 12:55:06,064 org: env: nioEventLoopGroup-4-1 INFO HEARTBEAT - HBTracker.updateHB() : HeartBeat detected from IP:PORT Mark Up