Jak monitorować

W tym dokumencie opisujemy techniki monitorowania komponentów obsługiwanych przez wdrożenie lokalne Apigee Edge for Private Cloud.

Przegląd

Edge obsługuje kilka sposobów uzyskiwania szczegółowych informacji o usługach oraz sprawdzania ich stanów. W tabeli poniżej znajdziesz listę typów weryfikacji, które możesz przeprowadzić w przypadku każdej kwalifikującej się usługi:

Mgmt API
Komponent Wykorzystanie pamięci [JMX*] Sprawdzanie usługi Stan użytkownika/organizacji/ wdrożenia axstatus Sprawdzanie bazy danych Stan funkcji apigee-service apigee-monit**
Serwer zarządzania
procesor komunikatów
Router
Qpid
Postgres
Więcej informacji 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 artykule Włączanie JMX.

** Usługa apigee-monit sprawdza, czy komponent działa, i w razie potrzeby próbuje go ponownie uruchomić. Więcej informacji znajdziesz w artykule Samonaprawa za pomocą narzędzia apigee-monit.

Monitorowanie portów i plików konfiguracji

Każdy komponent obsługuje wywołania monitorowania interfejsu Java Management Extensions (JMX) i interfejsu Management API na różnych portach. W tabeli poniżej znajdziesz porty JMX i interfejsu Management API dla każdego typu serwera oraz lokalizacje plików konfiguracyjnych:

Komponent Port JMX Port interfejsu API zarządzania Lokalizacja pliku konfiguracji
Serwer zarządzania 1099 8080 $APIGEE_ROOT/customer/application/management-server.properties
procesor komunikatów 1101 8082 $APIGEE_ROOT/customer/application/message-processor.properties
Router 1100 8081 $APIGEE_ROOT/customer/application/router.properties
Qpid 1102 8083 $APIGEE_ROOT/customer/application/qpid-server.properties
Postgres 1103 8084 $APIGEE_ROOT/customer/application/postgres-server.properties

Monitorowanie komponentów za pomocą JMX

W sekcjach poniżej znajdziesz informacje o tym, jak monitorować komponenty Edge za pomocą JMX.

Włączanie JMX

Aby włączyć JMX bez uwierzytelniania lub komunikacji opartej na SSL, wykonaj te czynności: Uwaga: w systemach produkcyjnych ze względów bezpieczeństwa należy włączyć zarówno szyfrowane uwierzytelnianie, jak i SSL.

  1. Edytuj odpowiedni plik konfiguracji (patrz Dokumentacja pliku konfiguracji). Utwórz plik konfiguracji, jeśli nie istnieje.
    conf_system_jmxremote_enable=true
  2. Zapisz plik konfiguracji i upewnij się, że jego właścicielem jest apigee:apigee.
  3. Ponownie uruchom odpowiedni komponent Edge
    apigee-service edge-management-server restart

Aby wyłączyć JMX, usuń właściwość conf_system_jmxremote_enable lub zmień jej wartość na false. Następnie ponownie uruchom odpowiedni komponent Edge.

Uwierzytelnianie w JMX

Edge for Private Cloud obsługuje uwierzytelnianie oparte na hasłach przy użyciu szczegółów przechowywanych w plikach. Aby zwiększyć bezpieczeństwo, możesz przechowywać hasła w postaci skrótu.

  1. Aby włączyć uwierzytelnianie JMX w komponencie edge-*, zmodyfikuj odpowiedni plik konfiguracji (patrz Dokumentacja pliku konfiguracji). Utwórz plik konfiguracji, jeśli nie istnieje:
    conf_system_jmxremote_enable=true
    conf_system_jmxremote_authenticate=true
    conf_system_jmxremote_encrypted_auth=true
    conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
    conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
     Zapisz plik konfiguracji i upewnij się, że jego właścicielem jest użytkownik apigee:apigee.
  2. Utwórz hash SHA256 hasła:
    echo -n '' | openssl dgst -sha256
  3. Utwórz plik jmxremote.password z danymi logowania użytkownika JMX:
    1. Skopiuj te pliki z katalogu $JAVA_HOME do katalogu /opt/apigee/customer/application/<component>/:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password
    2. Edytuj plik i dodaj nazwę użytkownika oraz hasło JMX, używając tej składni:
      USERNAME <HASH-PASSWORD>
    3. Sprawdź, czy plik należy do apigee i czy tryb pliku to 400:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.password
  4. Utwórz plik jmxremote.access z uprawnieniami użytkownika JMX:
    1. Skopiuj te pliki z katalogu $JAVA_HOME do katalogu /opt/apigee/customer/application/<component>/.
      
      cp ${JAVA_HOME}/lib/management/jmxremote.access$APIGEE_ROOT/customer/application/management-server/jmxremote.password/jmxremote.access
    2. Edytuj plik i dodaj nazwę użytkownika JMX, a następnie uprawnienia (READONLY/READWRITE).
      USERNAME READONLY
    3. Sprawdź, czy plik należy do apigee i czy tryb pliku to 400:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password
      
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
  5. Uruchom ponownie odpowiedni komponent Edge:
    apigee-service edge-management-server restart

