Edge for Private Cloud Version 4.19.01
In diesem Dokument werden die Monitoringtechniken von Komponenten beschrieben, die von einer lokalen Bereitstellung von Apigee Edge unterstützt werden.
Überblick
Edge unterstützt mehrere Möglichkeiten, Details zu Diensten abzurufen und deren Status zu prüfen. In der folgenden Tabelle sind die Arten von Prüfungen aufgeführt, die für die einzelnen zulässigen Dienste ausgeführt werden können:
Verwaltungs-API | |||||||
Dienst | Arbeitsspeichernutzung [JMX*] | Dienstprüfung | Nutzer-/Organisations-/Bereitstellungsstatus | axstatus | Datenbankprüfung | apigee-service -Status |
apigee-monit ** |
Verwaltungsserver | |||||||
Message Processor | |||||||
Postgres | |||||||
QPID | |||||||
Router | |||||||
Weitere Informationen | Weitere Informationen | Weitere Informationen | Weitere Informationen | Weitere Informationen | Weitere Informationen | Weitere Informationen | |
* Bevor Sie JMX verwenden können, müssen Sie es aktivieren, wie unter JMX aktivieren beschrieben. ** Der |
Monitoring-Ports für JMX und die Management API
Jede Komponente unterstützt JMX- und Management API-Monitoringaufrufe über verschiedene Ports. In der folgenden Tabelle sind die JMX- und Management API-Ports für jeden Servertyp aufgeführt:
Komponente | JMX-Port | Verwaltungs-API-Port |
---|---|---|
Verwaltungsserver | 1099 | 8080 |
Router | 1100 | 8081 |
Message Processor | 1101 | 8082 |
QPID | 1102 | 8083 |
Postgres | 1103 | 8084 |
JMX zum Überwachen verwenden
Die Monitoringprozesse für Management Server, Message Processor, Qpid und Postgres verwenden alle JMX. JMX ist jedoch standardmäßig nur für Cassandra aktiviert und für alle anderen Edge-Komponenten standardmäßig deaktiviert. Sie müssen daher JMX für jede Komponente einzeln aktivieren, bevor Sie sie überwachen können.
Die JMX-Authentifizierung ist standardmäßig nicht aktiviert. Sie können die JMX-Authentifizierung für alle Komponenten aktivieren. Folgen Sie für Cassandra der Anleitung unter JMX-Authentifizierung für Cassandra aktivieren.
JMX aktivieren
JMX ist standardmäßig nur für Cassandra aktiviert und für alle anderen Edge-Komponenten standardmäßig deaktiviert. In diesem Abschnitt wird beschrieben, wie Sie JMX für die anderen Edge-Komponenten aktivieren.
So aktivieren Sie JMX:
- Bearbeiten Sie die Konfigurationsdatei der Komponente. Diese Datei befindet sich unter
opt/apigee/edge-component_name/bin/start
. In Produktionsumgebungen befinden sich diese Konfigurationsdateien auf verschiedenen Computern.Wählen Sie auf jedem Server einen der folgenden Dateispeicherorte aus:
- Verwaltungsserver:
/opt/apigee/edge-management-server/bin/start
- Message Processor:
/opt/apigee/edge-message-processor/bin/start
- Postgres:
/opt/apigee/edge-postgres-server/bin/start
- Qpid:
/opt/apigee/edge-qpid-server/bin/start
- Router:
/opt/apigee/edge-router/bin/start
Die Konfigurationsdatei des Managementservers auf seinem Server befindet sich beispielsweise unter
/opt/apigee/edge-management-server/bin/start
. - Verwaltungsserver:
- Fügen Sie der Zeile
exec
, mit der die Komponente beginnt, die folgendencom.sun.management.jmxremote
-Optionen hinzu:-Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=port_number \ -Dcom.sun.management.jmxremote.local.only=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false
Dabei ist port_number der JMX-Port für den Dienst. Informationen zum Abrufen der JMX-Portnummer Ihres Dienstes finden Sie unter JMX- und Management API-Monitoringports.
Wenn Sie beispielsweise JMX auf dem Verwaltungsserver aktivieren möchten, fügen Sie der Konfigurationsdatei des Verwaltungsservers Folgendes hinzu:
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 \ -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 \ $* $debug_options com.apigee.kernel.MicroKernel
In diesem Beispiel wird Port 1099 für den Verwaltungsserver angegeben. Wie bereits erwähnt, hat jeder Dienst eine eigene Portnummer.
Die bearbeitete Zeile in der Konfigurationsdatei sieht so aus:
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 -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 $* $debug_options com.apigee.kernel.MicroKernel
- Speichern Sie die Konfigurationsdatei.
- Starten Sie die Komponente mit dem Befehl
restart
neu.Führen Sie beispielsweise den folgenden Befehl aus, um den Management Server neu zu starten:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
Die Authentifizierung für JMX ist standardmäßig nicht aktiviert. Sie können die JMX-Authentifizierung für alle Komponenten aktivieren, wie unter JMX-Authentifizierung aktivieren beschrieben. Informationen zum Aktivieren der JMX-Authentifizierung für Cassandra finden Sie unter JMX-Authentifizierung für Cassandra aktivieren.
JMX-Authentifizierung aktivieren
Die JMX-Authentifizierung ist standardmäßig nicht aktiviert. Sie können die JMX-Authentifizierung für alle Komponenten aktivieren. Folgen Sie für Cassandra der Anleitung unter JMX-Authentifizierung für Cassandra aktivieren
Führen Sie die folgende change_jmx_auth
-Aktion auf allen Knoten aus, um die JMX-Authentifizierung zu aktivieren:
/opt/apigee/apigee-service/bin/apigee-service component change_jmx_auth [options|-f config_file]
Wobei:
- component ist einer der folgenden Werte:
edge-management-server
edge-message-processor
edge-postgres-server
edge-qpid-server
edge-router
- options gibt Folgendes an:
-u username
-p password
-e [y|n]
(aktivieren oder deaktivieren)
- config_file gibt den Speicherort einer Konfigurationsdatei an, in der Sie Folgendes definieren:
JMX_USERNAME=username
JMX_ENABLED=y|n
JMX_PASSWORD=password
(wenn nicht festgelegt oder nicht mit-p
übergeben wird, erhalten Sie eine Eingabeaufforderung)
Sie können entweder die Befehlszeilenoptionen oder die Konfigurationsdatei verwenden, um den Nutzernamen, das Passwort und den Aktivierungs-/Deaktivierungsstatus zu definieren. Sie geben nicht sowohl einen Satz von Optionen als auch eine Konfigurationsdatei an.
Im folgenden Beispiel wird die JMX-Authentifizierung für den Management Server mithilfe der Befehlszeilenoptionen aktiviert:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y
Im folgenden Beispiel wird eine Konfigurationsdatei anstelle von Befehlszeilenoptionen verwendet:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f /tmp/my-config-file
Wenn Sie Edge auf mehreren Knoten ausführen, führen Sie den Befehl auf allen Knoten aus und geben Sie dabei denselben Nutzernamen und dasselbe Passwort an.
Verwenden Sie zum Deaktivieren der JMX-Authentifizierung in der Befehlszeile die Option „-e n“, wie im folgenden Beispiel gezeigt:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n
Monitoring mit JConsole
Verwenden Sie die JConsole (ein JMX-kompatibles Tool), um Systemdiagnose- und Verarbeitungsstatistiken zu verwalten und zu überwachen. Mit der JConsole können Sie von Ihren Servern bereitgestellte JMX-Statistiken abrufen und in einer grafischen Benutzeroberfläche darstellen. Weitere Informationen finden Sie unter JConsole verwenden.
Die JConsole verwendet die folgende Dienst-URL, um die über JMX angebotenen JMX-Attribute (MBeans) zu überwachen:
service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi
Wobei:
- IP_address ist die IP-Adresse des Servers, den Sie überwachen möchten.
- port_number ist die JMX-Portnummer des Servers, den Sie überwachen möchten.
Zum Überwachen des Managementservers können Sie beispielsweise einen Befehl wie den folgenden verwenden (vorausgesetzt, die IP-Adresse des Servers lautet 216.3.128.12):
service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi
Beachten Sie, dass in diesem Beispiel Port 1099 angegeben ist, bei dem es sich um den JMX-Port des Management-Servers handelt. Informationen zu anderen Ports finden Sie unter Monitoring-Ports für JMX und die Management API.
Die folgende Tabelle zeigt die allgemeinen JMX-Statistiken:
JMX-MBeans | JMX-Attribute |
---|---|
Arbeitsspeicher |
HeapMemoryUsage |
NonHeapMemoryUsage |
|
Nutzung |
|
Mit der Management API überwachen
Edge enthält mehrere APIs, mit denen Sie Dienstprüfungen auf Ihren Servern sowie Ihre Nutzer, Organisationen und Bereitstellungen ausführen können. In diesem Abschnitt werden diese APIs beschrieben.
Dienstprüfungen ausführen
Die Management API bietet mehrere Endpunkte zum Monitoring und Diagnostizieren von Problemen mit Ihren Diensten. Zu diesen Endpunkten gehören:
Endpunkt | Beschreibung |
---|---|
/servers/self/up |
Prüft, ob ein Dienst ausgeführt wird. Für diesen API-Aufruf ist keine Authentifizierung erforderlich. Wenn der Dienst ausgeführt wird, gibt dieser Endpunkt die folgende Antwort zurück: <ServerField> <Up>true</Up> </ServerField> Wenn der Dienst nicht ausgeführt wird, erhalten Sie eine Antwort ähnlich der folgenden (je nachdem, um welchen Dienst es sich handelt und wie Sie ihn überprüft haben): curl: Failed connect to localhost:port_number; Connection refused |
/servers/self |
Gibt Informationen zum Dienst zurück, einschließlich:
Für diesen API-Aufruf müssen Sie sich mit Ihren Apigee-Administratoranmeldedaten authentifizieren. |
Um diese Endpunkte zu verwenden, rufen Sie ein Dienstprogramm wie curl
mit Befehlen auf, die die folgende Syntax verwenden:
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]"
Wobei:
- host ist die IP-Adresse des Servers, den Sie prüfen möchten. Wenn Sie beim Server angemeldet sind, können Sie „localhost“ verwenden. Geben Sie andernfalls die IP-Adresse des Servers sowie den Nutzernamen und das Passwort an.
- port_number ist der Port der Management API für den Server, den Sie prüfen möchten. Dies ist für jeden Komponententyp ein anderer Port. Der Port der Management-API des Management Servers ist beispielsweise 8080. Eine Liste der zu verwendenden Management API-Portnummern finden Sie unter JMX und Management API-Monitoringports.
Wenn Sie das Format der Antwort ändern möchten, können Sie den Accept
-Header als „application/json“ oder „application/xml“ angeben.
Im folgenden Beispiel wird der Status des Routers auf localhost (Port 8081) abgerufen:
curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"
Im folgenden Beispiel werden Informationen zum Message Processor unter 216.3.128.12 (Port 8082) abgerufen:
curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password -H "Accept: application/xml"
Nutzer-, Organisations- und Bereitstellungsstatus überwachen
Sie können die Management API verwenden, um den Nutzer-, Organisations- und Bereitstellungsstatus Ihrer Proxys auf Verwaltungsservern und Message Processorn zu überwachen, indem Sie die folgenden Befehle ausführen:
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
Dabei ist port_number entweder 8080 für den Management Server oder 8082 für den Message Processor.
Für diesen Aufruf müssen Sie sich mit Ihrem Nutzernamen und Ihrem Passwort für die Systemverwaltung authentifizieren.
Der Server sollte für alle Aufrufe den Status „Bereitgestellt“ zurückgeben. Wenn diese nicht funktionieren, gehen Sie so vor:
- Prüfen Sie die Serverprotokolle auf Fehler. Die Protokolle befinden sich unter:
- Verwaltungsserver:
opt/apigee/var/log/edge-management-server
- Message Processor:
opt/apigee/var/log/edge-message-processor
- Verwaltungsserver:
- Rufen Sie den Server auf, um zu prüfen, ob er ordnungsgemäß funktioniert.
- Entfernen Sie den Server aus dem ELB und starten Sie ihn dann neu:
/opt/apigee/apigee-service/bin/apigee-service service_name restart
Wo service_name Folgendes ist:
edge-management-server
edge-message-processor
Status mit dem Befehl apigee-service
prüfen
Sie können Fehler an Ihren Edge-Diensten mit dem Befehl apigee-service
beheben, wenn Sie bei dem Server angemeldet sind, auf dem der Dienst ausgeführt wird.
So prüfen Sie den Status eines Dienstes bei apigee-service
:
- Melden Sie sich beim Server an und führen Sie den folgenden Befehl aus:
/opt/apigee/apigee-service/bin/apigee-service service_name status
Dabei kann service_name für folgendes stehen:
- Verwaltungsserver:
edge-management-server
- Message Processor:
edge-message-processor
- Postgres:
edge-postgres-server
- Qpid:
edge-qpid-server
- Router:
edge-router
Beispiel:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
- Verwaltungsserver:
- Wenn der Dienst nicht ausgeführt wird, starten Sie ihn:
/opt/apigee/apigee-service/bin/apigee-service service_name start
- Prüfen Sie nach dem Neustart des Dienstes, ob er funktioniert. Verwenden Sie dazu entweder den zuvor verwendeten
apigee-service status
-Befehl oder die unter Monitoring mit der Management API beschriebene Management API.Beispiel:
curl -v http://localhost:port_number/v1/servers/self/up
Dabei ist port_number der Port der Management API für den Dienst.
In diesem Beispiel wird davon ausgegangen, dass Sie beim Server angemeldet sind und „localhost“ als Hostnamen verwenden können. Für eine Remote-Überprüfung des Status mit der Management API müssen Sie die IP-Adresse des Servers sowie den Nutzernamen und das Passwort des Systemadministrators in Ihrem API-Aufruf angeben.
Postgres-Monitoring
Postgres unterstützt mehrere Dienstprogramme, mit denen Sie ihren Status prüfen können. Diese Dienstprogramme werden in den folgenden Abschnitten beschrieben.
Organisationen und Umgebungen in Postgres prüfen
Mit dem folgenden curl
-Befehl können Sie nach Organisations- und Umgebungsnamen suchen, die auf dem Postgres-Server eingerichtet wurden:
curl -v http://postgres_IP:8084/v1/servers/self/organizations
Das System sollte den Namen der Organisation und der Umgebung anzeigen.
Analysestatus überprüfen
Sie können den Status der Postgres- und Qpid-Analyseserver mit dem folgenden curl
-Befehl prüfen:
curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus
Das System sollte für alle Analyseserver einen Erfolgsstatus anzeigen, wie im folgenden Beispiel gezeigt:
{ "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" }
PostgreSQL-Datenbank
In diesem Abschnitt werden Techniken beschrieben, die Sie speziell für das Monitoring der Postgres-Datenbank verwenden können.
Skript check_postgres.pl
verwenden
Zum Überwachen der PostgreSQL-Datenbank können Sie das standardmäßige Monitoringskript check_postgres.pl
verwenden. Weitere Informationen finden Sie unter http://bucardo.org/wiki/Check_postgres.
Bevor Sie das Skript ausführen:
- Sie müssen das Skript „check_postgres.pl“ auf jedem Postgres-Knoten installieren.
- Achten Sie darauf, dass Sie
perl-Time-HiRes.x86_64
installiert haben, ein Perl-Modul, das hochauflösende Alarm-, Ruhemodus-, Gettimeofday- und Intervall-Timer implementiert. Sie können es beispielsweise mit dem folgenden Befehl installieren:
yum install perl-Time-HiRes.x86_64
- CentOS 7: Bevor Sie „check_postgres.pl“ unter CentOS v7 verwenden, müssen Sie den
perl-Data-Dumper.x86_64
-RPM installieren.
Ausgabe von check_postgres.pl
Die Standardausgabe der API-Aufrufe mit check_postgres.pl
ist mit Nagios kompatibel. Führen Sie nach der Installation des Skripts die folgenden Schritte aus:
- Prüfen Sie die Datenbankgröße:
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'
- Prüfen Sie die Anzahl der eingehenden Verbindungen zur Datenbank und vergleichen Sie sie mit der maximal zulässigen Anzahl:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
- Prüfen Sie, ob die Datenbank ausgeführt wird und verfügbar ist:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
- Prüfen Sie den Speicherplatz:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
- Prüfen Sie die Anzahl der in einem Postgres-Knoten eingerichteten Organisation und Umgebung:
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
Datenbankprüfungen ausführen
Sie können überprüfen, ob die richtigen Tabellen in der PostgreSQL-Datenbank erstellt werden. Melden Sie sich mit dem folgenden Befehl in der PostgreSQL-Datenbank an:
psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee
Führen Sie dann diesen Befehl aus:
\d analytics."org.env.fact"
Systemstatus des Postgres-Prozesses prüfen
Sie können API-Prüfungen auf dem Postgres-Computer ausführen, indem Sie den folgenden curl
-Befehl aufrufen:
curl -v http://postgres_IP:8084/v1/servers/self/health
Dieser Befehl gibt den Status ACTIVE
zurück, wenn der Postgres-Prozess aktiv ist. Wenn der Postgres-Prozess nicht aktiv ist, gibt er den Status INACTIVE
zurück.
Postgres-Ressourcen
Weitere Informationen zum Überwachen des Postgres-Dienstes finden Sie hier:
- 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 ist für Cassandra standardmäßig aktiviert und für den JMX-Remote-Zugriff auf Cassandra ist kein Passwort erforderlich.
JMX-Authentifizierung für Cassandra aktivieren
Sie können die JMX-Authentifizierung für Cassandra aktivieren. Danach müssen Sie bei allen Aufrufen des nodetool
-Dienstprogramms einen Nutzernamen und ein Passwort übergeben.
So aktivieren Sie die JMX-Authentifizierung für Cassandra:
- Erstellen und bearbeiten Sie die Datei
cassandra.properties
:- Bearbeiten Sie die Datei
/opt/apigee/customer/application/cassandra.properties
. Wenn die Datei nicht vorhanden ist, erstellen Sie sie. - Fügen Sie der Datei Folgendes hinzu:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true conf_cassandra-env_com.sun.management.jmxremote.password.file=${APIGEE_ROOT}/data/apigee-cassandra/jmxremote.password conf_cassandra-env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/data/apigee-cassandra/jmxremote.access
- Speichern Sie die Datei
cassandra.properties
. - Ändern Sie den Eigentümer der Datei in „apigee:apigee“, wie im folgenden Beispiel gezeigt:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
Weitere Informationen zur Verwendung von Attributdateien zum Festlegen von Tokens finden Sie unter Edge konfigurieren.
- Bearbeiten Sie die Datei
- Erstellen und bearbeiten Sie
jmx_auth.sh
:- Erstellen Sie am folgenden Speicherort eine Datei, falls sie noch nicht vorhanden ist:
/opt/apigee/customer/application/jmx_auth.sh
- Fügen Sie der Datei die folgenden Attribute hinzu:
export CASS_JMX_USERNAME=JMX_USERNAME export CASS_JMX_PASSWORD=JMX_PASSWORD
- Speichern Sie die Datei
jmx_auth.sh
. - Quelle der Datei:
source /opt/apigee/customer/application/jmx_auth.sh
- Erstellen Sie am folgenden Speicherort eine Datei, falls sie noch nicht vorhanden ist:
- Kopieren und bearbeiten Sie die Datei
jmxremote.password
:- Kopieren Sie die folgende Datei aus dem Verzeichnis
$JAVA_HOME
in/opt/apigee/data/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password
- Bearbeiten Sie die Datei
jmxremote.password
und fügen Sie Ihren JMX-Nutzernamen und Ihr Passwort mit der folgenden Syntax hinzu:JMX_USERNAME JMX_PASSWORD
Dabei sind JMX_USERNAME und JMX_PASSWORD der JMX-Nutzername und das Passwort, die Sie zuvor festgelegt haben.
- Achten Sie darauf, dass die Datei zu „apigee“ gehört und der Dateimodus 400 ist:
chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.password
chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.password
- Kopieren Sie die folgende Datei aus dem Verzeichnis
- Kopieren und bearbeiten Sie die Datei
jmxremote.access
:- Kopieren Sie die folgende Datei aus dem Verzeichnis
$JAVA_HOME
in/opt/apigee/data/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access
- Bearbeiten Sie die Datei „jmxremote.access“ und fügen Sie die folgende Rolle hinzu:
JMX_USERNAME readwrite
- Achten Sie darauf, dass die Datei zu „apigee“ gehört und der Dateimodus 400 ist:
chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.access
chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.access
- Kopieren Sie die folgende Datei aus dem Verzeichnis
- Führen Sie
configure
auf Cassandra aus:/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Starten Sie Cassandra neu:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Wiederholen Sie diesen Vorgang auf allen anderen Cassandra-Knoten.
JMX-Passwortverschlüsselung aktivieren
So aktivieren Sie die JMX-Passwortverschlüsselung:
- Öffnen Sie die Datei
source/conf/casssandra-env.sh
. - Entfernen Sie die Kommentarzeichen vor den folgenden Zeilen in der Datei:
-
JVM_OPTS="$JVM_OPTS -Djava.security.auth.login.config={T}conf_cassandra-env_java.security.auth.login.config{/T}"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.login.config=ApigeeSecureFileLoginModule"
-
- Generieren Sie in der Befehlszeile einen oder mehrere SHA1-Hash-Werte der gewünschten Passwörter, indem Sie
echo -n 'Secret' | openssl dgst -sha1
eingeben - Gleichen Sie die Passwörter mit dem Nutzernamen in
jmxremote.password
ab. - Ändern Sie die Datei
cassandra-env.sh
nach der Aktualisierung wieder in den schreibgeschützten Modus.
JMX-Authentifizierung für Cassandra deaktivieren
So deaktivieren Sie die JMX-Authentifizierung für Cassandra:
/opt/apigee/customer/application/cassandra.properties
bearbeiten- Entfernen Sie die folgende Zeile aus der Datei:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- Konfiguration auf Cassandra ausführen:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Starten Sie Cassandra neu:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Wiederholen Sie diesen Vorgang auf allen anderen Cassandra-Knoten.
JConsole verwenden: Aufgabenstatistiken überwachen
Verwenden Sie die JConsole und die folgende Dienst-URL, um die über JMX angebotenen JMX-Attribute (MBeans) zu überwachen:
service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi
Dabei ist IP_address die IP-Adresse des Cassandra-Servers.
Cassandra JMX-Statistiken
JMX-MBeans | JMX-Attribute |
---|---|
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 |
Mit nodetool Clusterknoten verwalten
Das Dienstprogramm nodetool
ist eine Befehlszeilenschnittstelle für Cassandra, die Clusterknoten verwaltet. Das Dienstprogramm finden Sie unter /opt/apigee/apigee-cassandra/bin
.
Die folgenden Aufrufe können auf allen Cassandra-Clusterknoten ausgeführt werden:
- Allgemeine Ringinformationen (auch für einzelnen Cassandra-Knoten möglich): Suchen Sie nach den „Oben“ und „Normal“ für alle Knoten.
nodetool [-u username -pw password] -h localhost ring
Sie müssen Ihren Nutzernamen und Ihr Passwort nur weitergeben, wenn Sie die JMX-Authentifizierung für Cassandra aktiviert haben.
Die Ausgabe des obigen Befehls sieht so aus:
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
- Allgemeine Informationen zu Knoten (Aufruf pro Knoten)
nodetool [-u username -pw password] -h localhost info
Die Ausgabe des obigen Befehls sieht so aus:
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
- Status des Thrift-Servers (Bereitstellungsclient-API)
nodetool [-u username -pw password] -h localhost statusthrift
Die Ausgabe des Befehls sieht so aus:
running
- Status von Datenstreamingvorgängen: Traffic für Cassandra-Knoten beobachten:
nodetool [-u username -pw password] -h localhost netstats
Die Ausgabe des Befehls sieht so aus:
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
Weitere Informationen zu nodetool
finden Sie unter Das nodetool-Dienstprogramm.
Cassandra-Ressource
Rufen Sie die folgende URL auf: http://www.datastax.com/docs/1.0/operations/monitoring
Apache ZooKeeper
ZooKeeper-Status prüfen
- Achten Sie darauf, dass der ZooKeeper-Prozess ausgeführt wird. ZooKeeper schreibt eine PID-Datei in
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
. - Testen Sie ZooKeeper-Ports, um sicherzustellen, dass Sie auf jedem ZooKeeper-Server eine TCP-Verbindung zu den Ports 2181 und 3888 herstellen können.
- Stellen Sie sicher, dass Sie Werte aus der ZooKeeper-Datenbank lesen können. Stellen Sie eine Verbindung über eine ZooKeeper-Clientbibliothek (oder
/opt/apigee/apigee-zookeeper/bin/zkCli.sh
) her und lesen Sie einen Wert aus der Datenbank. - Prüfen Sie den Status:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
ZooKeeper-Wörter mit vier Buchstaben verwenden
ZooKeeper kann über eine kleine Reihe von Befehlen (Wörter mit vier Buchstaben) überwacht werden, die mithilfe von netcat (nc) oder telnet an Port 2181 gesendet werden.
Weitere Informationen zu ZooKeeper-Befehlen finden Sie in der Apache ZooKeeper-Befehlsreferenz.
Beispiel:
srvr
: Listet alle Details zum Server auf.stat
: Listet kurze Details zum Server und den verbundenen Clients auf.
Die folgenden Befehle können an den ZooKeeper-Port ausgegeben werden:
- Prüfen Sie mit dem vierstelligen Befehl „ruok“, ob der Server fehlerfrei ausgeführt wird. Eine erfolgreiche Antwort gibt „imok“ zurück.
echo ruok | nc host 2181
Retouren:
imok
- Führen Sie den aus vier Buchstaben bestehenden Befehl
stat
aus, um Statistiken zur Serverleistung und verbundenen Clients aufzulisten:echo stat | nc host 2181
Retouren:
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
- Wenn „netcat (nc)“ nicht verfügbar ist, können Sie als Alternative Python verwenden. Erstellen Sie eine Datei mit dem Namen
zookeeper.py
, die Folgendes enthält: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)
Führen Sie nun die folgenden Python-Zeilen aus:
python zookeeper.py 192.168.124.201 ruok
python zookeeper.py 192.168.124.201 stat
LDAP-Level-Test
Sie können OpenLDAP überwachen, um festzustellen, ob die spezifischen Anfragen ordnungsgemäß verarbeitet werden. Mit anderen Worten: Suchen Sie nach einer bestimmten Suche, die das richtige Ergebnis liefert.
- Verwenden Sie
ldapsearch
(yum install openldap-clients
), um den Eintrag des Systemadministrators abzufragen. Dieser Eintrag wird zur Authentifizierung aller API-Aufrufe verwendet.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
Anschließend werden Sie zur Eingabe des LDAP-Administratorpassworts aufgefordert:
Enter LDAP Password:
Nachdem Sie das Passwort eingegeben haben, erhalten Sie eine Antwort im Formular:
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
- Prüfen Sie mit dem folgenden Befehl, ob der Management Server noch mit dem LDAP verbunden ist:
curl -u userEMail:password http://localhost:8080/v1/users/ADMIN
Retouren:
{ "emailId" : ADMIN, "firstName" : "admin", "lastName" : "admin" }
Sie können auch die OpenLDAP-Caches überwachen, die dazu beitragen, die Anzahl der Laufwerkzugriffe zu reduzieren und damit die Leistung des Systems zu verbessern. Das Monitoring und die anschließende Feinabstimmung der Cache-Größe im OpenLDAP-Server kann die Leistung des Verzeichnisservers stark beeinträchtigen. In den Logdateien (opt/apigee/var/log
) finden Sie Informationen zum Cache.