Jak monitorować

Edge dla chmury prywatnej w wersji 4.18.05

W tym dokumencie opisano techniki monitorowania komponentów obsługiwanych przez wdrożenie lokalne Apigee Edge.

Przegląd

Edge obsługuje kilka sposobów uzyskiwania szczegółowych informacji o usługach i 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:*
Memory Usage
Interfejs API zarządzania:
sprawdzanie usługi
Interfejs API zarządzania:
Stan wdrożenia użytkownika/organizacji
Mgmt API:
axstatus
Sprawdzenie bazy danych Stan aplikacji 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
* Zanim zaczniesz korzystać z JMX, musisz włączyć tę funkcję zgodnie z opisem w sekcji Włączanie JMX.

Porty monitorowania interfejsu JMX i interfejsu API zarządzania

Każdy komponent obsługuje wywołania monitorowania JMX i interfejsu API zarządzania na różnych portach. W tabeli poniżej znajdziesz porty JMX i interfejsu API zarządzania Google Analytics dla każdego typu serwera:

Komponent Port JMX Port interfejsu API zarządzania Google Analytics
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 komunikatów, Qpid i Postgres używają JMX. Jednak JMX jest domyślnie włączony tylko w przypadku Cassandry i domyślnie wyłączony we wszystkich innych komponentach Edge. Dlatego przed rozpoczęciem monitorowania musisz włączyć JMX osobno dla każdego komponentu.

Uwierzytelnianie JMX nie jest domyślnie włączone. Możesz włączyć uwierzytelnianie JMX dla wszystkich komponentów oprócz Cassandry.

Włącz JMX

JMX jest domyślnie włączony tylko w przypadku Cassandra i domyślnie wyłączony we wszystkich innych komponentach Edge. Z tej sekcji dowiesz się, jak włączyć JMX w przypadku innych komponentów Edge.

Aby włączyć JMX:

  1. Edytuj plik konfiguracji komponentu. Ten plik znajduje się w lokalizacji opt/apigee/edge-component_name/bin/start. W środowiskach produkcyjnych te pliki konfiguracji będą znajdować się na różnych komputerach.

    Wybierz jedną z tych lokalizacji plików na każdym serwerze:

    • Serwer zarządzania: /opt/apigee/edge-management-server/bin/start
    • Procesor komunikatów: /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 na jego serwerze znajduje się w /opt/apigee/edge-management-server/bin/start.

  2. Dodaj te opcje com.sun.management.jmxremote do wiersza exec, który uruchamia komponent:
    -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

    port_number to port JMX usługi. Aby uzyskać numer portu JMX usługi, zapoznaj się z artykułem Porty monitorowania JMX i interfejsu API zarządzania.

    Aby na przykład włączyć JMX na serwerze zarządzania, dodaj do pliku konfiguracji serwera zarządzania te informacje:

    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 dla serwera zarządzania określono port 1099. Jak wspomnieliśmy wcześniej, 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
  3. Zapisz plik konfiguracji.
  4. Uruchom ponownie 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 JMX nie jest domyślnie włączone. Możesz włączyć uwierzytelnianie JMX we wszystkich komponentach oprócz Cassandry, jak opisano w artykule Włączanie uwierzytelniania JMX.

Włączanie uwierzytelniania JMX

Uwierzytelnianie JMX nie jest domyślnie włączone. Możesz włączyć uwierzytelnianie JMX dla wszystkich komponentów oprócz Cassandra.

Aby włączyć uwierzytelnianie JMX, wykonaj na wszystkich węzłach to działanie change_jmx_auth:

/opt/apigee/apigee-service/bin/apigee-service component change_jmx_auth [options|-f config_file]

Gdzie:

  • component to jedna z tych wartości:
    • edge-management-server
    • edge-message-processor
    • edge-postgres-server
    • edge-qpid-server
    • edge-router
  • options określa te informacje:
    • -u username
    • -p password
    • -e [y|n] (włącz lub wyłącz)
  • config_file określa lokalizację pliku konfiguracji, w którym definiujesz te elementy:
    • JMX_USERNAME=username
    • JMX_ENABLED=y|n
    • JMX_PASSWORD=password (jeśli nie jest ustawiony lub nie został przekazany za pomocą -p, pojawi się prośba o jego podanie)

Możesz użyć opcji wiersza poleceń lub pliku konfiguracji, aby zdefiniować nazwę użytkownika, hasło i stan włączenia/wyłączenia. Nie podawaj jednocześnie zestawu opcji i pliku konfiguracji.

