Edge per Private Cloud v4.18.01
Questo documento descrive le tecniche di monitoraggio dei componenti supportati da un deployment on-premise di Apigee Edge.
Attivazione di JMX
JMX è abilitato per impostazione predefinita per Cassandra e disabilitato per impostazione predefinita per tutti gli altri componenti Edge. Pertanto, devi abilitare JMX singolarmente per ciascun componente.
Ogni componente supporta JMX su una porta diversa. La tabella seguente elenca la porta JMX e il file che modifichi per abilitare JMX su quella porta:
Componente | Porta JMX | File |
---|---|---|
Server di gestione | 1099 | /opt/apigee/edge-management-server/bin/start |
Router | 1100 | /opt/apigee/edge-router/bin/start |
processore di messaggi | 1101 | /opt/apigee/edge-message-processor/bin/start |
Qpid | 1102 | /opt/apigee/edge-qpid-server/bin/start |
Postgres | 1103 | /opt/apigee/edge-postgres-server/bin/start |
Ad esempio, per abilitare JMX sul server di gestione, apri /opt/apigee/edge-management-server/bin/start in un editor. Dovresti visualizzare la seguente riga per avviare il server di gestione:
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -Djava.security.auth.login.config=$conf_path/jaas.config -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir $* $debug_options com.apigee.kernel.MicroKernel
Modifica questa riga per aggiungere quanto segue:
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
Tieni presente che questa riga specifica che il numero di porta JMX è 1099 per il server di gestione. Imposta il numero di porta per ogni componente come definito nella tabella precedente. Ad esempio:
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.security.auth.login.config=$conf_path/jaas.config -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir $* $debug_options com.apigee.kernel.MicroKernel
Salva il file e riavvia il componente. Ad esempio, per riavviare il server di gestione:
> /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
Abilitazione dell'autenticazione JMX e impostazione della password JMX
Il processo di monitoraggio per il server di gestione, il processore di messaggi, Qpid e Postgres utilizzano tutti JMX. JMX è abilitato per impostazione predefinita e l'accesso JMX remoto non richiede una password.
Per abilitare l'autenticazione JMX, ogni componente ha un'azione change_jmx_auth che consente di attivare/disattivare l'autenticazione e di impostare le credenziali JMX.
Per abilitare l'autenticazione JMX, utilizza il comando seguente:
> /opt/apigee/apigee-service/bin/apigee-service comp change_jmx_auth optionsOrConfigFile
dove:
- comp può essere edge-management-server, edge-message-processor, edge-qpid-server o edge-postgres-server.
- Le opzioni sono:
- -u: nome utente
- -p: password
- -e: y (attiva) o n (attivabile)
- Il file di configurazione include:
- JMX_USERNAME=nome utente
- JMX_ENABLED=y/n
- JMX_PASSWORD=password (se non impostata o non viene trasmessa con -p, ti verrà richiesto)
Ad esempio, per utilizzare le opzioni della riga di comando:
> /opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y
Se hai un file di configurazione:
> /opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f configFile
Se esegui Edge su più nodi, esegui questo comando su tutti i nodi, specificando lo stesso nome utente e la stessa password.
Per disabilitare in un secondo momento l'autenticazione JMX, utilizza il comando:
> /opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n
Server di gestione
Utilizzo di JConsole per monitorare il controllo di integrità del sistema e le informazioni relative al processo
Utilizza JConsole (uno strumento conforme a JMX) per gestire e monitorare le statistiche relative al controllo di integrità e ai processi. Con JConsole, puoi consultare le statistiche JMX esposte dal server di gestione (o qualsiasi server) e visualizzarle in un'interfaccia grafica. Per ulteriori informazioni sull'utilizzo di JConsole, vedi http://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html.
Utilizza JConsole e il seguente URL di servizio per monitorare gli attributi JMX (MBean) offerti tramite JMX.
service:jmx:rmi:///jndi/rmi://<ip address>:<port>/jmxrmi
dove <indirizzo IP> è l'indirizzo IP del server di gestione (o del rispettivo server). Per impostazione predefinita, la porta del server di gestione è la 1099.
La seguente tabella mostra le statistiche JMX generiche:
MBean JMX |
Attributi JMX |
---|---|
Memoria |
HeapMemoryUsage |
NonHeapMemoryUsage |
|
Utilizzo |
|
Nota: i valori degli attributi verranno visualizzati in quattro valori: commit, init, max e used. |
Utilizzo dei controlli dell'API Edge Application
Puoi eseguire il controllo delle API sul server di gestione (o su qualsiasi server) richiamando il seguente comando CURL:
curl http://<host>:8080/v1/servers/self/up -H "Accept: application/json"
Dove <host> è l'indirizzo IP del server di gestione. Puoi specificare il tipo Accetta come application/json o application/xml.
Questa chiamata restituisce i valori "true" e "false". Se true, significa che il nodo è attivo e il servizio Java è in esecuzione.
Se non ricevi una risposta HTTP 200 (OK), Edge non è in grado di rispondere alle richieste sulla porta 8080.
Risolvere i problemi
- Accedi al server ed esegui il seguente comando:
/opt/apigee/apigee-service/bin/apigee-service stato edge-management-server - Se il servizio non è in esecuzione, avvialo:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server start
Utilizzo dell'applicazione Edge: controlli su utenti, organizzazione e deployment
Il server di gestione svolge un ruolo vitale nel tenere insieme tutti gli altri pacchetti in ogni installazione on-premise. Puoi controllare lo stato degli utenti, dell'organizzazione e del deployment sul server di gestione inviando i seguenti comandi:
curl -u userEmail:password http://localhost:8080/v1/users curl -u userEmail:password http://localhost:8080/v1/organizations curl -u userEmail:password http://localhost:8080/v1/organizations/orgname/deployments
Il sistema dovrebbe mostrare lo stato "implementato" per tutte le chiamate. Se il problema persiste, procedi nel seguente modo:
- Verifica la presenza di eventuali errori nei log del server di gestione (all'indirizzo opt/apigee/var/log/edge-management-server).
- Effettua una chiamata al server di gestione per verificare che funzioni correttamente.
- Rimuovi il server da ELB, quindi riavvia il server di gestione.
/opt/apigee/apigee-service/bin/apigee-service edge-management-server riavvio
Router
Puoi eseguire il controllo API sul router (o su qualsiasi server) richiamando il seguente comando CURL:
curl http://<host>:8081/v1/servers/self/up
Dove, host è l'indirizzo IP del router.
Questa chiamata restituisce i valori "true" e "false". Se true, significa che il nodo è attivo e il servizio router è in esecuzione.
Se non ricevi una risposta HTTP 200 (OK), Edge non è in grado di rispondere alle richieste sulla porta 8081.
Risolvere i problemi
- Accedi al server ed esegui i seguenti comandi:
/<inst_root>/apigee/apigee-service/bin/apigee-service stato edge-router - Se il servizio non è in esecuzione, avvialo
/<inst_root>/apigee/apigee-service/bin/apigee-service edge-router start - Dopo il riavvio, verifica che funzioni
curl -v http://localhost:port/v1/servers/self/up
Dove port è 8081 per il router e 8082 per il processore di messaggi.
Utilizzo di JConsole per monitorare il controllo di integrità del sistema e le informazioni relative al processo
Segui la procedura descritta sopra per il server di gestione.
Nota: assicurati di utilizzare la porta 1100.
processore di messaggi
Utilizzo di JConsole per monitorare il controllo di integrità del sistema e le informazioni relative al processo
Segui la procedura descritta sopra per il server di gestione.
Nota: assicurati di utilizzare la porta 1101.
Utilizzo dei controlli dell'API Edge Application
Segui la procedura descritta in precedenza per il router.
Nota: assicurati di utilizzare la porta 8082.
Utilizzo dei controlli del flusso di messaggi JMX
Segui la procedura descritta sopra per il server di gestione.
Nota: assicurati di utilizzare la porta 1101.
Server Qpid
Utilizzo di JConsole per monitorare il controllo di integrità del sistema e le informazioni di elaborazione
Segui la procedura descritta sopra per il server di gestione.
Nota: assicurati di utilizzare la porta 1102.
Utilizzo dei controlli dell'API Edge Application
Segui la procedura descritta sopra per il server di gestione.
Nota: assicurati di utilizzare la porta 8083. Per Qpid Server è supportato anche il seguente comando CURL:
curl http://<qpid_IP>:8083/v1/servers/self
Server Postgres
Utilizzo di JConsole per monitorare il controllo di integrità del sistema e le informazioni relative al processo
Segui la procedura descritta sopra per il server di gestione.
Nota: assicurati di utilizzare la porta 1103.
Utilizzo dei controlli dell'API Edge Application
Segui la procedura descritta sopra per il server di gestione.
Nota: assicurati di utilizzare la porta 8084. Il seguente comando CURL è supportato anche per il server Postgres:
curl http://<postgres_IP>:8084/v1/servers/self
Utilizzo dei controlli di ambiente e organizzazione delle applicazioni Edge
Puoi verificare i nomi dell'organizzazione e dell'ambiente inseriti nel server Postgres inviando i seguenti comandi CURL:
curl http:// <postgres_IP>:8084/v1/servers/self/organizations
Nota: assicurati di utilizzare la porta 8084.
Il sistema dovrebbe mostrare il nome dell'organizzazione e dell'ambiente.
Utilizzo del controllo axstatus dell'applicazione Edge
Puoi verificare lo stato dei server di analisi inviando il seguente comando CURL.
curl -u userEmail:password http://<host>:<port>/v1/organizations/<orgname>/environments/<envname>/provisioning/axstatus
Il sistema dovrebbe mostrare lo stato RIUSCITA per tutti i server di analisi. L'output del comando CURL riportato sopra è mostrato di seguito:
{ "environments" : [ { "components" : [ { "message" : "success at Thu Feb 28 10:27:38 CET 2013", "name" : "pg", "status" : "SUCCESS", "uuid" : "[c678d16c-7990-4a5a-ae19-a99f925fcb93]" }, { "message" : "success at Thu Feb 28 10:29:03 CET 2013", "name" : "qs", "status" : "SUCCESS", "uuid" : "[ee9f0db7-a9d3-4d21-96c5-1a15b0bf0adf]" } ], "message" : "", "name" : "prod" } ], "organization" : "acme", "status" : "SUCCESS" }
Database PostgreSQL
Utilizzare lo script check_postgres.pl
Per monitorare il database PostgreSQL, puoi utilizzare uno script di monitoraggio standard, check_postgres.pl, disponibile all'indirizzo http://bucardo.org/wiki/Check_postgres.
Nota: lo script check_postgres.pl deve essere installato in ogni nodo Postgres.
Prima di eseguire lo script:
- Assicurati di aver installato perl-Time-HiRes.x86_64, un modulo Perl che implementa sveglia ad alta risoluzione, sospensione, gettimeofday e timer a intervalli. Ad esempio, puoi installarlo utilizzando il seguente comando:
yum install perl-Time-HiRes.x86_64
L'output predefinito delle chiamate API che utilizzano lo script check_postgres.pl è compatibile con Nagios. Dopo aver installato lo script, esegui questi controlli:
- Dimensione del database: controlla le dimensioni del database:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action database_size --warning='800 GB' --critical='900 GB' - Connessione in entrata al database: controlla il numero di connessioni in entrata al
database e lo confronta con il numero massimo di connessioni consentite:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends - Disponibilità e prestazioni del database: verifica se il database è in esecuzione e disponibile:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection - Spazio su disco – verifica lo spazio su disco:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%' - Organizzazioni/ambienti con onboarding: verifica il numero di organizzazioni e
ambienti inseriti in un nodo Postgres:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action=custom_query --query="select count(*) as result from pg_table_tables --query="select count(*) as result from pg_table_tables and like tablename='m.
Nota: consulta la pagina http://bucardo.org/check_postgres/check_postgres.pl.html se hai bisogno di assistenza per l'utilizzo dei comandi riportati sopra.
Controlli DB
Puoi verificare che nel database PostgreSQL vengano create le tabelle corrette. Accedi al database PostgreSQL utilizzando:
psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee
ed esegui:
\d analytics."<org>.<env>.fact"
Controlla lo stato di integrità del processo Postgres
Puoi eseguire il controllo delle API sulla macchina postgres richiamando il seguente comando CURL:
http://<postgres_IP>:8084/v1/servers/self/health/
Nota: assicurati di utilizzare la porta 8084.
Restituisce lo stato "ATTIVO" quando il processo postgres è attivo. Se il processo postgres non è attivo e in esecuzione, restituisce lo stato "INATTIVO".
Risorse Postgres
- http://www.postgresql.org/docs/9.0/static/monitoring.html
- http://www.postgresql.org/docs/9.0/static/diskusage.html
- http://bucardo.org/check_postgres/check_postgres.pl.html
Apache Cassandra
Utilizzo di JConsole: monitoraggio delle statistiche delle attività
Utilizza JConsole e il seguente URL di servizio per monitorare gli attributi JMX (MBean) offerti tramite JMX.
service:jmx:rmi:///jndi/rmi://<ip address>:7199/jmxrmi
dove <indirizzo IP> è l'IP del server Cassandra.
JMX è abilitato per impostazione predefinita per Cassandra e l'accesso JMX remoto a Cassandra non richiede una password.
Per abilitare l'autenticazione JMX per aggiungere una password:
- Modifica /opt/apigee/customer/application/cassandra.properties. Se il file non esiste, crealo.
- Aggiungi quanto segue al file:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - Salva il file.
- Copia il seguente file dalla directory $JAVA_HOME in
/opt/apigee/data/apigee-cassandra/:
cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password - Modifica jmxremote.password e
aggiungi nome utente e password al file:
cassandra password
dove password è la password JMX. - Modifica ${JAVA_HOME}/lib/management/jmxremote.access e
aggiungi il seguente ruolo:
cassandra readwrite - Assicurati che i file siano di proprietà di "apigee" e che la modalità file sia 400:
> chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.*
> chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.* - Crea un file nel seguente percorso, se non esiste:
/opt/apigee/customer/application/jmx_auth.sh
- Aggiungi le seguenti righe al file
jmx_auth.sh
che hai appena creato:export CASS_JMX_USERNAME=JMX_USERNAME export CASS_JMX_PASSWORD=JMX_PASSWORD
- Esegui questo comando:
source /opt/apigee/customer/application/jmx_auth.sh
- Esegui configure su
Cassandra:
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure - Riavvia Cassandra:
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra inizia - Ripeti questa procedura su tutti gli altri nodi Cassandra.
Per disattivare l'autenticazione in un secondo momento:
- Modifica /opt/apigee/customer/application/cassandra.properties.
- Rimuovi la seguente riga dal file:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - Esegui configurazione su Cassandra:
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure - Riavvia Cassandra:
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra inizia - Ripeti questa procedura su tutti gli altri nodi Cassandra.
Statistiche JMX di Cassandra
MBean JMX |
Attributi JMX |
---|---|
ColonnaFamiglie/apprepo/ambienti ColonnaFamiglie/apprepo/organizzazioni ColonnaFamilies/apprepo/apiproxy_revisions ColonnaFamiglie/apprepo/apiproxies ColonnaFamiglie/audit/controlli ColonnaFamiglie/audit/rif_controllo |
PendingTasks |
MemtableColumnsCount |
|
MemtableDataSize |
|
ReadCount |
|
RecentReadLatencyMicros |
|
TotalReadLatencyMicros |
|
WriteCount |
|
RecentWriteLatencyMicros |
|
TotalWriteLatencyMicros |
|
TotalDiskSpaceUsed |
|
LiveDiskSpaceUsed |
|
LiveSSTableCount |
|
BloomFilterFalsePositives |
|
RecentBloomFilterFalseRatio |
|
BloomFilterFalseRatio |
Utilizzo dell'utilità nodetool per gestire i nodi cluster
L'utilità nodetool, che è un'interfaccia a riga di comando per Cassandra, viene utilizzata per gestire i nodi dei cluster. L'utilità è disponibile all'indirizzo /opt/apigee/apigee-cassandra/bin
.
Per ulteriori informazioni sull'utilità nodetool, vedi http://www.datastax.com/docs/1.0/references/nodetool.
Le seguenti chiamate possono essere effettuate su tutti i nodi del cluster Cassandra:
- Informazioni generali sulla suoneria (possibile anche per un singolo nodo Cassandra): cerca i valori "Up" e "Normal" per tutti i nodi.
<br class="2-2-0"> [host]# nodetool -u username -p password -h localhost ring
- Informazioni generali sui nodi (chiamata per nodo)
nodetool -u username -p password -h localhost info
L'output del comando precedente ha il seguente aspetto:
Token : 0
Gossip attivo: true
Caricamento: 1,67 MB
Generazione n. : 1361968765
8 MB di tempo di attività
- Stato del server Thrift (API client in uso)
host]# nodetool -u username -p password -h localhost statusthrift
L'output del comando precedente mostra lo stato "in esecuzione". - Stato delle operazioni di flussi di dati: osserva il traffico per i nodi cassandra
nodetool -u username -p password -h localhost netstats 192.168.124.203
L'output del comando sopra appare come mostrato di seguito:
Mode: NORMAL
Nothing streaming to /192.16.
Monitoraggio di Cassandra (UI)
Fai riferimento all'URL datastax opscenter: http://www.datastax.com/products/opscenter.
Risorsa Cassandra
Fai riferimento al seguente URL: http://www.datastax.com/docs/1.0/operations/monitoring.
ZooKeeper Apache
Controllo dello stato di ZooKeeper in corso...
- Assicurati che il processo ZooKeeper sia in esecuzione. ZooKeeper scrive un file PID su opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid.
- Testa le porte ZooKeeper per assicurarti di poter stabilire una connessione TCP alle porte 2181 e 3888 su ogni server ZooKeeper.
- Assicurati di poter leggere i valori dal database ZooKeeper. Connettiti utilizzando una libreria client ZooKeeper (o /opt/apigee/apigee-zookeeper/bin/zkCli.sh) e leggi un valore dal database.
- Controlla lo stato:
> /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper stato
Utilizzo delle parole in quattro lettere di ZooKeeper
ZooKeeper può essere monitorato tramite un piccolo insieme di comandi (parole di quattro lettere) che vengono inviati alla porta 2181 utilizzando netcat (nc) o telnet.
Per ulteriori informazioni sui comandi di ZooKeeper, vedi: http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands.
Ad esempio:
- srvr: elenca i dettagli completi del server.
- stat: elenca brevi dettagli del server e dei client connessi.
I seguenti comandi possono essere inviati alla porta ZooKeeper:
- Esegui il comando ruok di quattro lettere per verificare se il server è in esecuzione in uno stato diverso da errore. Una
risposta corretta restituisce "imok".
echo ruok | nc <host> 2181
Restituisce:
imok - Esegui il comando a quattro lettere e stat per elencare le prestazioni del server e le statistiche dei client connessi.<br class-2-3:
102-30-2;10-4-5;<10-2-1.<10-2-1.<10-2-1.<10-10-10-10-10-10-10-10-10-10-10-2-1.
- Se netcat (nc) non è disponibile, puoi utilizzare Python come alternativa. Crea un file
denominato zookeeper.py 1
zookeeper.1 che contenga quanto segue:
import time, socket,
sys c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
c.connect((sys.argv[1], 2181))
c.send(sys.argv[2])
tempo
OpenLDAP
Test del livello LDAP
Puoi monitorare OpenLDAP per vedere se le richieste specifiche vengono gestite correttamente. In altre parole, cerca una ricerca specifica che restituisca il risultato corretto.
- Utilizza ldapsearch (yum install openldap-clients) per eseguire una query sulla voce dell'amministratore di sistema. Questa voce viene utilizzata per autenticare tutte le chiamate API.
ldapsearch -b "uid=admin,ou=users,ou=global,dc=apigee,dc=com" -x -W -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -LLLperson
Viene quindi richiesta la password dell'amministratore LDAP:
Inserisci la password dell'amministratore LDAP:
- Controlla se il server di gestione è ancora connesso al problema LDAP:
curl -u <userEMail>:<password> http://localhost:8080/v1/users/<ADMIN>
Restituisce:
{
"emailId" : <ADMIN>,
"firstName" : "admin",
"lastName" : "admin"
}
Puoi anche monitorare le cache di OpenLDAP, che consentono di ridurre il numero di accessi al disco e, di conseguenza, di migliorare le prestazioni del sistema. Il monitoraggio e l'ottimizzazione delle dimensioni della cache nel server OpenLDAP possono influire notevolmente sulle prestazioni del server di directory. Puoi visualizzare i file di log (opt/apigee/var/log) per ottenere informazioni sulla cache.