Aby wyłączyć uwierzytelnianie JMX, usuń właściwość conf_system_jmxremote_authenticate lub zmień jej wartość na false i ponownie uruchom odpowiedni komponent Edge.

SSL w JMX

Aby włączyć JMX oparte na SSL w komponencie edge-*:

  1. Edytuj odpowiedni plik konfiguracji (patrz Dokumentacja pliku konfiguracji). Utwórz plik konfiguracji, jeśli nie istnieje:
    conf_system_jmxremote_enable=true
    conf_system_jmxremote_ssl=true
    conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
    conf_system_javax_net_ssl_keystorepassword=<keystore-password>
    Zapisz plik konfiguracji i upewnij się, że jego właścicielem jest użytkownik apigee:apigee.
  2. Przygotuj magazyn kluczy zawierający klucz serwera i umieść go w ścieżce podanej w konfiguracji conf_system_javax_net_ssl_keystore powyżej. Upewnij się, że plik magazynu kluczy jest czytelny dla apigee:apigee.
  3. Uruchom ponownie odpowiedni komponent Edge:
    apigee-service edge-management-server restart

Aby wyłączyć JMX oparte na SSL, usuń właściwość conf_system_jmxremote_ssl lub zmień jej wartość na false. Uruchom ponownie odpowiedni komponent Edge.

Monitorowanie za pomocą Jconsole

Instrukcje monitorowania za pomocą narzędzia jconsole pozostają takie same jak opisane na stronie https://docs.apigee.com/private-cloud/v4.52.01/how-monitor#jconsole.

Można dodać wiersz „Jeśli protokół SSL jest włączony w przypadku JMX, narzędzie jconsole będzie musiało zostać uruchomione z magazynem zaufanych certyfikatów i hasłem do niego”. Odnośnik: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html

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 korzystać ze statystyk JMX udostępnianych przez serwery i wyświetlać je w interfejsie graficznym. Więcej informacji znajdziesz w artykule Korzystanie z JConsole.

Jeśli protokół SSL jest włączony dla JMX, musisz uruchomić JConsole z magazynem zaufanych certyfikatów i hasłem do niego. Zobacz Korzystanie 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ć.

Aby na przykład monitorować serwer zarządzający, 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 określono port 1099, który jest portem JMX serwera zarządzania. Informacje o innych portach znajdziesz w artykule Porty monitorowania interfejsu JMX i interfejsu Management API.

W tej tabeli znajdziesz ogólne statystyki JMX:

JMX MBeans Atrybuty JMX

Pamięć

HeapMemoryUsage

NonHeapMemoryUsage

Wykorzystanie

Odwołanie do pliku konfiguracji

W sekcjach poniżej opisujemy zmiany, które być może trzeba będzie wprowadzić w plikach konfiguracji komponentów Edge w przypadku konfiguracji związanych z JMX. Więcej informacji znajdziesz w artykule Monitorowanie portów i plików konfiguracyjnych.

Konfiguracja JMX, która ma zostać dodana do pliku konfiguracji odpowiedniego komponentu.

  • Włącz agenta JMX w komponencie brzegowym. Domyślnie ma wartość fałsz.
    conf_system_jmxremote_enable=true

Konfiguracje uwierzytelniania opartego na haśle

  • Włącz uwierzytelnianie oparte na haśle. Domyślnie ma wartość fałsz.
    conf_system_jmxremote_authenticate=true
  • Ścieżka dostępu do pliku. Powinien być własnością użytkownika Apigee i tylko on powinien mieć do niego dostęp do odczytu.
    conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
  • Ścieżka do pliku z hasłem. Powinien być własnością użytkownika Apigee i tylko on powinien mieć do niego dostęp do odczytu.
    conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
  • Włącz przechowywanie haseł w formacie zaszyfrowanym. Domyślnie ma wartość fałsz.
    conf_system_jmxremote_encrypted_auth=true

