Surveillance

Edge for Private Cloud v. 4.16.09

Ce document décrit les techniques de surveillance des composants compatibles avec un déploiement sur site d'Apigee Edge.

Activer JMX

JMX est activé par défaut pour Cassandra et désactivé par défaut pour tous les autres composants Edge. Vous devez donc activer JMX individuellement pour chaque composant.

Chaque composant est compatible avec JMX sur un port différent. Le tableau suivant répertorie le port JMX et le fichier que vous modifiez pour activer JMX sur ce port:

Élément Port JMX Fichier
Serveur de gestion 1099 /opt/apigee/edge-management-server/bin/start
Processeur de messages 1101 /opt/apigee/edge-mesage-processor/bin/start
Qid 1102 /opt/apigee/edge-qpid-server/bin/start
Postgres 1103 /opt/apigee/edge-postgres-server/bin/start

Par exemple, pour activer JMX sur le serveur de gestion, ouvrez /opt/apigee/edge-management-server/bin/start dans un éditeur. La ligne suivante devrait vous servir à démarrer le serveur de gestion:

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

Modifiez cette ligne pour ajouter ce qui suit:

-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 

Notez que cette ligne spécifie le numéro de port JMX comme 1099 pour le serveur de gestion. Définissez le numéro de port de chaque composant, tel que défini dans le tableau ci-dessus. Exemple :

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

Enregistrez le fichier, puis redémarrez le composant. Par exemple, pour redémarrer le serveur de gestion:

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

Activer l'authentification JMX et définir le mot de passe JMX

Le processus de surveillance du serveur de gestion, du processeur de messages, de Qpid et de Postgres utilise tous JMX. JMX est activé par défaut, et l'accès JMX à distance ne nécessite pas de mot de passe.

Pour activer l'authentification JMX, chaque composant comporte une action change_jmx_auth qui vous permet d'activer/de désactiver l'authentification et de définir les identifiants JMX.

Pour activer l'authentification JMX, utilisez la commande suivante:

>  /<inst_root>/apigee/apigee-service/bin/apigee-service comp change_jmx_auth optionsOrConfigFile

où :

  • comp correspond à edge-management-server, Edge-message-processor, Edge-qpid-server, ou Edge-postgres-server.
  • Les options sont les suivantes :
    • -u: nom d'utilisateur
    • -p: mot de passe
    • -e: y (activé) ou n (dissociable)
  • Le fichier de configuration inclut les éléments suivants :
    • JMX_USERNAME=nom d'utilisateur
    • JMX_ENABLED=y/n
    • JMX_PASSWORD=password (si cette règle n'est pas configurée ou si elle n'est pas transmise avec -p, vous êtes invité à le faire)

Par exemple, pour utiliser les options dans la ligne de commande:

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

Si vous disposez d'un fichier de configuration:

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

Si vous exécutez Edge sur plusieurs nœuds, exécutez cette commande sur tous les nœuds, en spécifiant le même nom d'utilisateur et le même mot de passe.

Pour désactiver l'authentification JMX par la suite, utilisez la commande suivante:

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

Serveur de gestion

Surveiller la vérification de l'état du système et traiter les informations à l'aide de JConsole

Utilisez JConsole (un outil conforme à JMX) pour gérer et surveiller la vérification de l'état et les statistiques de traitement. Avec JConsole, vous pouvez utiliser les statistiques JMX exposées par le serveur de gestion (ou n'importe quel serveur) et les afficher dans une interface graphique. Pour en savoir plus sur l'utilisation de JConsole, consultez http://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html.

Utilisez JConsole et l'URL de service suivante pour surveiller les attributs JMX (Moeans) proposés via JMX.

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

<ip address> est l'adresse IP du serveur de gestion (ou du serveur respectif). Par défaut, le port est 1099 pour le serveur de gestion.

Le tableau suivant présente les statistiques JMX génériques:

JMX Morans

Attributs JMX

Mémoire

Utilisation du tas de mémoire

Utilisation de la mémoire autre que le tas de mémoire

Utilisation

Remarque:Les valeurs des attributs s'affichent dans quatre valeurs: commit, init, max et used.

Utilisation des vérifications de l'API Edge Application

Vous pouvez vérifier l'API sur le serveur de gestion (ou n'importe quel serveur) en appelant la commande CURL suivante:

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

<host> est l'adresse IP du serveur de gestion.

Cet appel renvoie les valeurs "true" et "false". Si la valeur est "true", cela signifie que le nœud est opérationnel et que le service Java est en cours d'exécution.