W tym przykładzie włączamy uwierzytelnianie JMX dla serwera 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 zamiast opcji wiersza poleceń:

/opt/apigee/apigee-service/bin/apigee-service edge-management-server
    change_jmx_auth -f /tmp/my-config-file

Jeśli używasz Edge na 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 pokazano w tym przykładzie:

/opt/apigee/apigee-service/bin/apigee-service edge-management-server
    change_jmx_auth -e n

Monitorowanie za pomocą JConsole

Użyj JConsole (narzędzia zgodnego z JMX), aby zarządzać kontrolą stanu i statystykami procesów oraz je monitorować. Za pomocą JConsole możesz wykorzystywać statystyki JMX udostępniane przez serwery i wyświetlać je w interfejsie graficznym. Więcej informacji znajdziesz w artykule o korzystaniu z JConsole.

JConsole używa tego adresu URL usługi do monitorowania atrybutów JMX (MBeans) oferowanych przez JMX:

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ć.

Na przykład, aby monitorować serwer zarządzania, wydaj polecenie podobne do tego (zakładając, że adres IP serwera to 216.3.128.12):

service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi

Zwróć uwagę, że w tym przykładzie podano port 1099, który jest portem JMX serwera zarządzania. Informacje o innych portach znajdziesz w artykule Porty monitorowania JMX i interfejsu API zarządzania.

W tabeli poniżej znajdziesz ogólne statystyki JMX:

Komponenty MBean JMX Atrybuty JMX

Pamięć

HeapMemoryUsage

NonHeapMemoryUsage

Wykorzystanie

Monitorowanie za pomocą interfejsu API zarządzania Google Analytics

Edge zawiera kilka interfejsów API, których możesz używać do sprawdzania usług na serwerach, a także do sprawdzania użytkowników, organizacji i wdrożeń. W tej sekcji opisujemy te interfejsy API.

Przeprowadzanie kontroli usługi

Interfejs API zarządzania Google Analytics 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 działa. To wywołanie interfejsu API nie wymaga uwierzytelniania.

Jeśli usługa działa, 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 tego, jaka to usługa i jak została sprawdzona):

curl: Failed connect to localhost:port_number; Connection refused
/servers/self

Zwraca informacje o usłudze, w tym:

  • Właściwości konfiguracji
  • Czas rozpoczęcia i czas działania
  • Informacje o kompilacji, RPM i UUID
  • Wewnętrzna i zewnętrzna nazwa hosta oraz adres IP
  • Region i pod
  • Właściwość <isUp>, która wskazuje, czy usługa jest uruchomiona.

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 tej 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, a także nazwę użytkownika i hasło.
  • port_number to port interfejsu API zarządzania Google Analytics dla serwera, który chcesz sprawdzić. Jest to inny port dla każdego typu komponentu. Na przykład port interfejsu API zarządzania Google Analytics serwera zarządzania to 8080. Listę numerów portów interfejsu API zarządzania Google Analytics, których można używać, znajdziesz w artykule o portach monitorowania interfejsów API JMX i interfejsu API zarządzania Google Analytics.

Aby zmienić format odpowiedzi, możesz określić nagłówek Accept jako „application/json” lub „application/xml”.

W tym przykładzie pobierany jest stan routera na serwerze lokalnym (port 8081):

curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"

Ten przykład pokazuje, jak uzyskać informacje o procesorze komunikatów pod adresem 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żytkownika, organizacji i wdrożenia

Możesz używać interfejsu API zarządzania Google Analytics do monitorowania stanu użytkowników, organizacji i wdrożeń serwerów proxy na serwerach zarządzania i procesorach komunikatów, wydając te polecenia:

curl http://host:port_number/v1/users -u sysAdminEmail:password
curl 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 8080 w przypadku serwera zarządzania lub 8082 w przypadku procesora komunikatów.

To wywołanie wymaga uwierzytelnienia przy użyciu nazwy użytkownika i hasła administratora systemu.

Serwer powinien zwracać stan „wdrożono” w przypadku wszystkich wywołań. Jeśli to nie pomoże, wykonaj te czynności:

  1. Poszukaj błędów w logach serwera. Dzienniki znajdują się tutaj:
    • Serwer zarządzania: opt/apigee/var/log/edge-management-server
    • Procesor komunikatów: opt/apigee/var/log/edge-message-processor
  2. Wykonaj wywołanie do serwera, aby sprawdzić, czy działa on prawidłowo.
  3. Usuń serwer z 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

