Cómo supervisar

Edge para la nube privada v4.18.01

En este documento, se describen las técnicas de supervisión de los componentes compatibles con una implementación local de Apigee Edge.

Cómo habilitar JMX

JMX está habilitado de forma predeterminada para Cassandra y, luego, inhabilitado para todos los demás componentes de Edge. Por lo tanto, debes habilitar JMX de forma individual para cada componente.

Cada componente admite JMX en un puerto diferente. En la siguiente tabla, se muestra el puerto JMX y el archivo que modificas para habilitar JMX en ese puerto:

Componente Puerto JMX Archivo
Servidor de administración 1099 /opt/apigee/edge-management-server/bin/start
Router 1100 /opt/apigee/edge-router/bin/start
Procesador de mensajes 1101 /opt/apigee/edge-message-processor/bin/start
LPD 1102 /opt/apigee/edge-qpid-server/bin/start
Postgres 1103 /opt/apigee/edge-postgres-server/bin/start

Por ejemplo, para habilitar JMX en el servidor de administración, abre /opt/apigee/edge-management-server/bin/start en un editor. Deberías ver la siguiente línea para iniciar el servidor de administración:

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

Edita esta línea para agregar lo siguiente:

-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 

Ten en cuenta que esta línea especifica el número de puerto JMX como 1099 para el servidor de administración. Establece el número de puerto para cada componente como se define en la tabla anterior. Por ejemplo:

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

Guarda el archivo y, luego, reinicia el componente. Por ejemplo, para reiniciar el servidor de administración, haz lo siguiente:

> /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

Habilita la autenticación de JMX y configura la contraseña de JMX

El proceso de supervisión para el servidor de administración, el procesador de mensajes, Qpid y Postgres usan JMX. JMX está habilitado de forma predeterminada, y el acceso remoto no requiere una contraseña.

Para habilitar la autenticación JMX, cada componente tiene una acción change_jmx_auth que debes usar para habilitar o inhabilitar la autenticación y configurar las credenciales de JMX.

Para habilitar la autenticación JMX, usa el siguiente comando:

>  /opt/apigee/apigee-service/bin/apigee-service comp change_jmx_auth optionsOrConfigFile

Donde:

  • comp es edge-management-server, perimetral-message-processor, Edge-qpid-server o Edge-postgres-server.
  • Las opciones son las siguientes:
    • -u: Nombre de usuario
    • -p: Contraseña
    • -e: y (habilitar) o n (dsiable)
  • El archivo de configuración incluye lo siguiente:
    • JMX_USERNAME=nombre de usuario
    • JMX_HABILITADO=y/n
    • JMX_PASSWORD=password (si no se establece o no se pasa con -p, se te solicita)

Por ejemplo, para usar opciones en la línea de comandos, haz lo siguiente:

> /opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y

Si tienes un archivo de configuración, haz lo siguiente:

> /opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f configFile

Si ejecutas Edge en varios nodos, ejecuta este comando en todos y especifica el mismo nombre de usuario y contraseña.

Para inhabilitar la autenticación JMX más adelante, usa el siguiente comando:

> /opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n

Servidor de administración

Cómo usar JConsole para supervisar la verificación de estado del sistema y la información de procesos

Usa JConsole (una herramienta compatible con JMX) para administrar y supervisar verificaciones de estado y estadísticas de procesos. Con JConsole, puedes consumir las estadísticas de JMX que expone el servidor de administración (o cualquier servidor) y mostrarlas en una interfaz gráfica. Para obtener más información sobre el uso de JConsole, consulta http://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html.

Usa JConsole y la siguiente URL de servicio para supervisar los atributos JMX (MBeans) que se ofrecen a través de JMX.

service:jmx:rmi:///jndi/rmi://<ip address>:<port>/jmxrmi

donde <ip address> es la dirección IP del servidor de administración (o el servidor correspondiente). De forma predeterminada, el puerto es 1099 para el servidor de administración.

En la siguiente tabla, se muestran las estadísticas genéricas de JMX:

MBeans de JMX

Atributos JMX

Memoria

