Edge for Private Cloud w wersji 4.18.05
W tym dokumencie opisujemy techniki monitorowania komponentów obsługiwanych przez lokalne wdrożenie Apigee Edge.
Opis
Edge obsługuje kilka sposobów uzyskiwania informacji o usługach, a także sprawdzania ich stanu. W tabeli poniżej znajdziesz typy kontroli, które możesz przeprowadzić w przypadku każdej kwalifikującej się usługi:
Usługa | JMX:* Wykorzystanie pamięci |
Mgmt API: Sprawdzenie usługi |
Zarządzanie interfejsem API: Stan wdrożenia użytkownika, organizacji lub wdrożenia |
Zarządzanie interfejsem API: axstatus |
Sprawdzenie bazy danych | Stan funkcji apigee-service |
---|---|---|---|---|---|---|
Serwer zarządzania | ||||||
procesor komunikatów | ||||||
Postgres | ||||||
Qpid | ||||||
Router | ||||||
Więcej informacji | Więcej informacji | Więcej informacji | Więcej informacji | Więcej informacji | Więcej informacji | |
* Aby móc korzystać z JMX, musisz go włączyć zgodnie z opisem w sekcji Włączanie JMX. |
Porty monitorowania JMX i interfejsu Management API
Każdy komponent obsługuje wywołania monitorowania JMX i interfejsu Management API na różnych portach. W tej tabeli znajdziesz listę portów JMX i interfejsu Management API dla poszczególnych typów serwera:
Komponent | Port JMX | Port interfejsu API zarządzania |
---|---|---|
Serwer zarządzania | 1099 | 8080 |
Router | 1100 | 8081 |
procesor komunikatów | 1101 | 8082 |
Qpid | 1102 | 8083 |
Postgres | 1103 | 8084 |
Użyj JMX
Procesy monitorowania serwera zarządzania, procesora wiadomości, Qpid i Postgres korzystają z JMX. JMX jest jednak domyślnie włączona tylko dla Cassandra i wyłączona domyślnie dla wszystkich innych komponentów Edge. Dlatego musisz je włączyć pojedynczo dla każdego komponentu, aby móc je monitorować.
Uwierzytelnianie JMX nie jest domyślnie włączone. Możesz włączyć uwierzytelnianie JMX dla wszystkich komponentów z wyjątkiem Cassandra.
Włącz JMX
JMX jest domyślnie włączona tylko dla Cassandra i domyślnie wyłączona dla wszystkich innych komponentów Edge. W tej sekcji opisaliśmy, jak włączyć JMX dla innych komponentów Edge.
Aby włączyć JMX:
- Zmodyfikuj plik konfiguracji komponentu. Znajdziesz go tutaj:
opt/apigee/edge-component_name/bin/start
. W środowiskach produkcyjnych pliki konfiguracji znajdują się na różnych komputerach.Wybierz jedną z następujących lokalizacji plików na każdym serwerze:
- Serwer zarządzania:
/opt/apigee/edge-management-server/bin/start
- Procesor wiadomości:
/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
Na przykład plik konfiguracji serwera zarządzania znajduje się na jego serwerze pod adresem
/opt/apigee/edge-management-server/bin/start
. - Serwer zarządzania:
- Do wiersza
exec
, który uruchamia komponent, dodaj te opcjecom.sun.management.jmxremote
:-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
Gdzie port_number to port JMX usługi. Aby uzyskać numer portu JMX usługi, przeczytaj artykuł o portach monitorowania JMX i interfejsu Management API.
Aby na przykład włączyć JMX na serwerze zarządzania, do pliku konfiguracji serwera zarządzania dodaj:
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
W tym przykładzie określono port 1099 serwera zarządzania. Jak już wspomnieliśmy, każda usługa ma własny numer portu.
Zmieniony wiersz w pliku konfiguracji wygląda tak:
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
- Zapisz plik konfiguracji.
- Ponownie uruchom komponent za pomocą polecenia
restart
.Aby na przykład ponownie uruchomić serwer zarządzania, wykonaj to polecenie:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
Uwierzytelnianie dla JMX jest domyślnie wyłączone. Uwierzytelnianie JMX możesz włączyć dla wszystkich komponentów z wyjątkiem Cassandra zgodnie z opisem w sekcji Włączanie uwierzytelniania JMX.
Włącz uwierzytelnianie JMX
Uwierzytelnianie JMX nie jest domyślnie włączone. Możesz włączyć uwierzytelnianie JMX dla wszystkich komponentów z wyjątkiem Cassandra.
Aby włączyć uwierzytelnianie JMX, wykonaj to działanie change_jmx_auth
we wszystkich węzłach:
/opt/apigee/apigee-service/bin/apigee-service component change_jmx_auth [options|-f config_file]
Gdzie:
- component należy do jednej z tych wartości:
edge-management-server
edge-message-processor
edge-postgres-server
edge-qpid-server
edge-router
- options określa te elementy:
-u username
-p password
-e [y|n]
(włącz lub wyłącz)
- config_file określa lokalizację pliku konfiguracji, w której:
JMX_USERNAME=username
JMX_ENABLED=y|n
JMX_PASSWORD=password
(jeśli nie jest ustawiony lub nie został przekazany za pomocą-p
, zostanie wyświetlony monit)
Aby określić nazwę użytkownika, hasło oraz stan włączenia/wyłączenia, możesz użyć opcji wiersza poleceń lub pliku konfiguracji. Nie określasz jednocześnie zestawu opcji i pliku konfiguracji.
Poniższy przykład umożliwia włączenie uwierzytelniania JMX na serwerze zarządzania za pomocą opcji wiersza poleceń:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y
W tym przykładzie użyto pliku konfiguracji, a nie opcji wiersza poleceń:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f /tmp/my-config-file
Jeśli korzystasz z Edge w wielu węzłach, uruchom polecenie na wszystkich węzłach, podając tę samą nazwę użytkownika i hasło.
Aby wyłączyć uwierzytelnianie JMX w wierszu poleceń, użyj opcji „-e n”, jak w tym przykładzie:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n
Monitoruj za pomocą JConsole
Używaj JConsole (narzędzia zgodnego z JMX), aby zarządzać kontrolami stanu i przetwarzaniem statystyk oraz je monitorować. JConsole pozwala przeglądać statystyki JMX udostępniane przez Twoje serwery i wyświetlać je w interfejsie graficznym. Więcej informacji znajdziesz w artykule o korzystaniu z JConsole.
JConsole monitoruje atrybuty JMX (MB) oferowane przez JMX, korzystając z następującego adresu URL usługi:
service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi
Gdzie:
- IP_address to adres IP serwera, który chcesz monitorować.
- port_number to numer portu JMX serwera, który chcesz monitorować.
Aby na przykład monitorować serwer zarządzania, uruchom następujące polecenie (przy założeniu, że adres IP serwera to 216.3.128.12):
service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi
Pamiętaj, że ten przykład określa port 1099, który jest portem JMX serwera zarządzania. W przypadku innych portów przeczytaj artykuł o portach monitorowania JMX i interfejsu Management API.
Poniższa tabela zawiera ogólne statystyki JMX:
JMX MBeany | Atrybuty JMX |
---|---|
Pamięć |
HeapMemoryUsage |
NonHeapMemoryUsage |
|
Wykorzystanie |
|
Monitorowanie za pomocą interfejsu API zarządzania
Edge udostępnia kilka interfejsów API, których możesz używać do sprawdzania usług na serwerach oraz do sprawdzania użytkowników, organizacji i wdrożeń. W tej sekcji opisujemy te interfejsy API.
Sprawdzaj usługę
Interfejs API zarządzania udostępnia kilka punktów końcowych do monitorowania i diagnozowania problemów z usługami. Te punkty końcowe obejmują:
Punkt końcowy | Opis |
---|---|
/servers/self/up |
Sprawdza, czy usługa jest uruchomiona. To wywołanie interfejsu API nie wymaga uwierzytelniania. Jeśli usługa jest uruchomiona, ten punkt końcowy zwraca tę odpowiedź: <ServerField> <Up>true</Up> </ServerField> Jeśli usługa nie jest uruchomiona, otrzymasz odpowiedź podobną do tej (w zależności od usługi i sposobu jej sprawdzenia): curl: Failed connect to localhost:port_number; Connection refused |
/servers/self |
Zwraca informacje o usłudze, w tym:
To wywołanie interfejsu API wymaga uwierzytelnienia za pomocą danych logowania administratora Apigee. |
Aby użyć tych punktów końcowych, wywołaj narzędzie, takie jak curl
, za pomocą poleceń o takiej składni:
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]"
Gdzie:
- host to adres IP serwera, który chcesz sprawdzić. Jeśli zalogujesz się na serwerze, możesz użyć „localhost”. W przeciwnym razie podaj adres IP serwera oraz nazwę użytkownika i hasło.
- port_number to port interfejsu Management API dla serwera, który chcesz sprawdzić. Jest to inny port dla każdego typu komponentu. Na przykład port interfejsu Management API serwera zarządzania to 8080. Listę portów monitorowania interfejsu API zarządzania znajdziesz na stronie Porty monitorowania JMX i interfejsu Management API
Aby zmienić format odpowiedzi, możesz określić nagłówek Accept
jako „application/json” lub „application/xml”.
Ten przykład pozwala sprawdzić stan routera na lokalnym hoście (port 8081):
curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"
Ten przykład zawiera informacje o procesorze wiadomości pod numerem 216.3.128.12 (port 8082):
curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password -H "Accept: application/xml"
Monitorowanie stanu użytkowników, organizacji i wdrożenia
Interfejs API zarządzania umożliwia monitorowanie użytkowników, organizacji i stanu wdrożenia serwerów proxy na serwerach zarządzania i procesorach wiadomości. W tym celu wykonaj następujące polecenia:
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
Gdzie port_number to kod 8080 dla serwera zarządzania lub 8082 dla procesora wiadomości.
To wywołanie wymaga uwierzytelnienia za pomocą nazwy użytkownika i hasła administratora systemu.
Serwer powinien zwracać stan „Wdrożono” w przypadku wszystkich wywołań. Jeśli to się nie uda, wykonaj te czynności:
- Poszukaj błędów w logach serwera. Logi znajdują się w tym miejscu:
- Serwer zarządzania:
opt/apigee/var/log/edge-management-server
- Procesor wiadomości:
opt/apigee/var/log/edge-message-processor
- Serwer zarządzania:
- Wyślij wywołanie do serwera, aby sprawdzić, czy działa prawidłowo.
- Usuń serwer z panelu ELB, a następnie uruchom go ponownie:
/opt/apigee/apigee-service/bin/apigee-service service_name restart
Gdzie service_name to:
edge-management-server
edge-message-processor
Sprawdzanie stanu za pomocą polecenia apigee-service
Możesz rozwiązywać problemy z usługami Edge przy użyciu polecenia apigee-service
po zalogowaniu się na serwerze, na którym działa usługa.
Aby sprawdzić stan usługi w apigee-service
:
- Zaloguj się na serwerze i uruchom to polecenie:
/opt/apigee/apigee-service/bin/apigee-service service_name status
Gdzie service_name jest jednym z tych elementów:
- Serwer zarządzania:
edge-management-server
- Procesor wiadomości:
edge-message-processor
- Postgres:
edge-postgres-server
- Qpid:
edge-qpid-server
- Router:
edge-router
Na przykład:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
- Serwer zarządzania:
- Jeśli usługa nie jest uruchomiona, uruchom ją:
/opt/apigee/apigee-service/bin/apigee-service service_name start
- Po ponownym uruchomieniu usługi sprawdź, czy działa. Możesz to zrobić za pomocą użytego wcześniej polecenia
apigee-service status
lub interfejsu Management API opisanego w artykule Monitorowanie za pomocą interfejsu Management API.Na przykład:
curl -v http://localhost:port_number/v1/servers/self/up
Gdzie port_number to port interfejsu API zarządzania dla usługi.
W tym przykładzie zakładamy, że jesteś zalogowany na serwerze i możesz użyć „localhost” jako nazwy hosta. Aby zdalnie sprawdzić stan za pomocą interfejsu API zarządzania, musisz w wywołaniu interfejsu API podać adres IP serwera oraz podać nazwę użytkownika i hasło administratora systemu.
Monitorowanie Postgres
Postgres obsługuje kilka narzędzi, za pomocą których możesz sprawdzić jego stan. Narzędzia te opisano w kolejnych sekcjach.
Sprawdź organizacje i środowiska w Postgres
Możesz sprawdzić nazwy organizacji i środowisk, które zostały zarejestrowane na serwerze Postgres, uruchamiając to polecenie curl
:
curl -v http://postgres_IP:8084/v1/servers/self/organizations
System powinien wyświetlić nazwę organizacji i środowiska.
Sprawdzanie stanu Analytics
Możesz sprawdzić stan serwerów analitycznych Postgres i Qpid, uruchamiając to polecenie curl
:
curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus
System powinien wyświetlić stan powodzenia dla wszystkich serwerów analitycznych, jak pokazano w tym przykładzie:
{ "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" }
Baza danych PostgreSQL
W tej sekcji opisujemy techniki, których możesz używać do monitorowania bazy danych Postgres.
Użyj skryptu check_postgres.pl
Do monitorowania bazy danych PostgreSQL możesz użyć standardowego skryptu monitorowania check_postgres.pl
. Więcej informacji znajdziesz na stronie http://bucardo.org/wiki/Check_postgres.
Zanim uruchomisz skrypt:
- W każdym węźle Postgres musisz zainstalować skrypt check_postgres.pl.
- Sprawdź, czy masz zainstalowany
perl-Time-HiRes.x86_64
– moduł Perl, który implementuje minutniki o wysokiej rozdzielczości oraz liczniki czasu snu, czasu pozyskania i interwałów. Możesz go na przykład zainstalować za pomocą tego polecenia:
yum install perl-Time-HiRes.x86_64
- CentOS 7: zanim zaczniesz korzystać z pliku check_postgres.pl w CentOS w wersji 7, zainstaluj RPM
perl-Data-Dumper.x86_64
.
check_postgres.pl dane wyjściowe
Domyślne dane wyjściowe wywołań interfejsu API korzystające z check_postgres.pl
są zgodne z Nagios. Po zainstalowaniu skryptu wykonaj te czynności:
- Sprawdź rozmiar bazy danych:
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'
- Sprawdź liczbę połączeń przychodzących do bazy danych i porównaj ją z maksymalną dozwoloną liczbą połączeń:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
- Sprawdź, czy baza danych jest uruchomiona i dostępna:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
- Sprawdź ilość miejsca na dysku:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
- Sprawdź liczbę organizacji i środowiska zarejestrowanych w węźle 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
Uruchom sprawdzanie bazy danych
Możesz sprawdzić, czy w bazie danych PostgreSQL zostały utworzone odpowiednie tabele. Zaloguj się w bazie danych PostgreSQL za pomocą tego polecenia:
psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee
Następnie uruchom polecenie:
\d analytics."org.env.fact"
Sprawdź stan procesu postgres
Możesz sprawdzić interfejs API na maszynie Postgres, wywołując to polecenie curl
:
curl -v http://postgres_IP:8084/v1/servers/self/health
To polecenie zwraca stan ACTIVE
, gdy proces postgres jest aktywny. Jeśli proces Postgres nie jest uruchomiony, zwraca stan INACTIVE
.
Zasoby Postgres
Dodatkowe informacje o monitorowaniu usługi Postgres znajdziesz w tych artykułach:
- 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
Użyj JConsole: monitorowanie statystyk zadań
Aby monitorować atrybuty JMX (MB) oferowane przez JMX, użyj JConsole i tego adresu URL usługi:
service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi
Gdzie IP_address to adres IP serwera Cassandra.
Protokół JMX jest domyślnie włączony dla systemu Cassandra i zdalny dostęp JMX do Cassandra nie wymaga hasła.
Statystyki JMX Cassandra
JMX MBeany | Atrybuty JMX |
---|---|
Rodziny kolumn/aplikacje/środowiska Rodziny kolumn/aplikacje/organizacje Rodziny kolumn/apprepo/apiproxy_revisions Rodziny kolumn/aplikacje/apiproxies Rodziny kolumn/audyt/audyt Rodziny kolumn/audyt/ref |
PendingTasks |
MemtableColumnsCount |
|
MemtableDataSize |
|
ReadCount |
|
RecentReadLatencyMicros |
|
TotalReadLatencyMicros |
|
WriteCount |
|
RecentWriteLatencyMicros |
|
TotalWriteLatencyMicros |
|
TotalDiskSpaceUsed |
|
LiveDiskSpaceUsed |
|
LiveSSTableCount |
|
BloomFilterFalsePositives |
|
RecentBloomFilterFalseRatio |
|
BloomFilterFalseRatio |
Zarządzanie węzłami klastra za pomocą narzędzia węzła
Narzędzie nodetool
to interfejs wiersza poleceń dla Cassandra, który zarządza węzłami klastra. Narzędzie jest dostępne pod adresem /opt/apigee/apigee-cassandra/bin
.
We wszystkich węzłach klastra Cassandra można wykonywać te wywołania:
- Ogólne informacje pierścieniowe (możliwe też w przypadku pojedynczego węzła Cassandra): poszukaj wszystkich węzłów „Góra” i „Normalnie”.
nodetool -h localhost ring
Dane wyjściowe tego polecenia wyglądają tak:
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
- Ogólne informacje o węzłach (wywołanie na węzeł)
nodetool -h localhost info
Dane wyjściowe tego polecenia wyglądają tak:
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
- Stan serwera thrift Server (interfejs API klienta obsługującego wyświetlanie)
nodetool -h localhost statusthrift
Dane wyjściowe tego polecenia wyglądają tak:
running
- Stan operacji strumieniowego przesyłania danych: obserwuj ruch w węzłach Casandra:
nodetool -h localhost netstats
Dane wyjściowe tego polecenia wyglądają tak:
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
Więcej informacji o narzędziu nodetool
znajdziesz w artykule Informacje o narzędziu nodetool.
Monitorowanie Cassandra (UI)
Skorzystaj z adresu URL centrum operacji Datastax: http://www.datastax.com/products/opscenter.
Zasób Cassandra
Skorzystaj z tego adresu URL: http://www.datastax.com/docs/1.0/operations/monitoring.
Apache ZooKeeper
Sprawdź stan ZooKeeper
- Sprawdź, czy proces ZooKeeper jest uruchomiony. ZooKeeper zapisuje plik PID do
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
. - Przetestuj porty ZooKeeper, aby upewnić się, że możesz nawiązać połączenie TCP z portami 2181 i 3888 na każdym serwerze ZooKeeper.
- Sprawdź, czy możesz odczytywać wartości z bazy danych ZooKeeper. Połącz się za pomocą biblioteki klienta ZooKeeper (lub
/opt/apigee/apigee-zookeeper/bin/zkCli.sh
) i odczytaj wartość z bazy danych. - Sprawdź stan:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
Użyj 4-literowych słów z ZooKeeper
ZooKeeper można monitorować za pomocą małego zestawu poleceń (czteroliterowych słów) wysyłanych do portu 2181 za pomocą narzędzia netcat (nc) lub telnet.
Więcej informacji o poleceniach ZooKeeper znajdziesz w dokumentacji poleceń Apache ZooKeeper.
Na przykład:
srvr
: zawiera pełne informacje o serwerze.stat
: zawiera krótkie informacje o serwerze i połączonych klientach.
Do portu ZooKeeper można wysyłać te polecenia:
- Uruchom czteroliterowe polecenie ruok, aby sprawdzić, czy serwer działa w stanie innym niż błąd. Pomyślna odpowiedź zwraca wartość „imok”.
echo ruok | nc host 2181
Zwroty:
imok
- Uruchom czteroliterowe polecenie
stat
, aby wyświetlić listę wydajności serwera i statystyki połączonych klientów:echo stat | nc host 2181
Zwroty:
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
- Jeśli narzędzie netcat (nc) jest niedostępne, zamiast niego możesz użyć języka Python. Utwórz plik o nazwie
zookeeper.py
z następującą zawartością: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)
Teraz uruchom te wiersze Pythona:
python zookeeper.py 192.168.124.201 ruok
python zookeeper.py 192.168.124.201 stat
Test na poziomie LDAP
Możesz monitorować OpenLDAP, aby sprawdzić, czy określone żądania są obsługiwane prawidłowo. Inaczej mówiąc, wyszukaj określone wyszukiwanie, które zwraca właściwy wynik.
- Użyj kodu
ldapsearch
(yum install openldap-clients
), aby wysłać zapytanie do wpisu administratora systemu. Ten wpis służy do uwierzytelniania wszystkich wywołań interfejsu 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
Pojawi się prośba o podanie hasła administratora LDAP:
Enter LDAP Password:
Po wpisaniu hasła zobaczysz odpowiedź w formularzu:
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
- Sprawdź, czy serwer zarządzania jest nadal połączony z LDAP za pomocą tego polecenia:
curl -u userEMail:password http://localhost:8080/v1/users/ADMIN
Zwroty:
{ "emailId" : ADMIN, "firstName" : "admin", "lastName" : "admin" }
Możesz też monitorować pamięci podręczne OpenLDAP, co pomaga ograniczać liczbę przypadków uzyskania dostępu do dysku, a tym samym poprawia wydajność systemu. Monitorowanie, a następnie dostrajanie rozmiaru pamięci podręcznej na serwerze OpenLDAP, może znacznie wpłynąć na wydajność serwera katalogowego. Aby uzyskać informacje o pamięci podręcznej, możesz wyświetlić pliki dziennika (opt/apigee/var/log
).