Sprawdź stan za pomocą polecenia apigee-service

Możesz rozwiązać problemy z usługami Edge, używając polecenia apigee-service po zalogowaniu się na serwerze, na którym działa usługa.

Aby sprawdzić stan usługi za pomocą apigee-service:

  1. Zaloguj się na serwerze i uruchom to polecenie:
    /opt/apigee/apigee-service/bin/apigee-service service_name status

    Gdzie service_name to jedna z tych wartości:

    • Serwer zarządzania: edge-management-server
    • Procesor komunikatów: 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
  2. Jeśli usługa nie jest uruchomiona, uruchom ją:
    /opt/apigee/apigee-service/bin/apigee-service service_name start
  3. Po ponownym uruchomieniu usługi sprawdź, czy działa, używając polecenia apigee-service status, którego użyto wcześniej, lub interfejsu API zarządzania Google Analytics opisanego w sekcji Monitorowanie za pomocą interfejsu API zarządzania Google Analytics.

    Na przykład:

    curl -v http://localhost:port_number/v1/servers/self/up

    Gdzie port_number to port interfejsu API zarządzania Google Analytics dla usługi.

    W tym przykładzie zakładamy, że jesteś zalogowany(-a) na serwerze i możesz użyć „localhost” jako nazwy hosta. Aby sprawdzić stan zdalnie za pomocą interfejsu API zarządzania Google Analytics, musisz podać adres IP serwera i dołączyć nazwę użytkownika oraz hasło administratora systemu w wywołaniu interfejsu API.

Monitorowanie Postgres

Postgres obsługuje kilka narzędzi, których możesz użyć do sprawdzenia jego stanu. Te narzędzia są opisane w sekcjach poniżej.

Sprawdzanie organizacji i środowisk w Postgres

Aby sprawdzić nazwy organizacji i środowisk, które zostały wprowadzone na serwerze Postgres, możesz użyć tego polecenia curl:

curl -v http://postgres_IP:8084/v1/servers/self/organizations

System powinien wyświetlić nazwę organizacji i środowiska.

Sprawdzanie stanu statystyk

Stan serwerów analitycznych Postgres i Qpid możesz sprawdzić, 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 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 opisano techniki, których możesz używać do monitorowania bazy danych Postgres.

Używanie 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.

Przed uruchomieniem skryptu:

  1. Skrypt check_postgres.pl musisz zainstalować na każdym węźle Postgres.
  2. Upewnij się, że masz zainstalowany moduł perl-Time-HiRes.x86_64, moduł języka PERL implementujący alarm o wysokiej rozdzielczości, uśpienie, gettimeofday i stopery interwałowe. Możesz go na przykład zainstalować za pomocą tego polecenia:
    yum install perl-Time-HiRes.x86_64
  3. CentOS 7: zanim użyjesz check_postgres.pl w systemie CentOS w wersji 7, zainstaluj RPM perl-Data-Dumper.x86_64.

Dane wyjściowe check_postgres.pl

Domyślne dane wyjściowe wywołań interfejsu API za pomocą check_postgres.pl są zgodne z Nagios. Po zainstalowaniu skryptu wykonaj te czynności:

  1. 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'
  2. Sprawdź liczbę połączeń przychodzących z bazą 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
  3. Sprawdź, czy baza danych działa i jest dostępna:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
  4. Sprawdź miejsce na dysku:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
  5. Sprawdź liczbę organizacji i środowisk 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

Przeprowadzanie kontroli 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:

\d analytics."org.env.fact"

Sprawdź stan procesu postgres

Możesz przeprowadzić testy interfejsu 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 działa, zwracany jest stan INACTIVE.

Zasoby Postgres

Więcej informacji o monitorowaniu usługi Postgres znajdziesz w tych artykułach:

Apache Cassandra

Korzystanie z JConsole: monitorowanie statystyk zadań

Użyj JConsole i poniższego adresu URL usługi, aby monitorować atrybuty JMX (MBeans) oferowane przez JMX:

service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi

gdzie IP_address to adres IP serwera Cassandra.

JMX jest domyślnie włączony w przypadku Cassandry, a zdalny dostęp JMX do Cassandry nie wymaga hasła.

Statystyki JMX Cassandra

Komponenty MBean JMX Atrybuty 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