Si vous ne recevez pas de réponse HTTP 200 (OK), Edge ne peut pas répondre aux requêtes de port 8080.

Dépannage

  1. Connectez-vous au serveur et exécutez la commande suivante:
    /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-management-server
  2. Si le service n'est pas en cours d'exécution, démarrez-le:
    /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-management-server start

Utilisation de l'application périphérique : vérifications des utilisateurs, de l'organisation et du déploiement

Le serveur de gestion joue un rôle essentiel pour maintenir tous les autres colis ensemble dans chaque installation sur site. Vous pouvez vérifier l'état des utilisateurs, de l'organisation et du déploiement sur le serveur de gestion en exécutant les commandes suivantes:

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

Le système doit afficher l'état "Déployé" pour tous les appels. En cas d'échec, procédez comme suit:

  1. Vérifiez que les journaux du serveur de gestion (à l'adresse <inst_root>/apigee/var/log/edge-management-server) ne contiennent pas d'erreurs.
  2. Effectuez un appel sur le serveur de gestion pour vérifier qu'il fonctionne correctement.
  3. Supprimez le serveur de l'ELB, puis redémarrez le serveur de gestion.
    /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-management-server restart

Routeur

Vous pouvez vérifier l'API sur le routeur (ou n'importe quel serveur) en appelant la commande CURL suivante:

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

Où l'hôte est l'adresse IP du routeur.

Cet appel renvoie les valeurs "true" et "false". Si la valeur est "true", cela signifie que le nœud est opérationnel et que le service de routeur est en cours d'exécution.

Si vous ne recevez pas de réponse HTTP 200 (OK), Edge ne peut pas répondre aux requêtes de port 8081.

Dépannage

  1. Connectez-vous au serveur et exécutez les commandes suivantes:
    /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-router status
  2. Si le service n'est pas en cours d'exécution, démarrez le service.
    /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-router start
  3. Après le redémarrage, vérifiez qu'il fonctionne.
    curl -v http://localhost:port/v1/servers/self/up

    port correspond à 8081 pour le routeur et 8082 pour le processeur de messages.

Processeur de messages

Surveiller la vérification de l'état du système et traiter les informations à l'aide de JConsole

Suivez la même procédure que celle décrite ci-dessus pour le serveur de gestion.

Remarque: Veillez à utiliser le port 1101.

Utilisation des vérifications de l'API Edge Application

Suivez la même procédure que celle décrite ci-dessus pour le routeur.

Remarque: Assurez-vous d'utiliser le port 8082.

Utiliser les vérifications de flux de message JMX

Suivez la même procédure que celle décrite ci-dessus pour le serveur de gestion.

Remarque: Veillez à utiliser le port 1101.

Qpid Server

Surveiller la vérification de l'état du système et traiter les informations à l'aide de JConsole

Suivez la même procédure que celle décrite ci-dessus pour le serveur de gestion.

Remarque: Veillez à utiliser le port 1102.

Utilisation des vérifications de l'API Edge Application

Suivez la même procédure que celle décrite ci-dessus pour le serveur de gestion.

Remarque: Assurez-vous d'utiliser le port 8083. La commande CURL suivante est également compatible avec Qpid Server:

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

Serveur Postgres

Surveiller la vérification de l'état du système et traiter les informations à l'aide de JConsole

Suivez la même procédure que celle décrite ci-dessus pour le serveur de gestion.

Remarque: Veillez à utiliser le port 1103.

Utilisation des vérifications de l'API Edge Application

Suivez la même procédure que celle décrite ci-dessus pour le serveur de gestion.

Remarque: Assurez-vous d'utiliser le port 8084. La commande CURL suivante est également compatible avec Postgres Server:

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

Utilisation des vérifications de l'organisation et de l'environnement de l'application Edge

Vous pouvez vérifier le nom de l'organisation et de l'environnement intégré au serveur Postgres en exécutant les commandes CURL suivantes:

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

Remarque: Assurez-vous d'utiliser le port 8084.

Le système doit afficher le nom de l'organisation et de l'environnement.

Utiliser la vérification axstatus de l'application périphérique

Vous pouvez vérifier l'état des serveurs d'analyse en exécutant la commande CURL suivante.

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

Le système doit afficher l'état SUCCESS pour tous les serveurs d'analyse. Le résultat de la commande CURL ci-dessus est affiché ci-dessous:

