Ce document décrit les techniques de surveillance des composants compatibles avec un environnement sur site. le déploiement d'Apigee Edge pour Private Cloud.
Présentation
Edge propose plusieurs façons d'obtenir des informations sur les services et de vérifier leur statuts. Le tableau suivant répertorie les types de vérifications que vous pouvez effectuer pour chaque service:
API Mgmt | |||||||
Composant | Utilisation de la mémoire [JMX*] | Vérification de l'état du service | État du déploiement de l'utilisateur/de l'organisation/ du déploiement | axstatus | Vérification de la base de données | apigee-service : état |
apigee-monit ** |
Serveur de gestion | |||||||
Processeur de messages | |||||||
Routeur | |||||||
Qpid | |||||||
Postgres | |||||||
Plus de détails | Plus de détails | Plus de détails | Plus de détails | Plus de détails | Plus de détails | Plus de détails | |
* Avant de pouvoir utiliser JMX, vous devez l'activer, car décrit dans la section Activer JMX. ** Le service |
Ports de surveillance et fichiers de configuration
Chaque composant est compatible avec les extensions de gestion Java (JMX) et les appels de surveillance de l'API Management sur différents ports. La Le tableau suivant répertorie les ports de l'API JMX et de l'API de gestion pour chaque type de serveur. emplacements du fichier de configuration:
Composant | Port JMX | Port de l'API de gestion | Emplacement du fichier de configuration |
---|---|---|---|
Serveur de gestion | 1099 | 8080 | $APIGEE_ROOT/customer/application/management-server.properties |
Processeur de messages | 1101 | 8082 | $APIGEE_ROOT/customer/application/message-processor.properties |
Routeur | 1100 | 8081 | $APIGEE_ROOT/customer/application/router.properties |
Qpid | 1102 | 8083 | $APIGEE_ROOT/customer/application/qpid-server.properties |
Postgres | 1103 | 8084 | $APIGEE_ROOT/customer/application/postgres-server.properties |
Surveiller les composants à l'aide de JMX
Les sections suivantes expliquent comment utiliser JMX pour surveiller les composants Edge.
Activer JMX
Pour activer JMX sans authentification ni communication SSL, procédez comme suit. Remarque:Dans les systèmes de production, l'authentification chiffrée et SSL doivent être activés pour la sécurité.
- Modifiez le fichier de configuration approprié (voir
Documentation de référence sur le fichier de configuration). S'il n'existe pas, créez le fichier de configuration.
conf_system_jmxremote_enable=true
- Enregistrez le fichier de configuration et assurez-vous qu'il appartient à
apigee:apigee
. - Redémarrer le composant Edge approprié
apigee-service edge-management-server restart
Pour désactiver JMX, supprimez la propriété conf_system_jmxremote_enable
ou modifiez
sa valeur à false
. Redémarrez ensuite le composant Edge approprié.
Authentification dans JMX
Edge pour Private Cloud prend en charge l'authentification par mot de passe à l'aide d'informations stockées dans des fichiers. Pour plus de sécurité, vous pouvez stocker les mots de passe sous forme de hachage.
- Pour activer l'authentification JMX dans un composant Edge-*, modifiez le fichier de configuration approprié
(voir la section
Documentation de référence sur le fichier de configuration). S'il n'existe pas, créez le fichier de configuration:
Enregistrez le fichier de configuration et assurez-vous qu'il appartient àconf_system_jmxremote_enable=true conf_system_jmxremote_authenticate=true conf_system_jmxremote_encrypted_auth=true conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
apigee:apigee
. - Créez un hachage SHA256 du mot de passe:
echo -n '
' | openssl dgst -sha256 - Créez un fichier
jmxremote.password
avec les identifiants utilisateur JMX: <ph type="x-smartling-placeholder">- </ph>
- Copiez les fichiers suivants de votre répertoire
$JAVA_HOME
vers le répertoire/opt/apigee/customer/application/<component>/
:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password
- Modifiez le fichier et ajoutez votre nom d'utilisateur et votre mot de passe JMX en utilisant la syntaxe suivante:
USERNAME <HASH-PASSWORD>
- Assurez-vous que le fichier appartient à
apigee
et que le mode de fichier est 400:chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.password
- Copiez les fichiers suivants de votre répertoire
- Créez un fichier
jmxremote.access
avec les autorisations utilisateur JMX: <ph type="x-smartling-placeholder">- </ph>
- Copiez les fichiers suivants de votre répertoire $JAVA_HOME dans
l'annuaire
/opt/apigee/customer/application/<component>/
cp ${JAVA_HOME}/lib/management/jmxremote.access$APIGEE_ROOT/customer/application/management-server/jmxremote.password/jmxremote.access
- Modifiez le fichier et ajoutez votre nom d'utilisateur JMX suivi d'une autorisation (READONLY/READWRITE)
USERNAME READONLY
- Assurez-vous que le fichier appartient à
apigee
et que le mode de fichier est 400:chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
- Copiez les fichiers suivants de votre répertoire $JAVA_HOME dans
l'annuaire
- Redémarrez le composant Edge approprié:
apigee-service edge-management-server restart
Pour désactiver l'authentification JMX, supprimez la propriété
conf_system_jmxremote_authenticate
ou remplacez la valeur par false
et
redémarrez le composant Edge approprié.
SSL dans JMX
Pour activer le protocole JMX SSL dans un composant Edge-* :
- Modifier le fichier de configuration approprié
(voir la section
Documentation de référence sur le fichier de configuration). S'il n'existe pas, créez le fichier de configuration:
Enregistrez le fichier de configuration et assurez-vous qu'il appartient àconf_system_jmxremote_enable=true conf_system_jmxremote_ssl=true conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore conf_system_javax_net_ssl_keystorepassword=<keystore-password>
apigee:apigee
. - Préparez un keystore contenant la clé de serveur et placez-le au chemin d'accès fourni dans le
la configuration
conf_system_javax_net_ssl_keystore
ci-dessus. Assurez-vous que le fichier keystore est lisible parapigee:apigee
. - Redémarrez le composant Edge approprié:
apigee-service edge-management-server restart
Pour désactiver les commandes JMX basées sur SSL, supprimez la propriété conf_system_jmxremote_ssl
.
ou remplacez la valeur par false
. Redémarrez le composant Edge approprié.
Surveillance via Jconsole
Les instructions de surveillance via jconsole restent les mêmes que celles décrites dans la section https://docs.apigee.com/private-cloud/v4.52.01/how-monitor#jconsole.
Vous pouvez ajouter la ligne suivante : "jconsole devra être démarré avec le magasin de confiance et le mot de passe du magasin de confiance si SSL est activé pour JMX". Référence: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.htmlSurveiller avec JConsole
Utilisez JConsole (un outil compatible 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 vos serveurs et les afficher dans un de l'interface graphique. Pour en savoir plus, consultez Utiliser JConsole
Si SSL est activé pour JMX, vous devez démarrer JConsole avec le compte truststore et le mot de passe truststore. Voir <ph type="x-smartling-placeholder"></ph> Utiliser JConsole
JConsole utilise l'URL de service suivante pour surveiller les attributs JMX (MBeans) proposés via JMX:
service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi
Où :
- IP_address est l'adresse IP du serveur que vous souhaitez surveiller.
- port_number est le numéro de port JMX du serveur sur lequel vous souhaitez surveiller.
Par exemple, pour surveiller le serveur de gestion, exécutez la commande suivante (en supposant que l'adresse IP du serveur est 216.3.128.12):
service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi
Notez que cet exemple indique le port 1099, qui est le port JMX du serveur de gestion. Autre consultez la section Ports de surveillance de l'API JMX et de l'API Management.
Le tableau suivant présente les statistiques JMX génériques:
JMX MBeans | Attributs JMX |
---|---|
Mémoire |
HeapMemoryUsage |
NonHeapMemoryUsage |
|
Utilisation |
|
Documentation de référence du fichier de configuration
Les sections suivantes décrivent les modifications que vous devrez peut-être apporter à la configuration des composants Edge pour les configurations associées à JMX. Voir Surveiller les ports et les fichiers de configuration des informations.
Configuration JMX à ajouter au fichier de configuration du composant approprié
- Activez l'agent JMX sur le composant de périphérie. La valeur par défaut est "False".
conf_system_jmxremote_enable=true
Configurations pour l'authentification par mot de passe
- Activer l'authentification par mot de passe La valeur par défaut est "False".
conf_system_jmxremote_authenticate=true
- Chemin d'accès au fichier. Doit être détenu et lisible par un utilisateur d'Apigee.
conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
- Chemin d'accès au fichier de mot de passe. Doit être détenu et lisible par un utilisateur d'Apigee.
conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
- Activer le stockage des mots de passe dans un format chiffré La valeur par défaut est "False".
conf_system_jmxremote_encrypted_auth=true
Configurations pour JMX basé sur SSL
- Activez SSL pour la communication JMX. Cette règle est définie sur "False" par défaut.
conf_system_jmxremote_ssl=true
- Chemin d'accès au keystore. Doit être détenu et lisible par un utilisateur d'Apigee.
conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
- Mot de passe du keystore:
conf_system_javax_net_ssl_keystorepassword=changeme
Configurations JMX facultatives
Les valeurs listées sont des valeurs par défaut et peuvent être modifiées.
- Port JMX. Les valeurs par défaut sont listées dans le tableau ci-dessous.
conf_system_jmxremote_port=
- Port JMX RMI. Par défaut, le processus Java choisit un port aléatoire.
conf_system_jmxremote_rmi_port=
- Nom d'hôte des bouchons distants. Adresse IP par défaut de "localhost".
conf_system_java_rmi_server_hostname=
- Protégez le registre JMX avec SSL. La valeur par défaut est "false". Ne s'applique que si SSL est activé.
conf_system_jmxremote_registry_ssl=false
Surveiller avec l'API Management
Edge inclut plusieurs API que vous pouvez utiliser pour effectuer des vérifications de service sur vos serveurs, ainsi que vérifier les utilisateurs, les organisations et les déploiements. Cette section décrit ces API.
Effectuer des vérifications de service
L'API Management fournit plusieurs points de terminaison pour surveiller et diagnostiquer les problèmes liés à votre services. Ces points de terminaison incluent:
Point de terminaison | Description |
---|---|
/servers/self/up |
Vérifie si un service est en cours d'exécution. Cet appel d'API ne nécessite pas que vous s'authentifier. Si le service est en cours d'exécution, ce point de terminaison renvoie la réponse suivante: <ServerField> <Up>true</Up> </ServerField> Si le service n'est pas en cours d'exécution, vous obtenez une réponse semblable à la suivante : (selon le service concerné et la façon dont vous l'avez vérifié): curl: Failed connect to localhost:port_number; Connection refused |
/servers/self |
Affiche des informations sur le service, y compris:
Cet appel d'API nécessite que vous vous authentifiez avec vos identifiants d'administrateur Apigee. |
Pour utiliser ces points de terminaison, appelez un utilitaire tel que curl
avec des commandes qui utilisent la méthode
la syntaxe suivante:
curl http://host:port_number/v1/servers/self/up -H "Accept: [application/json|application/xml]"
curl http://host:port_number/v1/servers/self -u username:password -H "Accept: [application/json|application/xml]"
Où :
- host est l'adresse IP du serveur que vous souhaitez vérifier. Si vous êtes connecté à au serveur, vous pouvez utiliser "localhost" ; Sinon, spécifiez également l'adresse IP du serveur comme nom d'utilisateur et mot de passe.
- port_number est le port de l'API Management du serveur que vous souhaitez vérifier. C'est un port différent pour chaque type de composant. Par exemple, le serveur de gestion Le port de l'API de gestion est 8080. Pour obtenir la liste des numéros de port de l'API Management à utiliser, consultez Ports de surveillance JMX et API Management
Pour modifier le format de la réponse, vous pouvez spécifier l'en-tête Accept
comme suit :
"application/json" ou "application/xml".
L'exemple suivant récupère l'état du routeur sur localhost (port 8081):
curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"
L'exemple suivant récupère des informations sur le processeur de messages sur 216.3.128.12 (port 8082):
curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password -H "Accept: application/xml"
Surveiller l'état des utilisateurs, de l'organisation et du déploiement
Vous pouvez utiliser l'API Management pour surveiller l'état des utilisateurs, de l'organisation et du déploiement de votre proxys sur les serveurs de gestion et les processeurs de messages en émettant les commandes suivantes:
curl http://host:port_number/v1/users -u sysAdminEmail:passwordcurl http://host:port_number/v1/organizations -u sysAdminEmail:password
curl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password
Où port_number correspond à 8080 pour le serveur de gestion ou à 8082 pour le message Processeur.
Cet appel nécessite que vous vous authentifiez avec votre nom d'utilisateur d'administrateur système et mot de passe.
Le serveur doit renvoyer la valeur "déployé" pour tous les appels. En cas d'échec, procédez comme suit:
- Recherchez d'éventuelles erreurs dans les journaux du serveur. Les journaux se trouvent à l'emplacement suivant:
<ph type="x-smartling-placeholder">
- </ph>
- Serveur de gestion:
opt/apigee/var/log/edge-management-server
- Processeur de messages:
opt/apigee/var/log/edge-message-processor
- Serveur de gestion:
- Appelez le serveur pour vérifier s'il fonctionne correctement.
- Supprimez le serveur de ELB, puis redémarrez-le:
/opt/apigee/apigee-service/bin/apigee-service service_name restart
Où service_name correspond à :
edge-management-server
edge-message-processor
Vérifier l'état à l'aide de la commande apigee-service
Vous pouvez dépanner vos services Edge à l'aide de la commande apigee-service
lorsque vous
connecté au serveur exécutant le service.
Pour vérifier l'état d'un service avec apigee-service
:
- Connectez-vous au serveur et exécutez la commande suivante:
/opt/apigee/apigee-service/bin/apigee-service service_name status
où service_name est l'un des éléments suivants :
- Serveur de gestion:
edge-management-server
- Processeur de messages:
edge-message-processor
- Postgres:
edge-postgres-server
- Qpid:
edge-qpid-server
- Routeur :
edge-router
Exemple :
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
- Serveur de gestion:
- Si le service n'est pas en cours d'exécution, démarrez-le:
/opt/apigee/apigee-service/bin/apigee-service service_name start
- Après avoir redémarré le service, vérifiez qu'il fonctionne en utilisant la
la commande
apigee-service status
précédemment utilisée ou à l'aide de l'API Management ; décrit dans la section Effectuer une surveillance avec l'API Management.Exemple :
curl -v http://localhost:port_number/v1/servers/self/up
Où port_number correspond au port de l'API Management du service.
Dans cet exemple, nous partons du principe que vous êtes connecté au serveur et que vous pouvez utiliser "localhost" en tant que nom d'hôte. Pour vérifier l'état à distance avec l'API Management, vous devez spécifier l'adresse IP du serveur et inclure le nom d'utilisateur et le mot de passe de l'administrateur système dans votre .
Surveillance Postgres
Postgres prend en charge plusieurs utilitaires qui permettent de vérifier son état. Ces utilitaires sont décrits dans les sections suivantes.
Vérifier les organisations et les environnements sur Postgres
Vous pouvez vérifier les noms d'organisation et d'environnement intégrés sur le serveur Postgres
en exécutant la commande curl
suivante:
curl -v http://postgres_IP:8084/v1/servers/self/organizations
Le système doit afficher le nom de l'organisation et de l'environnement.
Vérifier l'état des données analytiques
Vous pouvez vérifier l'état des serveurs d'analyse Postgres et Qpid en émettant la commande suivante :
Commande curl
:
curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus
Le système doit afficher un état de réussite pour tous les serveurs d'analyse, comme dans l'exemple suivant affiche:
{ "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 PostgreSQL
Cette section décrit les techniques que vous pouvez utiliser spécifiquement pour surveiller le système Postgres base de données.
Utiliser le script check_postgres.pl
Pour surveiller la base de données PostgreSQL, vous pouvez utiliser un script de surveillance standard,
check_postgres.pl
Pour en savoir plus, consultez
http://bucardo.org/wiki/Check_postgres.
Avant d'exécuter le script:
- Vous devez installer le script check_postgres.pl sur chaque nœud Postgres.
- Assurez-vous d'avoir installé
perl-Time-HiRes.x86_64
, un module Perl qui met en œuvre une alarme haute résolution, un sommeil, un gettimeofday et des minuteries d'intervalle. Par exemple : pouvez l'installer à l'aide de la commande suivante:
yum install perl-Time-HiRes.x86_64
- CentOS 7: avant d'utiliser check_postgres.pl sur CentOS v7, installez le
perl-Data-Dumper.x86_64
tr/min.
Résultat de check_postgres.pl
Le résultat par défaut des appels d'API utilisant check_postgres.pl
est Nagios
compatibles. Après avoir installé le script, effectuez les vérifications suivantes:
- 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 GB' --critical='900 GB'
- Vérifier le nombre de connexions entrantes vers la base de données et le comparer au nombre maximal autorisé
connexions:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
- Vérifiez 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
- Vérifiez l'espace disque:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
- Vérifiez 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 from pg_tables where schemaname='analytics' and tablename like '%fact'" --warning='80' --critical='90' --valtype=integer
Exécuter des vérifications de la base de données
Vous pouvez vérifier que les tables appropriées sont créées dans la base de données PostgreSQL. Se connecter à PostgreSQL à l'aide de la commande suivante:
psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee
Exécutez ensuite la commande ci-dessous :
\d analytics."org.env.fact"
Vérifier l'état de fonctionnement du processus postgres
Vous pouvez effectuer des vérifications d'API sur la machine Postgres en appelant la méthode curl
suivante
:
curl -v http://postgres_IP:8084/v1/servers/self/health
Cette commande renvoie l'état ACTIVE
lorsque le processus postgres est actif. Si le
Le processus Postgres n'est pas opérationnel et renvoie l'état INACTIVE
.
Ressources Postgres
Pour en savoir plus sur la surveillance du service Postgres, consultez les pages suivantes:
- 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
JMX est activé par défaut pour Cassandra, et l'accès JMX distant à Cassandra ne nécessite pas de mot de passe.
Activer l'authentification JMX pour Cassandra
Vous pouvez activer l'authentification JMX pour Cassandra. Vous devrez ensuite transmettre un nom d'utilisateur et un mot de passe à tous les appels à l'utilitaire nodetool.
Pour activer l'authentification JMX pour Cassandra:
- Créez et modifiez le fichier
cassandra.properties
: <ph type="x-smartling-placeholder">- </ph>
- Modifiez le fichier
/opt/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 conf_cassandra_env_com.sun.management.jmxremote.password.file=${APIGEE_ROOT}/customer/application/apigee-cassandra/jmxremote.password conf_cassandra_env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/customer/application/apigee-cassandra/jmxremote.access
- Enregistrez le fichier
cassandra.properties
. - Remplacez le propriétaire du fichier par
apigee:apigee
, comme illustré dans l'exemple suivant:chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
Pour en savoir plus sur l'utilisation de fichiers de propriétés pour définir des jetons, consultez Comment configurer Edge.
- Modifiez le fichier
- Créez et modifiez
jmx_auth.sh
: <ph type="x-smartling-placeholder">- </ph>
- S'il n'existe pas encore, créez un fichier à l'emplacement suivant:
/opt/apigee/customer/application/jmx_auth.sh
- Ajoutez les propriétés suivantes au fichier:
export CASS_JMX_USERNAME=JMX_USERNAME export CASS_JMX_PASSWORD=JMX_PASSWORD
- Enregistrez le fichier
jmx_auth.sh
. - Utilisez la source du fichier:
source /opt/apigee/customer/application/jmx_auth.sh
- S'il n'existe pas encore, créez un fichier à l'emplacement suivant:
- Copiez et modifiez le fichier
jmxremote.password
: <ph type="x-smartling-placeholder">- </ph>
- Copiez le fichier suivant de votre répertoire
$JAVA_HOME
vers/opt/apigee/customer/application/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
- Modifiez le fichier
jmxremote.password
et ajoutez votre nom d'utilisateur et votre mot de passe JMX en utilisant la syntaxe suivante:JMX_USERNAME JMX_PASSWORD
Où JMX_USERNAME et JMX_PASSWORD sont le nom d'utilisateur JMX et que vous avez défini précédemment.
- Assurez-vous que le fichier appartient à "apigee" et que le mode de fichier est 400:
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
- Copiez le fichier suivant de votre répertoire
- Copiez et modifiez le fichier
jmxremote.access
: <ph type="x-smartling-placeholder">- </ph>
- Copiez le fichier suivant de votre répertoire
$JAVA_HOME
vers/opt/apigee/customer/application/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.access
$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access
- Modifiez le fichier
jmxremote.access
et ajoutez le rôle suivant:JMX_USERNAME readwrite
- Assurez-vous que le fichier appartient à "apigee" et que le mode de fichier est 400:
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
- Copiez le fichier suivant de votre répertoire
- Exécutez
configure
sur Cassandra:/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Redémarrez Cassandra :
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Répétez cette procédure sur tous les autres nœuds Cassandra.
Activer le chiffrement des mots de passe JMX
Pour activer le chiffrement des mots de passe JMX, procédez comme suit:
- Ouvrez le fichier
source/conf/casssandra-env.sh
. - Créez et modifiez le fichier
cassandra.properties
: <ph type="x-smartling-placeholder">- </ph>
- Modifiez le fichier
/opt/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.encrypted.authenticate=true
- Enregistrez le fichier cassandra.properties.
- Remplacez le propriétaire du fichier par apigee:apigee, comme le montre l'exemple suivant:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- Modifiez le fichier
- Dans la ligne de commande, générez un ou plusieurs hachages SHA1 des mots de passe souhaités en saisissant
echo -n 'Secret' | openssl dgst -sha1
- Définissez le ou les mots de passe sur le nom d'utilisateur dans
$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
(créée dans dans la section précédente). - Exécutez la commande "Configurer" sur Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Redémarrez Cassandra :
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Répétez cette procédure sur tous les autres nœuds Cassandra.
Activer JMX avec SSL pour Cassandra
L'activation de JMX avec SSL offre une sécurité et un chiffrement supplémentaires pour les communications JMX avec Cassandra. Pour activer JMX avec SSL, vous devez fournir une clé et un certificat à Cassandra pour acceptent les connexions JMX basées sur SSL. Vous devez également configurer nodetool (et tout autre outil communiquer avec Cassandra via JMX) pour SSL.
JMX compatible SSL prend en charge les mots de passe en texte brut et les mots de passe JMX chiffrés.
Pour activer JMX avec SSL pour Cassandra, procédez comme suit:
- Activez JMX. Activez le chiffrement des mots de passe, si nécessaire.
- Activez l'authentification JMX pour Cassandra.
comme décrit ci-dessus. Assurez-vous que l'outil nodetool fonctionne avec les
nom d'utilisateur et mot de passe.
/opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
Préparer le keystore et le truststore
Le keystore doit contenir une clé et un certificat, et permet de configurer le serveur Cassandra. Si keystore comporte plusieurs paires de clés, Cassandra utilise la première paire pour activer SSL.
Notez que les mots de passe du keystore et de la clé doivent être identiques. (option par défaut lorsque vous générez la clé à l'aide de keytool).
- Truststore doit contenir uniquement le certificat et est utilisé par les clients (basés sur apigee ou nodetool) pour se connecter via JMX.
Après avoir vérifié les exigences ci-dessus:
- Placez le fichier keystore dans
/opt/apigee/customer/application/apigee-cassandra/
. - Assurez-vous que le fichier keystore est lisible par un utilisateur Apigee uniquement en saisissant
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/keystore.node1
chmod 400 /opt/apigee/customer/application/apigee-cassandra/keystore.node1
- Pour configurer Cassandra pour JMX avec SSL, procédez comme suit:
<ph type="x-smartling-placeholder">
- </ph>
- Arrêtez le nœud Cassandra en saisissant
apigee-service apigee-cassandra stop
- Activez SSL dans Cassandra en
ouverture du fichier
/opt/apigee/customer/application/cassandra.properties
en ajoutant les lignes suivantes:conf_cassandra_env_com.sun.management.jmxremote.ssl=true conf_cassandra_env_javax.net.ssl.keyStore=/opt/apigee/customer/application/apigee-cassandra/keystore.node1 conf_cassandra_env_javax.net.ssl.keyStorePassword=keystore-password
- Remplacez le propriétaire du fichier par apigee:apigee, comme le montre l'exemple suivant:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- Exécutez la commande "Configurer" sur Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Redémarrez Cassandra :
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Répétez cette procédure sur tous les autres nœuds Cassandra.
- Démarrez le nœud Cassandra en saisissant
apigee-service apigee-cassandra start
- Arrêtez le nœud Cassandra en saisissant
- Configurez les commandes Cassandra
apigee-service
. Vous devez définir certaines variables d'environnement lors de l'exécutionapigee-service
, y compris les suivantes:apigee-service apigee-cassandra stop apigee-service apigee-cassandra wait_for_ready apigee-service apigee-cassandra ring apigee-service apigee-cassandra backup
Plusieurs options permettent de configurer
apigee-service
pour l'authentification JMX et SSL. Choisissez une option en fonction de la facilité d'utilisation et de vos pratiques de sécurité.- Option 1 (arguments SSL stockés dans un fichier)
- Option 2 (arguments SSL stockés dans des variables d'environnement)
- Option 3 (arguments SSL transmis directement à
apigee-service
)
Option 1 (arguments SSL stockés dans le fichier)
Définissez les variables d'environnement suivantes :
export CASS_JMX_USERNAME=ADMIN # Provide encrypted password here if you have setup JMX password encryption export CASS_JMX_PASSWORD=PASSWORD export CASS_JMX_SSL=Y
Créez un fichier dans le répertoire d'accueil de l'utilisateur Apigee (
/opt/apigee
).$HOME/.cassandra/nodetool-ssl.properties
Modifiez le fichier et ajoutez les lignes suivantes:
-Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true
Assurez-vous que le fichier Trustore est lisible par un utilisateur Apigee.
Exécutez la commande
apigee-service
suivante : S'il s'exécute sans erreur, vos configurations sont correctes.apigee-service apigee-cassandra ring
Option 2 (arguments SSL stockés dans des variables d'environnement)
Définissez les variables d'environnement suivantes :
export CASS_JMX_USERNAME=ADMIN # Provide encrypted password here if you have setup JMX password encryption export CASS_JMX_PASSWORD=PASSWORD export CASS_JMX_SSL=Y # Ensure the truststore file is accessible by Apigee user. export CASS_JMX_TRUSTSTORE=<path-to-trustore.node1> export CASS_JMX_TRUSTSTORE_PASSWORD=<truststore-password>
Exécutez la commande
apigee-service
suivante : S'il s'exécute sans erreur, vos configurations sont correctes.apigee-service apigee-cassandra ring
Option 3 (arguments SSL transmis directement à
apigee-service
)Exécutez n'importe quelle commande
apigee-service
comme celle indiquée ci-dessous. Vous n'avez pas besoin de configurer de variables d'environnement.CASS_JMX_USERNAME=ADMIN CASS_JMX_PASSWORD=PASSWORD CASS_JMX_SSL=Y CASS_JMX_TRUSTSTORE=<path-to-trustore.node1> CASS_JMX_TRUSTSTORE_PASSWORD=<trustore-password> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
Configurez nodetool. Nodetool nécessite que les paramètres JMX lui soient transmis. Il existe deux façons vous pouvez configurer nodetool pour qu'il s'exécute avec JMX compatible SSL, comme décrit dans le options de configuration ci-dessous:
Les options diffèrent dans la manière dont les configurations liées à SSL sont transmises à nodetool. Dans les deux cas, l'utilisateur qui exécute nodetool doit avoir des autorisations de lecture sur le fichier truststore. Choisissez une option appropriée en fonction de la facilité d'utilisation et de vos pratiques de sécurité.
Pour en savoir plus sur les paramètres nodetool, consultez la <ph type="x-smartling-placeholder"></ph> Documentation DataStax
Option de configuration 1
Créez un fichier dans le répertoire d'accueil de l'utilisateur exécutant nodetool.
$HOME/.cassandra/nodetool-ssl.properties
Ajoutez les lignes suivantes au fichier :
-Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true
Le chemin du truststore spécifié ci-dessus doit être accessible à tout utilisateur exécutant nodetool.
Exécutez
nodetool
avec l'option--ssl
./opt/apigee/apigee-cassandra/bin/nodetool --ssl -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
Option de configuration 2
Exécutez
nodetool
en tant que commande unique avec les paramètres supplémentaires répertoriés ci-dessous./opt/apigee/apigee-cassandra/bin/nodetool -Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Dssl.enable=true -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
Rétablir des configurations SSL
Si vous devez rétablir les configurations SSL décrites dans la procédure ci-dessus, procédez comme suit:
- Arrêtez
apigee-cassandra
en entrantapigee-service apigee-cassandra stop
- Supprimez la ligne
conf_cassandra-env_com.sun.management.jmxremote.ssl=true
de le fichier/opt/apigee/customer/application/cassandra.properties
. - Mettez en commentaire les lignes suivantes dans
/opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh
# JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/opt/apigee/data/apigee-cassandra/keystore.node0" # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=keypass" # JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true”
- Démarrez
apigee-cassandra
en saisissant - Supprimez la variable d'environnement
CASS_JMX_SSL
si elle a été définie.unset CASS_JMX_SSL
- Vérifiez que les commandes basées sur
apigee-service
telles quering
,stop
,backup
, etc., fonctionnent. - Arrêter d'utiliser le commutateur
--ssl
avec nodetool
apigee-service apigee-cassandra start
Désactiver l'authentification JMX pour Cassandra
Pour désactiver l'authentification JMX pour Cassandra:
- Modifier
/opt/apigee/customer/application/cassandra.properties
. - Supprimez la ligne suivante du fichier:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- Exécutez la commande "Configurer" sur Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Redémarrez Cassandra :
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Répétez cette procédure sur tous les autres nœuds Cassandra.
Utiliser JConsole: surveiller les statistiques des tâches
Utilisez JConsole et l'URL de service suivante pour surveiller les attributs JMX (MBeans) proposés via JMX:
service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi
Où IP_address correspond à l'adresse IP du serveur Cassandra.
Statistiques Cassandra JMX
JMX MBeans | Attributs 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 |
Utiliser Nodetool pour gérer les nœuds du cluster
L'utilitaire nodetool est une interface de ligne de commande pour Cassandra qui gère
nœuds de cluster. Vous trouverez cet utilitaire à l'adresse /opt/apigee/apigee-cassandra/bin
.
Les appels suivants peuvent être effectués sur tous les nœuds de cluster Cassandra:
- Informations générales sur l'anneau (également possible pour un seul nœud Cassandra): recherchez le
"Haut" et "Normale" pour tous les nœuds.
nodetool [-u username -pw password] -h localhost ring
Vous ne devez transmettre votre nom d'utilisateur et votre mot de passe que si vous activé l'authentification JMX pour Cassandra ;
Le résultat de la commande ci-dessus se présente comme suit:
Datacenter: dc-1 ========== Address Rack Status State Load Owns Token 192.168.124.201 ra1 Up Normal 1.67 MB 33,33% 0 192.168.124.202 ra1 Up Normal 1.68 MB 33,33% 5671...5242 192.168.124.203 ra1 Up Normal 1.67 MB 33,33% 1134...0484
- Informations générales sur les nœuds (appel par nœud)
nodetool [-u username -pw password] -h localhost info
Le résultat de la commande ci-dessus se présente comme suit:
ID : e2e42793-4242-4e82-bcf0-oicu812 Gossip active : true Thrift active : true Native Transport active: true Load : 273.71 KB Generation No : 1234567890 Uptime (seconds) : 687194 Heap Memory (MB) : 314.62 / 3680.00 Off Heap Memory (MB) : 0.14 Data Center : dc-1 Rack : ra-1 Exceptions : 0 Key Cache : entries 150, size 13.52 KB, capacity 100 MB, 1520781 hits, 1520923 requests, 1.000 recent hit rate, 14400 save period in seconds Row Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds Counter Cache : entries 0, size 0 bytes, capacity 50 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds Token : 0
- État du serveur Thrift (API du client de diffusion)
nodetool [-u username -pw password] -h localhost statusthrift
Le résultat de la commande ci-dessus se présente comme suit:
running
- État des opérations de streaming de données : observez le trafic pour les nœuds cassandra.
nodetool [-u username -pw password] -h localhost netstats
Le résultat de la commande ci-dessus se présente comme suit:
Mode: NORMAL Not sending any streams. Read Repair Statistics: Attempted: 151612 Mismatch (Blocking): 0 Mismatch (Background): 0 Pool Name Active Pending Completed Dropped Commands n/a 0 0 0 Responses n/a 0 0 n/a
Pour en savoir plus sur nodetool, consultez À propos de l'utilitaire nodetool
Ressource Cassandra
Reportez-vous à l'URL suivante: http://www.datastax.com/docs/1.0/operations/monitoring.
Surveiller Apache Qpid Broker-J
Vous pouvez surveiller Qpid Broker-J à partir de la console de gestion Qpid. Cette section explique comment accéder à la console et l'utiliser pour effectuer des fonctions de surveillance de base. Pour obtenir des informations sur l'utilisation de la console de gestion, consultez la section console de gestion Web dans la documentation Apache Qpid.
Accéder à la console de gestion
Le port de la console de gestion par défaut est 8090. Pour accéder à la console sur ce port par défaut, pointez votre navigateur Web vers:
http://QPID_NODE_IP:8090
Pour vous connecter à la console, utilisez les identifiants par défaut définis par Apigee ou ceux définis dans la Fichier de configuration Edge. Pour en savoir plus, consultez Documentation de référence sur le fichier de configuration Edge
Surveiller les files d'attente et les messages
Dans le panneau de navigation de gauche, accédez à Java-Broker > hôtes virtuels > les files d'attente. Sélectionner une file d'attente pour en afficher les détails dans la partie principale de l'UI. Dans la vue détaillée, vous pouvez voir Attributs et statistiques de la file d'attente, y compris des informations sur les messages distribués, mis en file d'attente, tarifs des messages, etc.
Afficher et télécharger les fichiers journaux
Dans le panneau de navigation de gauche, accédez à Java-Broker > shortloggers > fichier journal. Dans vue principale des détails de l'interface utilisateur, vous pouvez afficher les détails des fichiers journaux et télécharger les fichiers journaux.
Utiliser l'API de gestion Qpid
Vous pouvez utiliser l'API REST Apache Qpid Broker-J pour automatiser les tâches de gestion et surveiller l'agent. Pour plus d'informations, consultez les Documentation sur l'API REST Apache Qpid Broker.
Vous pouvez également utiliser des outils de ligne de commande pour surveiller l'agent. Exemple :
curl "QPID_NODE_IP":"8090"/api/latest/broker -u "USERNAME":"PASSWORD"
Apache ZooKeeper
Vérifier l'état de ZooKeeper
- Vérifiez que le processus ZooKeeper est en cours d'exécution. ZooKeeper écrit un fichier PID dans
opt/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. Se connecter à l'aide de ZooKeeper
bibliothèque cliente (ou
/opt/apigee/apigee-zookeeper/bin/zkCli.sh
) et lire une valeur de la base de données. - Vérifiez l'état :
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
Utiliser les mots de quatre lettres ZooKeeper
ZooKeeper peut être surveillé par un petit ensemble de commandes (mots de quatre lettres) qui sont envoyés à le port 2181 en utilisant netcat (nc) ou Telnet.
Pour en savoir plus sur les commandes ZooKeeper, consultez la documentation de référence sur les commandes Apache ZooKeeper.
Exemple :
srvr
: répertorie tous les détails du serveur.stat
: répertorie de brefs détails concernant le serveur et les clients connectés.
Les commandes suivantes peuvent être envoyées au port ZooKeeper:
- Exécutez la commande à quatre lettres "ruok" pour vérifier si le serveur fonctionne sans erreur. A
qui aboutit, renvoie "imok".
echo ruok | nc host 2181
Renvoie :
imok
- Exécutez la commande de quatre lettres,
stat
, pour répertorier les performances du serveur et les paramètres statistiques des clients:echo stat | nc host 2181
Renvoie :
Zookeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT Clients: /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) Latency min/avg/max: 0/0/128 Received: 26144 Sent: 26160 Connections: 4 Outstanding: 0 Zxid: 0x2000002c2 Mode: follower Node count: 283
- Si netcat (nc) n'est pas disponible, vous pouvez utiliser Python comme alternative. Créer un fichier
nommé
zookeeper.py
, contenant les éléments suivants:import time, 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) print c.recv(512)
Exécutez maintenant les lignes Python suivantes:
python zookeeper.py 192.168.124.201 ruok
python zookeeper.py 192.168.124.201 stat
Test de niveau LDAP
Vous pouvez surveiller OpenLDAP pour voir si les demandes spécifiques sont traitées correctement. Dans d'autres termes, recherchez une recherche spécifique qui renvoie le bon résultat.
- Utiliser
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.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
Vous êtes ensuite invité à saisir le mot de passe administrateur LDAP:
Enter LDAP Password:
Une fois le mot de passe saisi, une réponse s'affiche sous la forme suivante:
dn: uid=admin,ou=users,ou=global,dc=apigee,dc=com objectClass: organizationalPerson objectClass: person objectClass: inetOrgPerson objectClass: top uid: admin cn: admin sn: admin userPassword:: e1NTSEF9bS9xbS9RbVNXSFFtUWVsU1F0c3BGL3BQMkhObFp2eDFKUytmZVE9PQ= = mail: opdk@google.com
- Utilisez la commande suivante pour vérifier si le serveur de gestion est toujours connecté au serveur 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 à améliorer les performances du système. Surveillez, puis ajustez la taille du cache dans
Le serveur OpenLDAP peut avoir une incidence considérable sur les performances du serveur d’annuaire. Vous pouvez consulter le journal
fichiers (opt/apigee/var/log
) pour obtenir des informations sur le cache.