Konfiguracje JMX opartego na SSL

  • Włącz SSL w przypadku komunikacji JMX. Domyślnie ma wartość fałsz.
    conf_system_jmxremote_ssl=true
  • Ścieżka do magazynu kluczy. Powinien być własnością użytkownika Apigee i tylko on powinien mieć do niego dostęp do odczytu.
    conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
  • Hasło magazynu kluczy:
    conf_system_javax_net_ssl_keystorepassword=changeme

Opcjonalne konfiguracje JMX

Podane wartości są domyślne i można je zmienić.

  • Port JMX. Wartości domyślne znajdziesz w tabeli poniżej.
    conf_system_jmxremote_port=
  • Port JMX RMI. Domyślnie proces Java wybierze losowy port.
    conf_system_jmxremote_rmi_port=
  • Nazwa hosta dla zdalnych stubów. Domyślny adres IP hosta lokalnego.
    conf_system_java_rmi_server_hostname=
  • Zabezpiecz rejestr JMX za pomocą protokołu SSL. Domyślna wartość to fałsz. Ma zastosowanie tylko wtedy, gdy włączony jest protokół SSL.
    conf_system_jmxremote_registry_ssl=false

Monitorowanie za pomocą interfejsu Management API

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

Przeprowadzanie sprawdzania usług

Interfejs Management API udostępnia kilka punktów końcowych do monitorowania i diagnozowania problemów z usługami. Obejmują one:

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 działa, ten punkt końcowy zwraca taką odpowiedź:

<ServerField>
  <Up>true</Up>
</ServerField>

Jeśli usługa nie działa, otrzymasz odpowiedź podobną do tej (w zależności od usługi i sposobu sprawdzenia):

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, np. curl, za pomocą poleceń, które używają 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 jesteś zalogowany(-a) na serwerze, możesz użyć nazwy „localhost”. W przeciwnym razie podaj adres IP serwera oraz nazwę użytkownika i hasło.
  • port_number to port interfejsu Management API serwera, który chcesz sprawdzić. Jest to inny port dla każdego typu komponentu. Na przykład port interfejsu Management API serwera zarządzającego to 8080. Listę numerów portów interfejsu Management API, których możesz użyć, znajdziesz w artykule Porty monitorowania JMX i interfejsu Management API.

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

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

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

Poniższy przykład pobiera informacje o procesorze wiadomości 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żytkowników, organizacji i wdrożenia

Za pomocą interfejsu Management API możesz monitorować stan użytkownika, organizacji i wdrożenia serwerów proxy na serwerach zarządzania i procesorach wiadomości, 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 wiadomości.

Ta rozmowa wymaga uwierzytelnienia za pomocą nazwy użytkownika i hasła administratora systemu.

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

  1. Sprawdź dzienniki serwera pod kątem błędów. Dzienniki znajdują się w tym miejscu:
    • Serwer zarządzający: opt/apigee/var/log/edge-management-server
    • Procesor komunikatów: opt/apigee/var/log/edge-message-processor
  2. Wykonaj połączenie z serwerem, aby sprawdzić, czy działa on prawidłowo.
  3. Usuń serwer z ELB, a potem 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

Aby rozwiązać problemy z usługami Edge, użyj 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ądzający: edge-management-server
    • Procesor komunikatów: edge-message-processor
    • PostgreSQL: 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 prawidłowo, używając polecenia apigee-service status, którego używasz wcześniej, 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 Management API usługi.

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

Monitorowanie Postgres

PostgreSQL obsługuje kilka narzędzi, za pomocą których możesz sprawdzić jego stan. Te narzędzia są opisane w dalszej części tego artykułu.

Sprawdzanie organizacji i środowisk w Postgres

Możesz sprawdzić nazwy organizacji i środowisk, które zostały wdrożone na serwerze Postgres, wydając to polecenie curl:

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

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

Sprawdzanie stanu statystyk

Stan serwerów analitycznych Postgres i Qpid możesz sprawdzić, wydając to polecenie:curl

curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus

System powinien wyświetlać 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.

Przed uruchomieniem skryptu:

  1. Skrypt check_postgres.pl musisz zainstalować na każdym węźle Postgres.
  2. Upewnij się, że masz zainstalowany moduł Perla perl-Time-HiRes.x86_64, który implementuje alarmy, uśpienie, gettimeofday i timery interwałowe o wysokiej rozdzielczości. Możesz na przykład zainstalować go za pomocą tego polecenia:
    yum install perl-Time-HiRes.x86_64
  3. CentOS 7: przed użyciem skryptu check_postgres.pl w systemie CentOS 7 zainstaluj perl-Data-Dumper.x86_64pakiet RPM.

