Edge for Private Cloud wer. 4.16.05
W tym dokumencie opisujemy techniki monitorowania komponentów obsługiwanych przez lokalne wdrożenie Apigee Edge.
Włączanie uwierzytelniania JMX i ustawianie hasła JMX
Proces monitorowania serwera zarządzania, procesora wiadomości, Qpid i Postgres korzysta z JMX. Protokół JMX jest domyślnie włączony, a zdalny dostęp do JMX nie wymaga hasła.
Aby włączyć uwierzytelnianie JMX, każdy komponent ma działanie change_jmx_auth, które służy do włączania/wyłączania uwierzytelniania i ustawiania danych logowania JMX.
Aby włączyć uwierzytelnianie JMX, użyj tego polecenia:
> /<inst_root>/apigee/apigee-service/bin/apigee-service comp change_jmx_auth optionsOrConfigFile
gdzie:
- comp to serwer zarządzania Edge, Edge-message-processor, Edge-router, Edge-qpid-server lub Edge-postgres-server.
- Dostępne opcje:
- -u: nazwa użytkownika.
- -p: hasło
- -e: y (włącz) lub n (dsiable)
- Plik konfiguracyjny zawiera:
- JMX_USERNAME=nazwa_użytkownika
- JMX_ENABLED=y/n
- JMX_PASSWORD=password (jeśli nie jest ustawione lub nie jest przekazywane przy użyciu -p, pojawi się prośba).
Aby na przykład użyć opcji w wierszu poleceń:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y
Jeśli masz plik konfiguracyjny:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f configFile
Jeśli korzystasz z Edge w wielu węzłach, uruchom to polecenie we wszystkich węzłach, podając tę samą nazwę użytkownika i hasło.
Aby później wyłączyć uwierzytelnianie JMX, użyj polecenia:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n
Serwer zarządzania
Używanie JConsole do monitorowania informacji o procesie i kontroli stanu systemu
Używaj JConsole (narzędzia zgodnego z JMX), aby zarządzać kontrolami stanu i przetwarzaniem statystyk oraz je monitorować. Za pomocą JConsole możesz przeglądać statystyki JMX dostępne przez serwer zarządzania (lub dowolny serwer) i wyświetlać je w interfejsie graficznym. Więcej informacji o korzystaniu z JConsole znajdziesz na stronie http://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html.
Aby monitorować atrybuty JMX (MB) oferowane przez JMX, użyj JConsole i poniższego adresu URL usługi.
service:jmx:rmi:///jndi/rmi://<ip address>:<port>/platform
gdzie <adres IP> to adres IP serwera zarządzania (lub odpowiedniego serwera). Domyślnie jest to 1099 dla serwera zarządzania.
Poniższa tabela zawiera ogólne statystyki JMX:
JMX MBe |
Atrybuty JMX |
---|---|
Pamięć |
HeapMemoryUsage |
NonHeapMemoryUsage |
|
Wykorzystanie |
|
Uwaga: wartości atrybutów będą wyświetlane w 4 wartościach: zatwierdzone, init, maksymalna i używana. |
Korzystanie z kontroli interfejsu Edge Application API
Możesz sprawdzić interfejs API na serwerze zarządzania (lub dowolnym serwerze), wywołując to polecenie CURL:
curl http://<host>:8080/v1/servers/self/up
Gdzie <host> to adres IP serwera zarządzania.
To wywołanie zwraca wartości „true” (prawda) i „false” (fałsz). Jeśli ma wartość prawda, oznacza to, że węzeł jest uruchomiony, a usługa Java działa.
Jeśli nie otrzymasz odpowiedzi HTTP 200 (OK), Edge nie może odpowiedzieć na żądania portu 8080.
Rozwiązywanie problemów
- Zaloguj się na serwer i uruchom to polecenie:
/<inst_root>/apigee/apigee-service/bin/apigee-service Edge-management-server status - Jeśli usługa nie jest uruchomiona, uruchom ją:
/<inst_root>/apigee/apigee-service/bin/apigee-service Edge-management-server start
Korzystanie z aplikacji Edge – kontrole użytkowników, organizacji i wdrożeń
Serwer zarządzania odgrywa kluczową rolę w łączeniu wszystkich innych działek w każdej instalacji lokalnej. Stan użytkownika, organizacji i wdrożenia możesz sprawdzić na serwerze zarządzania, uruchamiając te polecenia:
curl -u userEmail:password http://localhost:8080/v1/users curl -u userEmail:password http://localhost:8080/v1/organizations curl -u userEmail:password http://localhost:8080/v1/organizations/orgname/deployments
System powinien wyświetlać stan „Wdrożono” w przypadku wszystkich wywołań. Jeśli to się nie uda, wykonaj te czynności:
- Sprawdź, czy w logach serwera zarządzania (<inst_root>/apigee/var/log/edge-management-server) nie ma błędów.
- Wyślij wywołanie do serwera zarządzania, aby sprawdzić, czy działa on prawidłowo.
- Usuń serwer z panelu ELB, a następnie ponownie uruchom serwer zarządzania.
/<inst_root>/apigee/apigee-service/bin/apigee-service ponowne uruchomienie serwera Edge-management-server
Router
Możesz sprawdzić interfejs API w routerze (lub dowolnym serwerze), wywołując to polecenie CURL:
curl http://<host>:8081/v1/servers/self/up
Gdzie host to adres IP routera.
To wywołanie zwraca wartości „true” (prawda) i „false” (fałsz). Jeśli ma wartość prawda, oznacza to, że węzeł jest uruchomiony, a usługa Java działa.
Jeśli nie otrzymasz odpowiedzi HTTP 200 (OK), Edge nie może odpowiedzieć na żądania portu 8081.
Rozwiązywanie problemów
- Zaloguj się na serwer i uruchom te polecenia:
/<inst_root>/apigee/apigee-service/bin/apigee-service Edge-router status - Jeśli usługa nie jest uruchomiona, uruchom usługę
/<inst_root>/apigee/apigee-service/bin/apigee-service Edge-router start - Jeśli usługa jest uruchomiona, sprawdź, czy działa. Stan klastra możesz sprawdzać, porównując wartość memberCount z wartością reachableCount i ostrzegając wszystkie instancje za pomocą atrybutu „memberCount != reachableCount”
curl -v -u <adres e-mail użytkownika>:<hasło> http://localhost:port/v1/cluster
Gdzie port – 8081 dla routera i 8082 w przypadku procesora wiadomości. Dane wyjściowe powyższego polecenia CURL są widoczne poniżej:
{
"memberCount" : 12,
"pod" : "rea1gw001",
"reachableCount" : 12,
"region" : "us-east-1",
"types" : [ "eact-server" ]
* Connection} - Jeśli tak nie jest, uruchom poniższe polecenie, aby sprawdzić błąd lub znaleźć użytkownika naruszającego zasady.
curl http://localhost:port/v1/cluster/members
Gdzie jest port 8081 dla routera i 8082 w przypadku procesora wiadomości. "160" CURL" - Zwróć uwagę, że adres IP 192.168.5.29 jest rozłączony. Ponownie uruchom serwer
/<inst_root>/apigee/apigee-service/bin/apigee-service ponowne uruchomienie routera brzegowego
Uwaga: jeśli router jest w stanie odłączenia, usuń router z ELB, a następnie uruchom go ponownie. - Po ponownym uruchomieniu sprawdź, czy działa.
curl -v http://localhost:port/v1/cluster
Gdzie port to 8081 dla routera i 8082 dla procesora wiadomości.
procesor komunikatów
Używanie JConsole do monitorowania informacji o procesie i kontroli stanu systemu
Wykonaj opisane powyżej czynności dotyczące serwera zarządzania.
Uwaga: upewnij się, że używasz portu 1101.
Korzystanie z kontroli interfejsu Edge Application API
Wykonaj opisane powyżej czynności dotyczące routera.
Uwaga: upewnij się, że używasz portu 8082.
Sprawdzanie przepływu wiadomości JMX
Wykonaj opisane powyżej czynności dotyczące serwera zarządzania.
Uwaga: upewnij się, że używasz portu 1101.
Serwer Qpid
Monitorowanie informacji o procesie i kontroli stanu systemu za pomocą JConsole
Wykonaj opisane powyżej czynności dotyczące serwera zarządzania.
Uwaga: upewnij się, że używasz portu 1102.
Korzystanie z kontroli interfejsu Edge Application API
Wykonaj opisane powyżej czynności dotyczące serwera zarządzania.
Uwaga: upewnij się, że używasz portu 8083. To polecenie CURL jest też obsługiwane w przypadku serwera Qpid:
curl http://<qpid_IP>:8083/v1/servers/self
Serwer Postgres
Używanie JConsole do monitorowania informacji o procesie i kontroli stanu systemu
Wykonaj opisane powyżej czynności dotyczące serwera zarządzania.
Uwaga: upewnij się, że używasz portu 1103.
Korzystanie z kontroli interfejsu Edge Application API
Wykonaj opisane powyżej czynności dotyczące serwera zarządzania.
Uwaga: upewnij się, że używasz portu 8084. To polecenie CURL jest też obsługiwane w przypadku serwera Postgres:
curl http://<postgres_IP>:8084/v1/servers/self
Korzystanie z kontroli organizacji i środowiska aplikacji Edge
Możesz sprawdzić nazwę organizacji i środowiska zarejestrowanych na serwerze Postgres, uruchamiając te polecenia CURL:
curl http:// <postgres_IP>:8084/v1/servers/self/organizations
Uwaga: upewnij się, że używasz portu 8084.
System powinien wyświetlić nazwę organizacji i środowiska.
Sprawdzanie axstatusu aplikacji Edge
Możesz sprawdzić stan serwerów analitycznych, wykonując to polecenie CURL.
curl -u userEmail:password http://<host>:<port>/v1/organizations/<orgname>/environments/<envname>/provisioning/axstatus
W przypadku wszystkich serwerów analitycznych system powinien wyświetlić stan SUCCESS (powodzenie). Dane wyjściowe powyższego polecenia CURL są widoczne poniżej:
{ "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
Korzystanie ze skryptu check_postgres.pl
Do monitorowania bazy danych PostgreSQL możesz użyć standardowego skryptu monitorowania check_postgres.pl dostępnego na stronie http://bucardo.org/wiki/Check_postgres.
Uwaga: w każdym węźle Postgres należy zainstalować skrypt check_postgres.pl.
Zanim uruchomisz skrypt:
- Sprawdź, czy masz zainstalowany moduł Perl perl-Time-HiRes.x86_64, który implementuje minutniki o wysokiej rozdzielczości oraz alarmy, sen, gettimeofday i interwały. Możesz go na przykład zainstalować za pomocą tego polecenia:
yuminstall perl-Time-HiRes.x86_64
Domyślne dane wyjściowe wywołań interfejsu API przy użyciu skryptu (check_postgres.pl) są zgodne z Nagios. Po zainstalowaniu skryptu wykonaj te czynności:
- Rozmiar bazy danych – sprawdź rozmiar bazy danych:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action base_size --warning='800 GB' --critical='900 GB' - Połączenie przychodzące z bazą danych – sprawdza liczbę połączeń przychodzących do bazy danych i porównuje ją z maksymalną dozwoloną liczbą połączeń:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backendy - Dostępność i wydajność bazy danych – sprawdza, czy baza danych działa i czy jest dostępna:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection - Miejsce na dysku – sprawdza 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%' - Zarejestrowane organizacje/środowiska – sprawdza liczbę organizacji i środowisk w węźle Postgres:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action=custom_query --query="select'select'content'name(*) jako wynik z pgrefactal count(*)
Uwaga: jeśli potrzebujesz pomocy w korzystaniu z powyższych poleceń, odwiedź stronę http://bucardo.org/check_postgres/check_postgres.pl.html.
Testy bazy danych
Możesz sprawdzić, czy w bazie danych PostgreSQL zostały utworzone odpowiednie tabele. Zaloguj się do bazy danych PostgreSQL przy użyciu:
psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee
a następnie uruchom polecenie:
\d analytics."<org>.<env>.fact"
Sprawdź stan procesu postgres
Możesz wykonać test interfejsu API na maszynie postgres, wywołując to polecenie CURL:
http://<postgres_IP>:8084/v1/servers/self/health/
Uwaga: upewnij się, że używasz portu 8084.
Zwraca stan „AKTYWNY”, gdy proces postgres jest aktywny. Jeśli proces postgres nie jest uruchomiony, zwraca stan „INACTIVE” (NIEAKTYWNY).
Zasoby Postgres
- http://www.postgresql.org/docs/9.0/static/monitoring.html
- http://www.postgresql.org/docs/9.0/static/diskusage.html
- http://bucardo.org/check_postgres/check_postgres.pl.html
Apache Cassandra
Monitorowanie statystyk zadań przy użyciu JConsole
Aby monitorować atrybuty JMX (MB) oferowane przez JMX, użyj JConsole i poniższego adresu URL usługi.
service:jmx:rmi:///jndi/rmi://<ip address>:7199/jmxrmi
gdzie <adres IP> 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.
Aby włączyć uwierzytelnianie JMX i dodać hasło:
- Edytuj plik /<inst_root>/apigee/customer/application/cassandra.properties. Jeśli plik nie istnieje, utwórz go.
- Dodaj do pliku te informacje:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - Zapisz plik.
- Skopiuj te pliki z katalogu $JAVA_DOM do katalogu
/<inst_root>/apigee/data/apigee-cassandra/:
cp ${JAVA_Home}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/JAGAxapige.jm} - Edytuj plik jmxremote.password i dodaj do pliku nazwę użytkownika i hasło:
cassandra password
gdzie hasło to hasło JMX. - Edytuj plik jmxremote.access i dodaj tę rolę:
cassandra readwrite - Sprawdź, czy pliki należą do „apigee” i czy tryb pliku to 400:
> chown apigee:apigee /<inst_root>/apigee/data/apigee-cassandra/jmxremote.*
> chmod 400 /<inst_root>/apigee/data/apigee-cassandra/jmxremote.* - Uruchom configure w Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra configure - Uruchom ponownie Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
Aby później wyłączyć uwierzytelnianie:
- Edytuj plik /<inst_root>/apigee/customer/application/cassandra.properties.
- Usuń z pliku ten wiersz:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - Uruchom konfigurację w Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra configure - Uruchom ponownie Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
Statystyki JMX Cassandra
JMX MBe |
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ędzia
Narzędzie węzła, które jest interfejsem wiersza poleceń dla systemu Cassandra, służy do zarządzania węzłami klastra. Narzędzie znajdziesz tutaj: <inst_root>/apigee/apigee-cassandra/bin.
Więcej informacji o narzędziu nodetool znajdziesz na stronie http://www.datastax.com/docs/1.0/references/nodetool.
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”.
[host]# nodetool -h localhost 1204,201 404 180, 75 MB 407 180, 764 786 480 184, 401 418 MB18, 1847 MB danych wyjściowych, wygląda tak:
Adres DC Stan macierzy - Ogólne informacje o węzłach (wywołanie na węzeł)
nodetool -h localhost info
Dane wyjściowe tego polecenia wyglądają tak:
Token : 0
Gossip Active : true
Obciążenie: 1,67 MB
Generacja: 1361968765
Pamięć 1361968765
Dostępność (8s) 8 s) 8 - Stan serwera Thrift Server (interfejs API klienta obsługującego)
host]# narzędzie węzła -h localhost statusthrift
W wyniku wykonania powyższego polecenia stan „uruchomiono”. - Stan operacji strumieniowego przesyłania danych: obserwuj ruch w węzłach Casandra
nodetool -h localhost netstats 192.168.124.203
Dane wyjściowe tego polecenia wyglądają tak:
Tryb: NORMAL
Oczekiwanie na NORMAL
Brak przesyłania strumieniowego do /192.168.124.20
Tryb: NORMAL
Brak przesyłania strumieniowego do /192.168.124.20
Tryb: NORMAL
Brak przesyłania strumieniowego do /192.168.124.20
Cassandra Monitoring (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
Sprawdzam status ZooKeeper
- Sprawdź, czy proces ZooKeeper jest uruchomiony. ZooKeeper zapisuje plik PID w katalogu <inst_root>/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 /<inst_root>/apigee/apigee-zookeeper/bin/zkCli.sh) i odczytuj wartość z bazy danych.
- Sprawdź stan:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
Korzystanie z 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 na stronie: http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands.
Na przykład:
- srvr: wyświetla 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
Zwraca:
imok - Uruchom czteroliterowe polecenie – statystyka, aby wyświetlić listę wydajności serwera i statystyki połączonych klientów.
echo stat | nc <host> 2181
Return18 1x4.reavg0, 180101801801801818.118 - 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, który zawiera te elementy:
czas importu, gniazdo,
sys c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
c.connect((sys.argv[1], 2181)1 1 zooy6doodler.1
OpenLDAP
Test poziomu 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 polecenia ldapsearch (yum administrator openldap-clients), aby wysłać zapytanie o wpis 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
Wyświetli się prośba o podanie hasła administratora LDAP:
Wpisz hasło administratora LDAP: - Sprawdź, czy serwer zarządzania jest nadal połączony z LDAP:
curl -u <userEMail>:<hasło> http://localhost:8080/v1/users/<ADMIN>
Zwraca:
{
"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 (<inst_root>/apigee/var/log).