HeapMemoryUsage

NonHeapMemoryUsage

Uso

Nota: Los valores del atributo se mostrarán en cuatro valores: confirmados, init, máximos y usados.

Usa las verificaciones de la API de Edge Application

Puedes realizar una verificación de API en el servidor de administración (o en cualquier servidor) si invocas el siguiente comando CURL:

curl http://<host>:8080/v1/servers/self/up -H "Accept: application/json"

Donde <host> es la dirección IP del servidor de administración. Puedes especificar el tipo Accept como application/json o application/xml.

Esta llamada muestra los valores "true" y "false". Si es verdadero, significa que el nodo está activo y se está ejecutando el servicio de Java.

Si no recibes una respuesta HTTP 200 (OK), el perímetro no puede responder a las solicitudes del puerto 8080.

Solución de problemas

  1. Accede al servidor y ejecuta el siguiente comando:
    /opt/apigee/apigee-service/bin/apigee-service Edge-management-server status
  2. Si el servicio no está en ejecución, inicia el servicio:
    /opt/apigee/apigee-service/bin/apigee-service Edge-management-server start

Usa aplicaciones perimetrales: verificaciones de usuarios, implementación y organización

Management Server desempeña una función vital en la retención de todas las demás parcelas en cada instalación local. Puedes verificar el estado del usuario, la organización y la implementación en el servidor de administración mediante los siguientes comandos:

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

El sistema debe mostrar el estado "implementado" para todas las llamadas. Si estos procesos fallan, haz lo siguiente:

  1. Revisa los registros del servidor de administración (en opt/apigee/var/log/edge-management-server) para verificar si hay errores.
  2. Realiza una llamada al servidor de administración para verificar si funciona correctamente.
  3. Quita el servidor del ELB y, luego, reinicia el servidor de administración.
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server reiniciar

Router

Puedes realizar una verificación de API en el router (o en cualquier servidor) si invocas el siguiente comando CURL:

curl http://<host>:8081/v1/servers/self/up

Donde, host es la dirección IP del router.

Esta llamada muestra los valores "true" y "false". Si es verdadero, significa que el nodo está activo y que el servicio del router está en ejecución.

Si no recibes una respuesta HTTP 200 (OK), Edge no podrá responder a las solicitudes del puerto 8081.

Solución de problemas

  1. Accede al servidor y ejecuta los siguientes comandos:
    /<inst_root>/apigee/apigee-service/bin/apigee-service edge-router status
  2. Si el servicio no está en ejecución, inicia el servicio
    /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-router start
  3. Después de reiniciar, comprueba que funcione
    curl -v http://localhost:port/v1/servers/self/up

    Donde el puerto es 8081 para el router y 8082 para el procesador de mensajes.

Cómo usar JConsole para supervisar la verificación de estado del sistema y la información de procesos

Sigue los mismos pasos descritos anteriormente para el servidor de administración.

Nota: Asegúrate de usar el puerto 1100.

Procesador de mensajes

Cómo usar JConsole para supervisar la verificación de estado del sistema y la información de procesos

Sigue los mismos pasos descritos anteriormente para el servidor de administración.

Nota: Asegúrate de usar el puerto 1101.

Usa las verificaciones de la API de Edge Application

Sigue los mismos pasos descritos anteriormente para el router.

Nota: Asegúrate de usar el puerto 8082.

Usa verificaciones de flujo de mensajes de JMX

Sigue los mismos pasos descritos anteriormente para el servidor de administración.

Nota: Asegúrate de usar el puerto 1101.

Servidor Qpid

Cómo usar JConsole para supervisar la verificación de estado del sistema y la información de procesos

Sigue los mismos pasos descritos anteriormente para el servidor de administración.

Nota: Asegúrate de usar el puerto 1102.

Usa verificaciones de la API de Edge Application

Sigue los mismos pasos descritos anteriormente para el servidor de administración.

Nota: Asegúrate de usar el puerto 8083. El siguiente comando CURL también es compatible con Qpid Server:

curl http://<qpid_IP>:8083/v1/servers/self

Servidor Postgres