Dane wyjściowe skryptu 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 jest uruchomiona i 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 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 polecenie:

\d analytics."org.env.fact"

Sprawdzanie stanu procesu postgres

Sprawdzanie interfejsu API na maszynie Postgres możesz przeprowadzić, 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, zwraca stan INACTIVE.

Zasoby Postgres

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

Apache Cassandra

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

Włączanie uwierzytelniania JMX w przypadku Cassandry

Możesz włączyć uwierzytelnianie JMX w przypadku systemu Cassandra. Po wykonaniu tej czynności będziesz musiał(-a) przekazywać nazwę użytkownika i hasło do wszystkich wywołań narzędzia nodetool.

Aby włączyć uwierzytelnianie JMX w przypadku Cassandra:

  1. Utwórz i edytuj plik cassandra.properties:
    1. Edytuj plik /opt/apigee/customer/application/cassandra.properties. Jeśli plik nie istnieje, utwórz go.
    2. Dodaj do pliku te elementy:
      conf_cassandra_env_com.sun.management.jmxremote.authenticate=true
      conf_cassandra_env_com.sun.management.jmxremote.password.file=${APIGEE_ROOT}/customer/application/apigee-cassandra/jmxremote.password
      conf_cassandra_env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/customer/application/apigee-cassandra/jmxremote.access
    3. Zapisz plik cassandra.properties.
    4. Zmień właściciela pliku na apigee:apigee, jak pokazano w tym przykładzie:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties

    Więcej informacji o używaniu plików właściwości do ustawiania tokenów znajdziesz w artykule Konfigurowanie Edge.

  2. Tworzenie i edytowanie jmx_auth.sh:
    1. Jeśli plik nie istnieje, utwórz go w tej lokalizacji:
      /opt/apigee/customer/application/jmx_auth.sh
    2. Dodaj do pliku te właściwości:
      export CASS_JMX_USERNAME=JMX_USERNAME
      export CASS_JMX_PASSWORD=JMX_PASSWORD
    3. Zapisz plik jmx_auth.sh.
    4. Wskaż plik:
      source /opt/apigee/customer/application/jmx_auth.sh
  3. Skopiuj i edytuj plik jmxremote.password:
    1. Skopiuj ten plik z katalogu $JAVA_HOME do katalogu /opt/apigee/customer/application/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
    2. Edytuj plik jmxremote.password i dodaj nazwę użytkownika oraz hasło JMX za pomocą tej składni:
      JMX_USERNAME JMX_PASSWORD

      gdzie JMX_USERNAMEJMX_PASSWORD to nazwa użytkownika i hasło JMX ustawione wcześniej.

    3. Sprawdź, czy właścicielem pliku jest „apigee” i czy tryb pliku to 400:
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
  4. Skopiuj i edytuj plik jmxremote.access:
    1. Skopiuj ten plik z katalogu $JAVA_HOME do katalogu /opt/apigee/customer/application/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.access
      $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access
    2. Edytuj plik jmxremote.access i dodaj tę rolę:
      JMX_USERNAME readwrite
    3. Sprawdź, czy właścicielem pliku jest „apigee” i czy tryb pliku to 400:
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
  5. Uruchom configure w Cassandrze:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Uruchom ponownie Cassandrę:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. Powtórz ten proces na wszystkich pozostałych węzłach Cassandry.

Włącz szyfrowanie hasła JMX

Aby włączyć szyfrowanie hasła JMX, wykonaj te czynności:

  1. Otwórz plik source/conf/casssandra-env.sh.
  2. Utwórz i edytuj plik cassandra.properties:
    1. Edytuj plik /opt/apigee/customer/application/cassandra.properties. Jeśli plik nie istnieje, utwórz go.
    2. Dodaj do pliku te elementy:
      conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
    3. Zapisz plik cassandra.properties.
    4. Zmień właściciela pliku na apigee:apigee, jak pokazano w tym przykładzie:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
  3. W wierszu poleceń wygeneruj hasze SHA1 wybranych haseł, wpisując:echo -n 'Secret' | openssl dgst -sha1
  4. Ustaw hasła dla nazw użytkowników w $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password (utworzonych w poprzedniej sekcji).
  5. Uruchom konfigurację w systemie Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Uruchom ponownie Cassandrę:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. Powtórz ten proces na wszystkich pozostałych węzłach Cassandry.

Włączanie JMX z SSL dla Cassandry