Zarządzanie węzłami klastra za pomocą narzędzia nodetool

Narzędzie nodetool to interfejs wiersza poleceń dla Cassandry, który zarządza węzłami klastra. Narzędzie znajdziesz na stronie /opt/apigee/apigee-cassandra/bin.

Na wszystkich węzłach klastra Cassandra można wykonywać te wywołania:

  1. Ogólne informacje o pierścieniu (możliwe też w przypadku pojedynczego węzła Cassandra): sprawdź, czy wszystkie węzły mają stan „Up” (Włączony) i „Normal” (Normalny).
    nodetool -h localhost ring

    Dane wyjściowe powyższego 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
  2. Ogólne informacje o węzłach (wywołanie na węzeł)
    nodetool -h localhost info

    Dane wyjściowe powyższego 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
  3. Stan serwera Thrift (obsługującego interfejs API klienta)
    nodetool -h localhost statusthrift

    Dane wyjściowe powyższego polecenia wyglądają tak:

    running
  4. Stan operacji strumieniowego przesyłania danych: obserwuj ruch w węzłach Cassandra:
    nodetool -h localhost netstats

    Dane wyjściowe powyższego 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 nodetool znajdziesz w artykule Informacje o narzędziu nodetool.

Monitorowanie Cassandra (interfejs)

Zapoznaj się z informacjami na stronie DataStax OpsCenter: http://www.datastax.com/products/opscenter.

Zasób Cassandra

Zapoznaj się z informacjami pod tym adresem URL: http://www.datastax.com/docs/1.0/operations/monitoring.

Apache ZooKeeper

Sprawdzanie stanu ZooKeepera

  1. Sprawdź, czy proces ZooKeeper jest uruchomiony. ZooKeeper zapisuje plik PID w opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid.
  2. Przetestuj porty ZooKeeper, aby upewnić się, że możesz nawiązać połączenie TCP z portami 2181 i 3888 na każdym serwerze ZooKeeper.
  3. 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.
  4. Sprawdź stan:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status

Używanie czteroliterowych słów ZooKeeper

ZooKeeper można monitorować za pomocą niewielkiego zestawu poleceń (czteroliterowych słów), które są wysyłane do portu 2181 przy użyciu netcat (nc) lub telnetu.

Więcej informacji o poleceniach ZooKeeper znajdziesz w dokumentacji poleceń Apache ZooKeeper.

Na przykład:

  • srvr: wyświetla pełne informacje o serwerze.
  • stat: wyświetla krótkie informacje o serwerze i połączonych klientach.

Do portu ZooKeeper można wysyłać te polecenia:

  1. Uruchom czteroliterowe polecenie ruok, aby sprawdzić, czy serwer działa w stanie bez błędu. Odpowiedź świadcząca o powodzeniu wykonania polecenia to „imok”.
    echo ruok | nc host 2181

    Zwraca:

    imok
  2. Uruchom polecenie składające się z 4 liter, stat, aby wyświetlić listę statystyk wydajności serwera i połączonych klientów:
    echo stat | nc host 2181

    Zwraca:

    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
  3. Jeśli netcat (nc) jest niedostępny, możesz użyć Pythona. Utwórz plik o nazwie zookeeper.py z tą 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 kodu w Pythonie:

    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ą prawidłowo obsługiwane. Innymi słowy, sprawdź, czy konkretne wyszukiwanie zwraca prawidłowy wynik.

  1. Użyj ldapsearch (yum install 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

    Pojawi się prośba o podanie hasła administratora LDAP:

    Enter LDAP Password:

    Po wpisaniu hasła zobaczysz odpowiedź w formie:

    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
  2. Sprawdź, czy serwer zarządzania jest nadal połączony z LDAP, używając tego polecenia:
    curl -u userEMail:password http://localhost:8080/v1/users/ADMIN

    Zwraca:

    {
      "emailId" : ADMIN,
      "firstName" : "admin",
      "lastName" : "admin"
    }

Możesz też monitorować pamięci podręczne OpenLDAP, które pomagają zmniejszyć liczbę dostępów do dysku, a tym samym poprawić wydajność systemu. Monitorowanie, a następnie dostosowywanie rozmiaru pamięci podręcznej na serwerze OpenLDAP może mieć duży wpływ na wydajność serwera usługi katalogowej. Aby uzyskać informacje o pamięci podręcznej, możesz wyświetlić pliki dziennika (opt/apigee/var/log).