Cómo usar JConsole para supervisar la verificación de estado del sistema y la información de procesos

Sigue los mismos pasos descritos anteriormente para el servidor de administración.

Nota: Asegúrate de usar el puerto 1103.

Usa verificaciones de la API de Edge Application

Sigue los mismos pasos descritos anteriormente para el servidor de administración.

Nota: Asegúrate de usar el puerto 8084. El siguiente comando CURL también es compatible con el servidor Postgres:

curl http://<postgres_IP>:8084/v1/servers/self

Usa verificaciones de entorno y de organización de aplicaciones de Edge

Puedes verificar el nombre de la organización y el entorno que están incorporados en el servidor de Postgres mediante la emisión de los siguientes comandos CURL:

curl http:// <postgres_IP>:8084/v1/servers/self/organizations

Nota: Asegúrate de usar el puerto 8084.

El sistema debe mostrar el nombre de la organización y del entorno.

Usa la verificación de axstatus de la aplicación perimetral

Puedes verificar el estado de los servidores de estadísticas mediante el siguiente comando CURL.

curl -u userEmail:password http://<host>:<port>/v1/organizations/<orgname>/environments/<envname>/provisioning/axstatus

El sistema debería mostrar el estado SUCCESS para todos los servidores de estadísticas. El resultado del comando de CURL anterior se muestra a continuación:

{
  "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"
}

Base de datos de PostgreSQL

Usa la secuencia de comandos check_postgres.pl

Para supervisar la base de datos de PostgreSQL, puedes usar una secuencia de comandos de supervisión estándar, check_postgres.pl, que está disponible en http://bucardo.org/wiki/Check_postgres.

Nota: La secuencia de comandos check_postgres.pl debe instalarse en cada nodo de Postgres.

Antes de ejecutar la secuencia de comandos, haz lo siguiente:

  1. Asegúrate de tener instalado perl-Time-HiRes.x86_64, un módulo de Perl que implementa cronómetros de alarma, suspensión, gettimeofday y intervalos de alta resolución. Por ejemplo, puedes instalarlo con el siguiente comando:
    yum install perl-Time-HiRes.x86_64

El resultado predeterminado de las llamadas a la API con la secuencia de comandos, check_postgres.pl es compatible con Nagios. Después de instalar la secuencia de comandos, realiza las siguientes verificaciones:

  1. Tamaño de la base de datos: verifica el tamaño de la base de datos:
    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. Conexión entrante a la base de datos: comprueba la cantidad de conexiones entrantes a la base de datos y se compara con la cantidad máxima de conexiones permitidas:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
  3. Disponibilidad y rendimiento de la base de datos: comprueba si la base de datos está en ejecución y está disponible:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
  4. Espacio en el disco: comprueba el espacio en el disco:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --Critical='90%'
  5. Organizaciones y entornos integrados: verifica la cantidad de organizaciones y entornos integrados en un nodo de Postgres:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action=custom_query --query="select count(*) as result_integer' schema='val_fact0 table'data'schema='data'schema='analytics=pricing'gigabytes

Nota: Consulta http://bucardo.org/check_postgres/check_postgres.pl.html en caso de que necesites ayuda para usar los comandos anteriores.

Verificaciones de bases de datos

Puedes verificar que se creen las tablas adecuadas en la base de datos de PostgreSQL. Accede a la base de datos de PostgreSQL con:

psql -h /opt/apigee/var/run/apigee-postgresql/  -U apigee -d apigee

y, luego, ejecuta lo siguiente:

\d analytics."<org>.<env>.fact"

Verifica el estado del proceso de postgres

Puedes realizar una verificación de API en la máquina de postgres si invocas el siguiente comando CURL:

http://<postgres_IP>:8084/v1/servers/self/health/

Nota: Asegúrate de usar el puerto 8084.

Muestra el estado "ACTIVE" cuando el proceso de postgres está activo. Si el proceso de postgres no está en funcionamiento, muestra el estado “INACTIVE”.

Recursos de Postgres

Apache Cassandra

Con JConsole: supervisa las estadísticas de tareas