Włączenie JMX z SSL zapewnia dodatkowe bezpieczeństwo i szyfrowanie komunikacji z Cassandrą opartej na JMX. Aby włączyć JMX z SSL, musisz podać klucz i certyfikat do Cassandry, aby akceptować połączenia JMX oparte na SSL. Musisz też skonfigurować narzędzie nodetool (i inne narzędzia, które komunikują się z Cassandrą za pomocą JMX) pod kątem SSL.

JMX z obsługą SSL obsługuje zarówno hasła JMX w postaci zwykłego tekstu, jak i zaszyfrowane.

Aby włączyć JMX z SSL dla Cassandry, wykonaj te czynności:

  1. Włącz JMX. W razie potrzeby włącz szyfrowanie hasła.
  2. Włącz uwierzytelnianie JMX dla Cassandra. zgodnie z opisem powyżej. Sprawdź, czy narzędzie nodetool działa z użyciem skonfigurowanej nazwy użytkownika i hasła.
    /opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
  3. Przygotuj magazyn kluczy i magazyn zaufanych certyfikatów.

    • Magazyn kluczy powinien zawierać klucz i certyfikat. Służy do konfigurowania serwera Cassandra. Jeśli plik keystore zawiera wiele par kluczy, Cassandra używa pierwszej pary kluczy do włączenia protokołu SSL.

      Pamiętaj, że hasła do magazynu kluczy i klucza powinny być takie same (jest to domyślne ustawienie podczas generowania klucza za pomocą narzędzia keytool).

    • Truststore powinien zawierać tylko certyfikat i jest używany przez klientów (polecenia oparte na usłudze Apigee lub narzędzie nodetool) do łączenia się przez JMX.

    Po sprawdzeniu, czy spełniasz powyższe wymagania:

    1. Umieść plik magazynu kluczy w folderze /opt/apigee/customer/application/apigee-cassandra/.
    2. Sprawdź, czy plik magazynu kluczy jest czytelny tylko dla użytkownika Apigee, wpisując
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/keystore.node1
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/keystore.node1
  4. Aby skonfigurować Cassandrę pod kątem JMX z SSL, wykonaj te czynności:
    1. Zatrzymaj węzeł Cassandra, wpisując
      apigee-service apigee-cassandra stop
    2. Włącz SSL w systemie Cassandra, otwierając plik /opt/apigee/customer/application/cassandra.properties i dodając te wiersze:
      conf_cassandra_env_com.sun.management.jmxremote.ssl=true
      conf_cassandra_env_javax.net.ssl.keyStore=/opt/apigee/customer/application/apigee-cassandra/keystore.node1
      conf_cassandra_env_javax.net.ssl.keyStorePassword=keystore-password
      ## On FIPS enabled systems, when you are using non standard keystore, set the following:
      ## These can be skipped otherwise
      ## Possible values are JKS, PKCS12, BCFKS
      conf_cassandra_env_javax.net.ssl.keyStoreType=PKCS12
      conf_cassandra_env_javax.net.ssl.keyStoreAlias=cassjmx-tls-alias
    3. Zmień właściciela pliku na apigee:apigee, jak pokazano w tym przykładzie:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    4. Uruchom konfigurację w systemie Cassandra:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    5. Uruchom ponownie Cassandrę:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
    6. Powtórz ten proces na wszystkich pozostałych węzłach Cassandry.
    7. Uruchom węzeł Cassandra, wpisując
      apigee-service apigee-cassandra start
  5. Skonfiguruj polecenia apigee-service Cassandra. Podczas uruchamiania poleceń apigee-service musisz ustawić określone zmienne środowiskowe, w tym te poniżej:
    apigee-service apigee-cassandra stop
    apigee-service apigee-cassandra wait_for_ready
    apigee-service apigee-cassandra ring
    apigee-service apigee-cassandra backup

    Istnieje kilka opcji konfigurowania apigee-service na potrzeby uwierzytelniania JMX i SSL. Wybierz opcję na podstawie użyteczności i praktyk związanych z bezpieczeństwem.

    Opcja 1. Argumenty SSL przechowywane w pliku

    Ustaw następujące zmienne środowiskowe:

    export CASS_JMX_USERNAME=ADMIN
    # Provide encrypted password here if you have setup JMX password encryption
    export CASS_JMX_PASSWORD=PASSWORD
    export CASS_JMX_SSL=Y

    Utwórz plik w katalogu domowym użytkownika Apigee (/opt/apigee).

    $HOME/.cassandra/nodetool-ssl.properties

    Edytuj plik i dodaj te wiersze:

    -Djavax.net.ssl.trustStore=<path-to-truststore.node1>
    -Djavax.net.ssl.trustStorePassword=<truststore-password>
    -Dcom.sun.management.jmxremote.registry.ssl=true
    ## If you are using a non standard truststore, set below, otherwise skip
    ## Possible values are JKS, PKCS12, BCFKS
    -Djavax.net.ssl.trustStoreType=PKCS12

    Upewnij się, że plik trustore jest czytelny dla użytkownika Apigee.

    Uruchom to polecenie apigee-service. Jeśli skrypt zostanie uruchomiony bez błędów, konfiguracje są prawidłowe.

    apigee-service apigee-cassandra ring

    Opcja 2. Argumenty SSL przechowywane w zmiennych środowiskowych

    Ustaw następujące zmienne środowiskowe:

    export CASS_JMX_USERNAME=ADMIN
    # Provide encrypted password here if you have setup JMX password encryption
    export CASS_JMX_PASSWORD=PASSWORD
    export CASS_JMX_SSL=Y
    # Ensure the truststore file is accessible by Apigee user.
    export CASS_JMX_TRUSTSTORE=<path-to-trustore.node1>
    export CASS_JMX_TRUSTSTORE_PASSWORD=<truststore-password>
    # If you are using a non standard truststore type, export truststore type as well
    # Possible values are JKS, PKCS12, BCFKS
    export CASS_JMX_TRUSTSTORE_TYPE=PKCS12

    Uruchom to polecenie apigee-service. Jeśli skrypt zostanie uruchomiony bez błędów, konfiguracje są prawidłowe.

    apigee-service apigee-cassandra ring

    Opcja 3 (argumenty SSL przekazywane bezpośrednio do funkcji apigee-service)

    Uruchom dowolne polecenie apigee-service, na przykład to poniżej. Nie musisz konfigurować żadnych zmiennych środowiskowych.

    CASS_JMX_USERNAME=ADMIN CASS_JMX_PASSWORD=PASSWORD CASS_JMX_SSL=Y CASS_JMX_TRUSTSTORE=<path-to-trustore.node1> CASS_JMX_TRUSTSTORE_PASSWORD=<trustore-password> CASS_JMX_TRUSTSTORE_TYPE=PKCS12 /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
  6. Skonfiguruj narzędzie nodetool. Narzędzie nodetool wymaga przekazania parametrów JMX. Narzędzie nodetool można skonfigurować do działania z JMX z włączonym protokołem SSL na 2 sposoby, jak opisano w opcjach konfiguracji poniżej:

    Opcje różnią się sposobem przekazywania konfiguracji związanych z SSL do narzędzia nodetool. W obu przypadkach użytkownik uruchamiający narzędzie nodetool powinien mieć uprawnienia READ do pliku truststore. Wybierz odpowiednią opcję na podstawie użyteczności i praktyk związanych z bezpieczeństwem.

    Więcej informacji o parametrach narzędzia nodetool znajdziesz w  dokumentacji DataStax.

    Opcja konfiguracji 1

    Utwórz plik w katalogu domowym użytkownika, który uruchamia narzędzie nodetool.

    $HOME/.cassandra/nodetool-ssl.properties

    Dodaj do tego pliku te wiersze:

    -Djavax.net.ssl.trustStore=<path-to-truststore.node1>
    -Djavax.net.ssl.trustStorePassword=<truststore-password>
    -Dcom.sun.management.jmxremote.registry.ssl=true
    ## If you are using a non standard truststore, set below, otherwise skip
    ## Possible values are JKS, PKCS12, BCFKS
    -Djavax.net.ssl.trustStoreType=PKCS12

    Ścieżka do magazynu zaufanych certyfikatów podana powyżej powinna być dostępna dla każdego użytkownika uruchamiającego narzędzie nodetool.

    Uruchom nodetool z opcją --ssl.

    /opt/apigee/apigee-cassandra/bin/nodetool --ssl -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring

    Opcja konfiguracji 2

    Uruchom nodetool jako pojedyncze polecenie z dodatkowymi parametrami wymienionymi poniżej.

    /opt/apigee/apigee-cassandra/bin/nodetool -Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Djavax.net.ssl.trustStoreType=PKCS12 -Dssl.enable=true -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring

