Come monitorare

Edge per Private Cloud v. 4.17.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
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 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

Dove <host> è l'indirizzo IP del server di gestione.

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

  1. Accedi al server ed esegui il seguente comando:
    /opt/apigee/apigee-service/bin/apigee-service stato edge-management-server
  2. 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:

  1. Verifica la presenza di eventuali errori nei log del server di gestione (all'indirizzo opt/apigee/var/log/edge-management-server).
  2. Effettua una chiamata al server di gestione per verificare che funzioni correttamente.
  3. 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

  1. Accedi al server ed esegui i seguenti comandi:
    /<inst_root>/apigee/apigee-service/bin/apigee-service stato edge-router
  2. Se il servizio non è in esecuzione, avvialo
    /<inst_root>/apigee/apigee-service/bin/apigee-service edge-router start
  3. 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 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:

  1. 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:

  1. 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'
  2. 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
  3. 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
  4. 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%'
  5. 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

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:

  1. Modifica /opt/apigee/customer/application/cassandra.properties. Se il file non esiste, crealo.
  2. Aggiungi quanto segue al file:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Salva il file.
  4. 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_japigee_access/italiacessaporpap_${JAVA_japigee_proxy/it/it/it/pazientecassetta
  5. Modifica jmxremote.password e aggiungi nome utente e password al file:
    cassandra password

    dove password è la password JMX.
  6. Modifica jmxremote.access e aggiungi il seguente ruolo:
    cassandra readwrite
  7. 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.*
  8. Esegui configure su Cassandra:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  9. Riavvia Cassandra:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra inizia

Per disattivare l'autenticazione in un secondo momento:

  1. Modifica /opt/apigee/customer/application/cassandra.properties.
  2. Rimuovi la seguente riga dal file:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Esegui configurazione su Cassandra:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. Riavvia Cassandra:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra inizia

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:

  1. Informazioni generali sulla suoneria (possibile anche per un singolo nodo Cassandra): cerca i valori "Up" e "Normal" per tutti i nodi.
    28 18 28 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.30 14.15 14.14 14.14 14.14 15 14 11 14 14 14 14 16





  2. Informazioni generali sui nodi (chiamata per nodo)
    nodetool -h localhost info

    L'output del comando riportato sopra ha il seguente aspetto:
    Token : 0
    Gossip attivo: true
    Carico: 1,67 MB
    N.generazione: 1361968765
    Tempo di attività (dcack10: 0 8 MB): 8
    8 MB


  3. Stato del server Thrift (API client di pubblicazione)
    host]# nodetool -h localhost statusthrift

    L'output del comando precedente mostra lo stato "in esecuzione".
  4. Stato delle operazioni di streaming di dati: osserva il traffico per i nodi cassandra
    nodetool -h localhost netstats 192.168.124.203

    L'output del comando precedente appare come mostrato di seguito:
    Mode: NORMAL
    Nothing streaming to /192.168.124.20.



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...

  1. Assicurati che il processo ZooKeeper sia in esecuzione. ZooKeeper scrive un file PID su opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid.
  2. Testa le porte ZooKeeper per assicurarti di poter stabilire una connessione TCP alle porte 2181 e 3888 su ogni server ZooKeeper.
  3. 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.
  4. 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:

  1. 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
  2. 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.

















  3. 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.

  1. 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:












  2. 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.