Edge per Private Cloud v. 4.17.01
Questo documento descrive le tecniche di monitoraggio dei componenti supportati da un server il deployment di Apigee Edge.
Attivazione di JMX
JMX è abilitato per impostazione predefinita per Cassandra e disabilitato per tutti gli altri dispositivi Edge componenti. Devi quindi abilitare JMX singolarmente per ogni componente.
Ogni componente supporta JMX su una porta diversa. Nella tabella seguente sono elencate le porte JMX e il file che modifichi per attivare JMX su quella porta:
Componente | Porta JMX | File |
---|---|---|
Server di gestione | 1099 | /opt/apigee/edge-management-server/bin/start |
processore di messaggi | 1101 | /opt/apigee/edge-mesage-processor/bin/start |
Qpid | 1102 | /opt/apigee/edge-qpid-server/bin/start |
Postgres | 1103 | /opt/apigee/edge-postgres-server/bin/start |
Ad esempio, per attivare JMX sul server di gestione, apri /opt/apigee/edge-management-server/bin/start in un editor. Dovresti vedere la seguente riga utilizzata 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 il numero di porta JMX come 1099 per il server di gestione. Imposta il parametro di porta di 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 la console Server:
> /opt/apigee/apigee-service/bin/ apigee-service edge-management-server restart
Attivazione dell'autenticazione JMX e Impostazione della password JMX
Il processo di monitoraggio per server di gestione, processore di messaggi, Qpid e Postgres utilizzare JMX. JMX è attivato per impostazione predefinita e per l'accesso remoto non è necessaria una password.
Per attivare l'autenticazione JMX, ogni componente ha un'azione change_jmx_auth che puoi utilizzare per attivare/disattivare l'autenticazione e impostare le credenziali JMX.
Per attivare l'autenticazione JMX, utilizza il seguente comando:
> /opt/apigee/apigee-service/bin/apigee-service comp change_jmx_auth optionsOrConfigFile
dove:
- comp corrisponde a 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 (disponibile)
- Il file di configurazione include:
- JMX_USERNAME=nome utente
- JMX_ENABLED=y/n
- JMX_PASSWORD=password (se non impostato o non trasmesso con -p, ti viene 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 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 JConsole per monitorare il controllo di integrità del sistema e le informazioni sull'elaborazione
Utilizza JConsole (uno strumento conforme a JMX) per gestire e monitorare il controllo di integrità e le statistiche relative all'elaborazione. Con JConsole, puoi utilizzare le statistiche JMX esposte da Management Server (o da qualsiasi server) e e di visualizzarli 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 del 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 rispettivo server). Per impostazione predefinita, la porta per il server di gestione è 1099.
La tabella seguente mostra le statistiche JMX generiche:
JMX MBean |
Attributi JMX |
---|---|
Memoria |
HeapMemoryUsage |
NonHeapMemoryUsage |
|
Utilizzo |
|
Nota:i valori degli attributi verranno visualizzati in quattro valori: commit, init, max e used. |
Utilizzo dell'API Edge Application controlli
Puoi eseguire il controllo delle API sul server di gestione (o su qualsiasi server) richiamando quanto segue Comando CURL:
curl http://<host>:8080/v1/servers/self/up
Dove, <host> è l'indirizzo IP di gestione Server.
Questa chiamata restituisce il valore "true" e "false". Se il valore è 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 alla porta 8080 richieste.
Risoluzione dei problemi
- Accedi al server ed esegui questo comando:
/opt/apigee/apigee-service/bin/apigee-service stato di edge-management-server - Avvialo se il servizio non è in esecuzione:
/opt/apigee/apigee-service/bin/apigee-service avvio edge-management-server
Utilizzo di Edge Applicazione - Controlli di utenti, organizzazione e deployment
Il server di gestione svolge un ruolo vitale nel tenere insieme tutti gli altri pacchetti in ogni ambiente on-premise. dell'installazione. Puoi verificare lo stato di utenti, organizzazione e deployment sul server di gestione utilizzando questi 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
Sul sistema dovrebbe essere visualizzato il messaggio "Deployment eseguito" stato di tutte le chiamate. Se il problema persiste, esegui la seguenti:
- Controlla i log del server di gestione (su opt/apigee/var/log/edge-management-server) alla ricerca di eventuali errori.
- Effettua una chiamata al server di gestione per verificare se funziona correttamente.
- Rimuovi il server dall'ELB e riavvia il server di gestione.
/opt/apigee/apigee-service/bin/apigee-service riavvio di edge-management-server
Router
Puoi eseguire il controllo delle API sul router (o su qualsiasi server) richiamando il seguente CURL :
curl http://<host>:8081/v1/servers/self/up
Dove, host è l'indirizzo IP del router.
Questa chiamata restituisce il valore "true" e "false". Se true, significa che il nodo è attivo e il router sia in esecuzione.
Se non ricevi una risposta HTTP 200 (OK), Edge non è in grado di rispondere alla porta 8081 richieste.
Risoluzione dei problemi
- Accedi al server ed esegui questi comandi:
/<inst_root>/apigee/apigee-service/bin/apigee-service stato del router perimetrale - Avvia il servizio non ancora in esecuzione
/<inst_root>/apigee/apigee-service/bin/apigee-service avvio router perimetrale - 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.
processore di messaggi
Utilizzo JConsole per monitorare il controllo di integrità del sistema e le informazioni sull'elaborazione
Segui le istruzioni sopra descritte per il server di gestione.
Nota: assicurati di utilizzare la porta 1101.
Utilizzo dell'API Edge Application controlli
Segui le istruzioni riportate sopra per il router.
Nota: assicurati di utilizzare la porta 8082.
Utilizzo dei controlli del flusso dei messaggi JMX
Segui le istruzioni sopra descritte 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 sull'elaborazione
Segui le istruzioni sopra descritte per il server di gestione.
Nota: assicurati di utilizzare la porta 1102.
Utilizzo dei controlli dell'API Edge Application
Segui le istruzioni sopra descritte per il server di gestione.
Nota: assicurati di utilizzare la porta 8083. Il seguente comando CURL è è supportato anche per Qpid Server:
curl http://<qpid_IP>:8083/v1/servers/self
Server Postgres
Utilizzo JConsole per monitorare il controllo di integrità del sistema e le informazioni sull'elaborazione
Segui le istruzioni sopra descritte per il server di gestione.
Nota: assicurati di utilizzare la porta 1103.
Utilizzo dei controlli dell'API Edge Application
Segui le istruzioni sopra descritte per il server di gestione.
Nota: assicurati di utilizzare la porta 8084. Il seguente comando CURL è è supportato anche dal server Postgres:
curl http://<postgres_IP>:8084/v1/servers/self
Utilizzo di Edge Controlli dell'organizzazione e dell'ambiente delle applicazioni
Puoi controllare i nomi dell'organizzazione e dell'ambiente inseriti nel server Postgres utilizzando i seguenti comandi CURL:
curl http:// <postgres_IP>:8084/v1/servers/self/organizations
Nota: assicurati di utilizzare la porta 8084.
Nel sistema dovrebbe essere visualizzato il nome dell'organizzazione e dell'ambiente.
Utilizzo di axstatus di Edge Application verifica
Puoi verificare lo stato dei server di analisi inviando il seguente CURL .
curl -u userEmail:password http://<host>:<port>/v1/organizations/<orgname>/environments/<envname>/provisioning/axstatus
Il sistema dovrebbe visualizzare lo stato RIUSCITA per tutti i server di analisi. L'output del CURL precedente come 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
Utilizzo di check_postgres.pl copione
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 Postgres nodo.
Prima di eseguire lo script:
- Assicurati di aver installato perl-Time-HiRes.x86_64, un modulo Perl che
implementa sveglie ad alta risoluzione, sonno, ora del giorno e timer a intervalli. Ad esempio,
può installarlo utilizzando questo comando:
installazione yum perl-Time-HiRes.x86_64
L'output predefinito delle chiamate API che utilizzano lo script check_postgres.pl è compatibile con Nagios. Dopo il giorno installi lo script, effettua i seguenti controlli:
- Dimensioni 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 a
il database e confronta con il numero massimo consentito di connessioni:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backend - Disponibilità e prestazioni del database: controlla se il database è in esecuzione
disponibili:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection - Spazio su disco: consente di controllare 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 in cui è stato eseguito l'onboarding: verifica il numero di organizzazioni e
di onboarding in un nodo Postgres:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action=custom_query --query="select count(*) come risultato da pg_tables dove schemaname='analytics' e tablename come '%fact'" --warning='80' --critical='90' --valtype=integer
Nota: fai riferimento all'articolo http://bucardo.org/check_postgres/check_postgres.pl.html nel caso tu abbia bisogno di aiuto nell'uso dei comandi riportati sopra.
Controlli DB
Puoi verificare che nel database PostgreSQL vengano create le tabelle corrette. Accedi a PostgreSQL un database utilizzando:
psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee
quindi esegui:
\d analytics."<org>.<env>.fact"
Controlla lo stato di integrità di Postgres di elaborazione
Puoi eseguire il controllo dell'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 database processo non è attivo e in esecuzione, restituisce lo stato "INACTIVE".
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: attività di monitoraggio statistica
Utilizza JConsole e il seguente URL del servizio per monitorare gli attributi JMX (MBean) offerti tramite JMX.
service:jmx:rmi:///jndi/rmi://<ip address>:7199/jmxrmi
dove <indirizzo IP> è l'IP di Cassandra o server web.
JMX è abilitato per impostazione predefinita per Cassandra e l'accesso JMX remoto a Cassandra non richiede un password.
Per attivare l'autenticazione JMX e 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 i seguenti 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
cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access - Modifica jmxremote.password e
aggiungi nome utente e password al file:
Cassandra password
dove password è la password JMX. - Modifica jmxremote.access e
aggiungi il seguente ruolo:
Cassandra lettura e scrittura - 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.* - Esegui configure su
Cassandra:
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configura - Riavvia Cassandra:
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra
Per disattivare l'autenticazione in un secondo momento:
- Modifica /opt/apigee/customer/application/cassandra.properties.
- Rimuovi dal file la seguente riga:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - Esegui la configurazione su Cassandra:
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configura - Riavvia Cassandra:
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra
Statistiche JMX Cassandra
JMX MBean |
Attributi JMX |
---|---|
ColumnFamilies/apprepo/environments ColumnFamilies/apprepo/organizations ColumnFamilies/apprepo/apiproxy_revisions ColumnFamilies/apprepo/apiproxies ColumnFamilies/audit/audits ColumnFamilies/audit/audits_ref |
PendingTasks |
MemtableColumnsCount |
|
MemtableDataSize |
|
ReadCount |
|
RecentReadLatencyMicros |
|
TotalReadLatencyMicros |
|
WriteCount |
|
RecentWriteLatencyMicros |
|
TotalWriteLatencyMicros |
|
TotalDiskSpaceUsed |
|
LiveDiskSpaceUsed |
|
LiveSSTableCount |
|
BloomFilterFalsePositives |
|
RecentBloomFilterFalseRatio |
|
BloomFilterFalseRatio |
L'uso dell'utilità nodetool per gestisci i nodi del cluster
L'utilità nodetool, un'interfaccia a riga di comando per Cassandra, viene utilizzata per gestire nodi del 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 chiamate seguenti possono essere effettuate su tutti i nodi del cluster Cassandra:
- Informazioni generiche sullo squillo (possibili anche per un singolo nodo Cassandra): cerca la
"Su" e "Normale" per tutti i nodi.
[host]# nodetool -h localhost fai squillare
L'output del comando precedente è simile all'esempio seguente:
Indirizzo DC Stato rack personale, caricamento Token
192.168.124.201 dc1 ra1 In alto normale 1.67 MB 33,33% 0
192.168.124.202 dc1 ra1 In alto normale 1.68 MB 33,33% 56713727820156410577229101238628035242
192.168.124.203 dc1 ra1 In alto normale 1.67 MB 33,33% 113427455640312821154458202477256070484 - Informazioni generali sui nodi (chiamata per nodo)
nodetool -h localhost info
L'output del comando precedente è simile all'esempio seguente:
Token : 0
Gossip attivo : vero
Caricamento : 1,67 MB
N. generazione : 1361968765
Uptime (secondi) : 78108
Memoria heap (MB) : 46,80 / 772,00
Data center : dc1
Rack : ra1
Eccezioni : 0 - Stato del server dell'usato (API client di pubblicazione)
host]# nodetool -h localhost statusthrift
L'output del comando precedente mostra lo stato "in esecuzione". - Stato delle operazioni di flusso di dati: osserva il traffico di Cassandra
nodi
nodetool -h localhost netstats 192.168.124.203
L'output del comando precedente è simile all'esempio seguente:
Modalità: NORMALE
Niente streaming in /192.168.124.203
Nessuno streaming da /192.168.124.203
Nome pool attivo in attesa completato
Comandi n/a 0 1688
Risposte n/a 0 292277
Monitoraggio di Cassandra (UI)
Consulta l'URL di datastax opscenter: http://www.datastax.com/products/opscenter.
Risorsa Cassandra
Fai riferimento al seguente URL: http://www.datastax.com/docs/1.0/operations/monitoring.
Apache ZooKeeper
Controllo dello stato di ZooKeeper
- Assicurati che il processo ZooKeeper sia in esecuzione. ZooKeeper scrive un file PID in opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid.
- Testa le porte di ZooKeeper per assicurarti di poter stabilire una connessione TCP alle porte 2181 e 3888 su ogni server ZooKeeper.
- Assicurati di poter leggere i valori del database ZooKeeper. Connettiti utilizzando ZooKeeper libreria client (o /opt/apigee/apigee-zookeeper/bin/zkCli.sh) e leggere un valore dal database.
- Controlla lo stato:
> /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper
Utilizzo di quattro lettere di ZooKeeper
ZooKeeper può essere monitorato tramite un piccolo insieme di comandi (parole di quattro lettere) che vengono inviati la porta 2181 utilizzando netcat (nc) o telnet.
Per ulteriori informazioni sui comandi ZooKeeper, vedi: http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands.
Ad esempio:
- srvr: elenca i dettagli completi per il server.
- stat: elenca brevi dettagli per il server e i 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. R
la risposta corretta restituisce "imok".
echo ruok | nc <host> 2181
Resi:
imok - Esegui il comando a quattro lettere stat per elencare le prestazioni del server e i client connessi
statistiche.
statistiche eco | nc <host> 2181
Resi:
Versione di Zookeeper: 3.4.5-1392090, costruito il 30/09/2012 17:52 GMT
Clienti:
/0:0:0:0:0:0:0:1:33467[0](queued=0,recved=1,sent=0)
/192.168.124.201:42388[1](queued=0,recved=8433,sent=8433)
/192.168.124.202:42185[1](queued=0,recved=1339,sent=1347)
/192.168.124.204:39296[1](queued=0,recved=7688,sent=7692)
Latenza min/media/max: 0/0/128
Ricevuti: 26144
Inviato: 26160
Connessioni: 4
Eccellente: 0
Zxid: 0x2000002c2
Modalità: follower
Conteggio dei nodi: 283
Nota: a volte è importante controllare se ZooKeeper è in Modalità: leader, un follower o un osservatore. - Se netcat (nc) non è disponibile, puoi utilizzare Python in alternativa. Crea un file
chiamato zookeeper.py che
contiene quanto segue:
ora importazione, socket,
sys c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
c.connect((sys.argv[1], 2181))
c.send(sys.argv[2])
time.sleep(0.1)
stampa c.recv(512)
Ora esegui le seguenti linee Python:
python zookeeper.py 192.168.124.201 ruok
python zookeeper.py 192.168.124.201 stat
OpenLDAP
Test del livello LDAP
Puoi monitorare OpenLDAP per verificare se le richieste specifiche vengono gestite correttamente. Nella altre parole, verifica se una ricerca specifica restituisce il risultato corretto.
- Utilizza ldapsearch
(yum install openldap-clients)
per richiedere 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 -LLL
Ti verrà quindi richiesta la password di amministratore LDAP:
Inserisci la password LDAP:
Dopo aver inserito la password, vedrai una risposta nel modulo:
dn: uid=admin,ou=users,ou=global,dc=apigee,dc=com
objectClass: OrganizationPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
UID: amministratore
cn: amministratore
sn: amministratore
userPassword:: e1NTSEF9bS9xbS9RbVNXSFFtUWVsU1F0c3BGL3BQMkhObFp2eDFKUytmZVE9PQ=
=
email: opdk@google.com - Controlla se il server di gestione è ancora connesso al problema LDAP:
curl -u <userEMail>:<password> http://localhost:8080/v1/users/<ADMIN>
Resi:
{
"emailId" : <AMMINISTRAZIONE>,
"nome" : "amministratore",
"cognome" : "amministratore"
}
Puoi anche monitorare le cache OpenLDAP, utili per ridurre il numero di accessi al disco. migliorando quindi le prestazioni del sistema. Monitorare e quindi ottimizzare le dimensioni della cache Il server OpenLDAP può influire notevolmente sulle prestazioni del server di directory. Puoi visualizzare il log (opt/apigee/var/log) in ottenere informazioni sulla cache.