Przywracanie konfiguracji SSL

Jeśli chcesz przywrócić konfiguracje SSL opisane w procedurze powyżej, wykonaj te czynności:

  1. Zatrzymaj apigee-cassandra, wpisując
    apigee-service apigee-cassandra stop
  2. Usuń wiersz conf_cassandra-env_com.sun.management.jmxremote.ssl=true z pliku /opt/apigee/customer/application/cassandra.properties.
  3. Zmień w komentarzu te wiersze w /opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh
    # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/opt/apigee/data/apigee-cassandra/keystore.node0"
    # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=keypass"
    # JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true”
  4. Aby rozpocząć apigee-cassandra, wpisz
  5. apigee-service apigee-cassandra start
  6. Usuń zmienną środowiskową CASS_JMX_SSL, jeśli została ustawiona.

    unset CASS_JMX_SSL
  7. Sprawdź, czy działają polecenia oparte na apigee-service, takie jak ring, stop, backup itp.
  8. Przestań używać przełącznika --ssl z narzędziem nodetool

Wyłącz uwierzytelnianie JMX w przypadku Cassandra

Aby wyłączyć uwierzytelnianie JMX w przypadku Cassandra:

  1. Edytuj stronę /opt/apigee/customer/application/cassandra.properties
  2. Usuń z pliku ten wiersz:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Uruchom konfigurację w systemie Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. Uruchom ponownie Cassandrę:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  5. Powtórz ten proces na wszystkich pozostałych węzłach Cassandry.