{
  "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 données PostgresSQL

Utiliser le script check_postgres.pl

Pour surveiller la base de données PostgresSQL, vous pouvez utiliser un script de surveillance standard, check_postgres.pl, disponible sur http://bucardo.org/wiki/Check_postgres.

Remarque: Le script check_postgres.pl doit être installé dans chaque nœud Postgres.

Avant d'exécuter le script:

  1. Assurez-vous d'avoir installé perl-Time-HiRes.x86_64, un module Perl qui met en œuvre des minuteurs d'alarme, de mise en veille, de gettimeofday et d'intervalles en haute résolution. Par exemple, vous pouvez l'installer à l'aide de la commande suivante:
    yum install perl-Time-HiRes.x86_64

La sortie par défaut des appels d'API à l'aide du script check_postgres.pl est compatible avec Nagios. Après avoir installé le script, effectuez les vérifications suivantes:

  1. Taille de la base de données (vérifiez la taille de la base de données) :
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action Database_size --warning='800 Go' -- critical='900 Go'
  2. Connexion entrante à la base de données : vérifie le nombre de connexions entrantes à la base de données et la compare au nombre maximal de connexions autorisé :
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
  3. Disponibilité et performances de la base de données : vérifie si la base de données est en cours d'exécution et disponible :
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
  4. Espace disque : vérifie l'espace disque :
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' -- critical='90%'
  5. Organisations et environnements intégrés : vérifie le nombre d'organisations et d'environnements intégrés à un nœud Postgres :
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action=custom_query --query="select count(*) as result pg'name --type'.

Remarque: Si vous avez besoin d'aide pour utiliser les commandes ci-dessus, veuillez consulter le site http://bucardo.org/check_postgres/check_postgres.pl.html.

Vérifications de la base de données

Vous pouvez vérifier que les tables appropriées ont été créées dans la base de données PostgresSQL. Connectez-vous à la base de données PostgreSQL à l'aide de la commande suivante:

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

Ensuite:

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

Vérifier l'état de fonctionnement du processus postgres

Vous pouvez vérifier l'API sur la machine postgres en appelant la commande CURL suivante:

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

Remarque: Assurez-vous d'utiliser le port 8084.

Elle renvoie l'état "ACTIVE" lorsque le processus postgres est actif. Si le processus postgres n'est pas opérationnel, il renvoie l'état "INACTIVE".

Ressources Postgres

Apache Cassandra

Surveiller les statistiques des tâches à l'aide de JConsole

Utilisez JConsole et l'URL de service suivante pour surveiller les attributs JMX (Moeans) proposés via JMX.

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

<ip address> est l'adresse IP du serveur Cassandra.

JMX est activé par défaut pour Cassandra, et l'accès à ce service n'exige pas de mot de passe.

Pour activer l'authentification JMX afin d'ajouter un mot de passe:

  1. Modifiez /<inst_root>/apigee/customer/application/cassandra.properties. Si le fichier n'existe pas, créez-le.
  2. Ajoutez ce qui suit au fichier:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Enregistrez le fichier.
  4. Copiez les fichiers suivants à partir de votre répertoire $JAVA_HOME dans /<inst_root>/apigee/data/apigee-cassandra/:
    cp ${JAVA_HOME}/lib/management/jmxremote.password.template

    access cp ${JAVA_HOME/casrandra/jmxremote.password
  5. Modifiez jmxremote.password, puis ajoutez le nom d'utilisateur et le mot de passe au fichier:
    cassandra password

    password est le mot de passe JMX.
  6. Modifiez jmxremote.access et ajoutez le rôle suivant:
    cassandra readwrite
  7. Assurez-vous que les fichiers appartiennent à "apigee" et que le mode de fichier est 400:
    > chown apigee:apigee <inst_root>/apigee/data/apigee-cassandra/jmxremote.*
    > chmod 400 /<inst_root>/apigee/data/apigee-cassandra/jmxremote.*
  8. Exécutez configure sur Cassandra:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  9. Redémarrez Cassandra:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra restart

Pour désactiver l'authentification ultérieurement:

  1. Modifiez /<inst_root>/apigee/customer/application/cassandra.properties.
  2. Supprimez la ligne suivante du fichier:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Exécutez la configuration sur Cassandra:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. Redémarrez Cassandra:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra restart

Statistiques JMX Cassandra

JMX Morans

Attributs JMX

ColumnFamilies/apprepo/environments

ColumnFamilies/apprepo/organizations

ColumnFamilies/apprepo/apiproxy_revisions

ColumnFamilies/apprepo/apiproxies

ColonnesFamilies/Audit/Audits

ColumnFamilies/audit/audits_ref

Tâches en attente

Nombre de colonnes de mémoire

Taille MemtableData

Nombre de lectures

Latence de lecture récente

Latence totale de lecture

Nombre d'écritures

Latence d'écriture récente en micros

Latence totale en écriture

Espace disque totalutilisé

Espace disque en cours d'utilisation

LiveSSTableCount

Fleur et filtres positifs

Faux filtres bleus récents

Taux de faux filtres

Utiliser l'utilitaire Nodetool pour gérer les nœuds de cluster

L'utilitaire nodetool, qui est une interface de ligne de commande pour Cassandra, permet de gérer les nœuds du cluster. L'utilitaire est disponible sous <inst_root>/apigee/apigee-cassandra/bin.

Pour en savoir plus sur l'utilitaire Nodetool, consultez la page http://www.datastax.com/docs/1.0/references/nodetool.

Vous pouvez effectuer les appels suivants sur tous les nœuds de cluster Cassandra:

  1. Informations générales sur l'anneau (également possibles pour un nœud Cassandra unique): recherchez les signes "Haut" et "Normal" pour tous les nœuds.?






  2. Informations générales sur les nœuds (appel par nœud)
    nodetool -h localhost info

    Le résultat de la commande ci-dessus se présente comme suit :
    Token : 0
    Pleine vigilance : true
    Charger : 1,67 Mo
    Génération : 78100




  3. État du serveur d'échange (API client de diffusion)
    host]# nodetool -h localhost statusthrift

    Le résultat de la commande ci-dessus affiche l'état "running".
  4. Opérations disponibles :








Cassandra Monitoring (UI)

Reportez-vous à l'URL datastax opscenter: http://www.datastax.com/products/opscenter.

Ressource Cassandra

Reportez-vous à l'URL suivante: http://www.datastax.com/docs/1.0/operations/monitoring.

Apache ZooKeeper

Vérifier l'état de ZooKeeper

  1. Assurez-vous que le processus ZooKeeper est en cours d'exécution. ZooKeeper écrit un fichier PID dans <inst_root>/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid.
  2. Testez les ports ZooKeeper pour vous assurer que vous pouvez établir une connexion TCP aux ports 2181 et 3888 sur chaque serveur ZooKeeper.
  3. Assurez-vous que vous pouvez lire les valeurs de la base de données ZooKeeper. Connectez-vous à l'aide d'une bibliothèque cliente ZooKeeper (ou /<inst_root>/apigee/apigee-zookeeper/bin/zkCli.sh) et lisez une valeur dans la base de données.
  4. Vérifiez l'état:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-zookeeper

Utiliser ZooKeeper (4 lettres)

ZooKeeper peut être surveillé via un petit ensemble de commandes (mots de quatre lettres) envoyées au port 2181 à l'aide de netcat (nc) ou de telnet.

Pour en savoir plus sur les commandes ZooKeeper, consultez la page http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands.

Exemple :

  • srvr: répertorie tous les détails du serveur.
  • stat: répertorie les détails du serveur et des clients connectés.

Les commandes suivantes peuvent être envoyées au port ZooKeeper:

  1. Exécutez la commande ruok à quatre lettres pour vérifier si le serveur s'exécute dans un état autre qu'une erreur. Une réponse réussie renvoie "imok".
    echo ruok | nc <host> 2181

    Renvoie:
    imok
  2. Exécutez la commande de quatre lettres "stat" pour obtenir des statistiques sur les performances du serveur et les clients connectés.?

















  3. Si netcat (nc) n'est pas disponible, vous pouvez utiliser le python à la place. ?









OpenLDAP

Test au niveau LDAP

Vous pouvez surveiller OpenLDAP pour voir si les requêtes spécifiques sont traitées correctement. En d'autres termes, recherchez une recherche spécifique qui renvoie le résultat approprié.

  1. Utilisez ldapsearch (yum install openldap-clients) pour interroger l'entrée de l'administrateur système. Cette entrée permet d'authentifier tous les appels d'API.?
















  2. Vérifiez si le serveur de gestion est toujours connecté au problème LDAP:
    curl -u <userEMail>:<password> http://localhost:8080/v1/users/<ADMIN>

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

Vous pouvez également surveiller les caches OpenLDAP, ce qui permet de réduire le nombre d'accès au disque et donc d'améliorer les performances du système. La surveillance, puis le réglage de la taille du cache sur le serveur OpenLDAP peuvent avoir un impact important sur les performances du serveur d'annuaire. Vous pouvez afficher les fichiers journaux (<inst_root>/apigee/var/log) pour obtenir des informations sur le cache.