Usa JConsole y la siguiente URL de servicio para supervisar los atributos JMX (MBeans) que se ofrecen a través de JMX.

service:jmx:rmi:///jndi/rmi://<ip address>:7199/jmxrmi

en la que <ip address> es la IP del servidor de Cassandra.

JMX está habilitado de forma predeterminada para Cassandra, y el acceso remoto de JMX a Cassandra no requiere una contraseña.

Para habilitar la autenticación JMX y agregar una contraseña:

  1. Edita /opt/apigee/customer/application/cassandra.properties. Si el archivo no existe, créalo.
  2. Agrega lo siguiente al archivo:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Guarda el archivo.
  4. Copia el siguiente archivo del directorio $JAVA_HOME a /opt/apigee/data/apigee-cassandra/:
    cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password
  5. Edita jmxremote.password y agrega el nombre de usuario y la contraseña al archivo:
    cassandra password

    en el que password es la contraseña de JMX.
  6. Edita ${JAVA_HOME}/lib/management/jmxremote.access y agrega el siguiente rol:
    Cassandra readwrite
  7. Asegúrate de que los archivos sean propiedad de “apigee” y que el modo de archivo sea 400:
    > chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.*
    > chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.*
  8. Crea un archivo en la siguiente ubicación, si no existe:
    /opt/apigee/customer/application/jmx_auth.sh
  9. Agrega las siguientes líneas al archivo jmx_auth.sh que acabas de crear:
    export CASS_JMX_USERNAME=JMX_USERNAME
    export CASS_JMX_PASSWORD=JMX_PASSWORD
  10. Ejecuta el siguiente comando:
    source /opt/apigee/customer/application/jmx_auth.sh
  11. Ejecuta configure en Cassandra:
    >/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configurar
  12. Reinicia Cassandra:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  13. Repite este proceso en todos los demás nodos de Cassandra.

Para inhabilitar la autenticación más adelante, sigue estos pasos:

  1. Edita /opt/apigee/customer/application/cassandra.properties.
  2. Quita la siguiente línea del archivo:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Ejecuta la configuración en Cassandra:
    >/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configurar
  4. Reinicia Cassandra:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  5. Repite este proceso en todos los demás nodos de Cassandra.

Estadísticas de Cassandra JMX

MBeans de JMX

Atributos JMX

Familias de columnas/apprepo/entornos

Familias de columnas/apprepo/organizaciones

ColumnFamilies/apprepo/apiproxy_revisions

Familias de columnas/apprepo/apiproxies

Familias de columnas, auditorías y auditorías

ColumnFamilies/audit/audits_ref

PendingTasks

MemtableColumnsCount

MemtableDataSize

ReadCount

RecentReadLatencyMicros

TotalReadLatencyMicros

WriteCount

RecentWriteLatencyMicros

TotalWriteLatencyMicros

TotalDiskSpaceUsed

LiveDiskSpaceUsed

LiveSSTableCount

BloomFilterFalsePositives

RecentBloomFilterFalseRatio

BloomFilterFalseRatio

Usa la utilidad nodetool para administrar los nodos del clúster

La utilidad nodetool, que es una interfaz de línea de comandos para Cassandra, se usa con el fin de administrar los nodos del clúster. La utilidad se encuentra en /opt/apigee/apigee-cassandra/bin.

Para obtener más información sobre la utilidad nodetool, consulta http://www.datastax.com/docs/1.0/references/nodetool.