Korzystanie z JConsole: monitorowanie statystyk zadań

Aby monitorować atrybuty JMX (MBeans) udostępniane 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.

Statystyki JMX Cassandra

JMX MBeans 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ń do obsługi 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” i „Normal”.
    nodetool [-u username -pw password] -h localhost ring

    Nazwę użytkownika i hasło musisz podać tylko wtedy, gdy włączysz uwierzytelnianie JMX w przypadku Cassandry.

    Wynik powyższego polecenia wygląda 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 (połączenie na węzeł)
    nodetool [-u username -pw password]  -h localhost info

    Wynik powyższego polecenia wygląda 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 [-u username -pw password] -h localhost statusthrift

    Wynik powyższego polecenia wygląda tak:

    running
  4. Stan operacji przesyłania strumieniowego danych: obserwuj ruch w węzłach Cassandra:
    nodetool [-u username -pw password] -h localhost netstats

    Wynik powyższego polecenia wygląda 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.

Zasób Cassandra

Więcej informacji znajdziesz pod tym adresem URL: http://www.datastax.com/docs/1.0/operations/monitoring.

Monitorowanie Apache Qpid Broker-J

Qpid Broker-J możesz monitorować w konsoli zarządzania Qpid. W tej sekcji wyjaśniamy, jak uzyskać dostęp do konsoli i używać jej do wykonywania podstawowych funkcji monitorowania. Szczegółowe informacje o korzystaniu z konsoli zarządzania znajdziesz w sekcji Web Management Console w dokumentacji Apache Qpid.

Otwieranie konsoli zarządzania

Domyślny port konsoli zarządzania to 8090. Aby uzyskać dostęp do konsoli na tym domyślnym porcie, otwórz w przeglądarce adres:

http://QPID_NODE_IP:8090

Aby zalogować się w konsoli, użyj domyślnych danych logowania ustawionych przez Apigee lub danych ustawionych w pliku konfiguracyjnym Edge. Szczegółowe informacje znajdziesz w dokumentacji pliku konfiguracji Edge.

Monitorowanie kolejek i wiadomości

W panelu nawigacji po lewej stronie kliknij Java-Broker > virtualhosts > queues (Java-Broker > hosty wirtualne > kolejki). Wybierz kolejkę, aby wyświetlić jej szczegóły w głównej części interfejsu. W widoku szczegółów możesz zobaczyć atrybuty i statystyki kolejki, w tym informacje o dostarczonych i umieszczonych w kolejce wiadomościach, szybkości przesyłania wiadomości itp.

Wyświetlanie i pobieranie plików dziennika

W panelu nawigacji po lewej stronie kliknij Java-Broker > brokerloggers > logfile. W widoku szczegółów głównego interfejsu możesz wyświetlać szczegóły plików dziennika i pobierać pliki dziennika.

Korzystanie z interfejsu API zarządzania Qpid

Za pomocą interfejsu API REST Apache Qpid Broker-J możesz automatyzować zadania związane z zarządzaniem i monitorować brokera. Szczegółowe informacje znajdziesz w dokumentacji interfejsu API REST brokera Apache Qpid.

Do monitorowania brokera możesz też używać narzędzi wiersza poleceń. Na przykład:

