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
où <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
Où <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
- Connectez-vous au serveur et exécutez la commande suivante:
/<inst_root>/apigee/apigee-service/bin/apigee-service Edge-management-server - 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:
- Vérifiez que les journaux du serveur de gestion (à l'adresse <inst_root>/apigee/var/log/edge-management-server) ne contiennent pas d'erreurs.
- Effectuez un appel sur le serveur de gestion pour vérifier qu'il fonctionne correctement.
- 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
- Connectez-vous au serveur et exécutez les commandes suivantes:
/<inst_root>/apigee/apigee-service/bin/apigee-service Edge-router status - 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 - Après le redémarrage, vérifiez qu'il fonctionne.
curl -v http://localhost:port/v1/servers/self/up
Où 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:
- 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:
- 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' - 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 - 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 - 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%' - 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
- 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
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
où <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:
- Modifiez /<inst_root>/apigee/customer/application/cassandra.properties. Si le fichier n'existe pas, créez-le.
- Ajoutez ce qui suit au fichier:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - Enregistrez le fichier.
- 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
- Modifiez jmxremote.password, puis ajoutez le nom d'utilisateur et le mot de passe au fichier:
cassandra password
où password est le mot de passe JMX. - Modifiez jmxremote.access et
ajoutez le rôle suivant:
cassandra readwrite - 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.* - Exécutez configure sur Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra configure - Redémarrez Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
Pour désactiver l'authentification ultérieurement:
- Modifiez /<inst_root>/apigee/customer/application/cassandra.properties.
- Supprimez la ligne suivante du fichier:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - Exécutez la configuration sur Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra configure - 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:
- 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.?
- 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
- É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". - 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
- 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.
- Testez les ports ZooKeeper pour vous assurer que vous pouvez établir une connexion TCP aux ports 2181 et 3888 sur chaque serveur ZooKeeper.
- 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.
- 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:
- 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 - Exécutez la commande de quatre lettres "stat" pour obtenir des statistiques sur les performances du serveur et les clients connectés.?
- 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é.
- 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.?
- 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.