Se pueden realizar las siguientes llamadas en todos los nodos del clúster de Cassandra:

  1. Información general de anillo (también es posible para un solo nodo de Cassandra): Busca las opciones "Arriba" y "Normal" para todos los nodos.
    1[host]# nodetool -u username -p password -h localhost anillo

    El resultado del comando anterior es como se muestra a continuación:
    Dirección DC Rack Estado La carga es propiedad del token
    192.168.124.201 dc1 ra1 Up Normal 1.67 MB 33.33%

  2. Información general sobre los nodos (llamada por nodo)
    nodetool -u username -p password -h localhost info

    El resultado del comando anterior es como se muestra a continuación:
    Token: 0
    Gossip activo : true
    Carga: 1.67 MB
    N.o de generación: 1361968765)
    7 Tiempo de actividad (7)



  3. Estado del servidor de segunda mano (API del cliente de entrega)
    host]# nodetool -u username -p password -h localhost statusthrift

    El resultado del comando anterior muestra el estado como “running”.
  4. Estado de las operaciones de transmisión de datos: Observa el tráfico de los nodos de Cassandra
    nodetool -u username -p password -h localhost netstats 192.168.124.203

    El resultado del comando anterior se ve como se muestra a continuación:
    Modo: NORMAL
    Nada de transmisión a /192.16.16



Supervisión (IU) de Cassandra

Consulta la URL de datastax opscenter: http://www.datastax.com/products/opscenter.

Recurso de Cassandra

Consulta la siguiente URL: http://www.datastax.com/docs/1.0/operations/monitoring.

Apache ZooKeeper

Verifica el estado de ZooKeeper

  1. Asegúrate de que el proceso de ZooKeeper esté en ejecución. ZooKeeper escribe un archivo PID en opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid.
  2. Prueba los puertos de ZooKeeper para asegurarte de que puedes establecer una conexión TCP a los puertos 2181 y 3888 en cada servidor de ZooKeeper.
  3. Asegúrate de que puedes leer valores de la base de datos de ZooKeeper. Conéctate mediante una biblioteca cliente de ZooKeeper (o /opt/apigee/apigee-zookeeper/bin/zkCli.sh) y lee un valor de la base de datos.
  4. Verifica el estado:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper

Cómo usar palabras de cuatro letras de ZooKeeper

ZooKeeper se puede supervisar a través de un pequeño conjunto de comandos (palabras de cuatro letras) que se envían al puerto 2181 mediante netcat (nc) o telnet.

Para obtener más información sobre los comandos de ZooKeeper, consulta: http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands.

Por ejemplo:

  • srvr: Enumera los detalles completos del servidor.
  • stat: Enumera detalles breves para el servidor y los clientes conectados.

Se pueden emitir los siguientes comandos al puerto de ZooKeeper:

  1. Ejecuta el comando de cuatro letras ruok para probar si el servidor se está ejecutando sin errores. Si la respuesta es correcta, se mostrará "imok".
    echo ruok | nc <host> 2181

    Muestra:
    imok
  2. Ejecuta el comando de cuatro letras, stat para enumerar el rendimiento del servidor y las estadísticas de los clientes conectados.
    echo stat:
















  3. Si netcat (nc) no está disponible, puedes usar Python como alternativa. Crea un archivo llamado zookeeper.py que contenga lo siguiente:
    import time, socket,
    sys c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    c.connect((sys.argv[1], 2181)))
    pythonc.send(sys.argv[2])





OpenLDAP

Prueba de nivel de LDAP

Puedes supervisar el OpenLDAP para ver si las solicitudes específicas se entregan correctamente. En otras palabras, buscar una búsqueda específica que muestre el resultado correcto

  1. Usa ldapsearch (yum install openldap-clients) para consultar la entrada del administrador del sistema. Esta entrada se utiliza para autenticar todas las llamadas a la 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

    Debes ingresar la contraseña de administrador de LDAP
    Ingresa la contraseña de administrador de LDAP
    ldapsearch -b











  2. Verifica si el servidor de administración sigue conectado al problema de LDAP:
    curl -u <userEMail>:<password> http://localhost:8080/v1/users/<ADMIN>

    Muestra:
    {
    "emailId" : <ADMIN>,
    "firstName" : "admin",
    "lastName" : "admin"
    }

También puedes supervisar las cachés de OpenLDAP, que ayudan a reducir la cantidad de accesos al disco y, por lo tanto, a mejorar el rendimiento del sistema. Supervisar y luego ajustar el tamaño de la caché en el servidor OpenLDAP puede tener un gran impacto en el rendimiento del servidor de directorio. Puedes ver los archivos de registro (opt/apigee/var/log) para obtener información sobre la caché.