curl "QPID_NODE_IP":"8090"/api/latest/broker -u "USERNAME":"PASSWORD"

Włączanie monitorowania z SSL dla Qpid

Aby zapewnić dodatkowe zabezpieczenia na potrzeby monitorowania i zarządzania, włącz SSL w portalu zarządzania Qpid i interfejsach API zarządzania Qpid. Aby podać klucz i certyfikat, postępuj zgodnie z poniższymi wskazówkami.

Qpid udostępnia opcję magazynu kluczy plików, która jest włączona w Apigee. Ten typ akceptuje standardowy format magazynu kluczy JKS, który jest rozpoznawany przez Javę i narzędzia Java, takie jak keytool. Może też akceptować magazyn kluczy PKCS12, który można wygenerować za pomocą narzędzi takich jak OpenSSL.

Przygotowanie magazynu kluczy

Informacje o generowaniu magazynów kluczy znajdziesz w dokumentacji narzędzia Keytool w języku Java.

Informacje o generowaniu magazynów kluczy PKCS12 znajdziesz w dokumentacji OpenSSL.

Po sprawdzeniu wymagań

  1. Umieść plik magazynu kluczy w folderze /opt/apigee/customer/application/apigee-qpidd.
  2. Sprawdź, czy plik magazynu kluczy może odczytać tylko użytkownik Apigee:
    chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
      chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore

Włączanie SSL w Qpid

Wykonaj te czynności na jednym węźle Qpid naraz:

Otwórz plik /opt/apigee/customer/application/qpidd.properties i dodaj te wiersze:

conf_qpidd_qpid_management.https.enabled=true
conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
conf_qpidd_qpid.keystore.password=keystore-password
conf_qpidd_qpid.keystore.certificateAlias=certificate-alias
## If you are using a PKCS12 keystore, specify the keystore type
conf_qpidd_qpid.keystore.keyStoreType=PKCS12
  1. Zmień właściciela pliku na apigee:apigee:
    chown apigee:apigee /opt/apigee/customer/application/qpidd.properties
  2. Skonfiguruj Qpidd:
    apigee-service apigee-qpidd configure
  3. Uruchom ponownie Qpidd:
    apigee-service apigee-qpidd restart
  4. Sprawdź stan za pomocą funkcji wait_for_ready:
    apigee-service apigee-qpidd wait_for_ready

Przywracanie konfiguracji SSL

Usuń lub wykomentuj właściwości z pliku /opt/apigee/customer/application/qpidd.properties:

conf_qpidd_qpid_management.https.enabled=true
conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/keystore
  1. Skonfiguruj Qpidd:
    apigee-service apigee-qpidd configure
  2. Uruchom ponownie Qpidd:
    apigee-service apigee-qpidd restart
  3. Sprawdź stan za pomocą funkcji wait_for_ready:
    apigee-service apigee-qpidd wait_for_ready

Apache ZooKeeper

Sprawdzanie stanu usługi ZooKeeper

  1. Sprawdź, czy proces ZooKeeper jest uruchomiony. ZooKeeper zapisuje plik PID w katalogu 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 ZooKeepera

Usługę ZooKeeper można monitorować za pomocą niewielkiego zestawu poleceń (czteroliterowych słów) wysyłanych do portu 2181 za pomocą narzędzi 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 z nim klientach.

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

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

    Zwraca:

    imok
  2. Aby wyświetlić statystyki wydajności serwera i połączonych klientów, uruchom 4-literowe polecenie stat:
    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 jako alternatywy. Utwórz plik o nazwie zookeeper.py, który zawiera następujące informacje:
    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ć SymasLDAP, aby sprawdzić, czy konkretne żądania są obsługiwane prawidłowo. Inaczej mówiąc, sprawdź, czy konkretne wyszukiwanie zwraca właściwy wynik.

  1. Użyj ldapsearch (yum install symasldap-clients), aby wysłać zapytanie o wpis administratora systemu. Ten wpis służy do uwierzytelniania wszystkich wywołań interfejsu API.
    /opt/symas/bin/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

    Następnie 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
  2. Sprawdź, czy serwer zarządzający 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 SymasLDAP, które pomagają zmniejszyć liczbę dostępów do dysku, a tym samym poprawić wydajność systemu. Monitorowanie, a następnie dostrajanie rozmiaru pamięci podręcznej na serwerze SymasLDAP może mieć duży wpływ na wydajność serwera katalogowego. Aby uzyskać informacje o pamięci podręcznej, możesz wyświetlić pliki dziennika (opt/apigee/var/log).