Jak monitorować

Ten dokument opisuje techniki monitorowania komponentów obsługiwanych przez lokalne wdrożenie Apigee Edge dla Private Cloud.

Przegląd

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

Mgmt API
Komponent Wykorzystanie pamięci [JMX*] Sprawdzenie usługi Stan użytkownika/organizacji/ wdrożenia stan 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

* Jeśli chcesz używać standardu JMX, musisz go włączyć w sposób opisany w sekcji Włączanie JMX.

** Usługa apigee-monit sprawdza, czy komponent jest aktywny. Jeśli tak nie jest, spróbuje go uruchomić ponownie. Więcej informacji znajdziesz w artykule Samodzielna naprawa za pomocą apigee-monit.

Porty monitorowania i pliki konfiguracji

Każdy komponent obsługuje rozszerzenia do zarządzania Java (JMX) i wywołania monitorowania interfejsu Management API w różnych portach. W tabeli poniżej znajdziesz listę portów JMX i interfejsu Management API dla poszczególnych typów serwerów oraz lokalizacji plików konfiguracji:

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

Monitoruj komponenty za pomocą JMX

W poniższych sekcjach dowiesz się, jak używać JMX do monitorowania komponentów Edge.

Włącz JMX

Aby włączyć protokół JMX bez uwierzytelniania i komunikacji opartej na protokole SSL, wykonaj poniższe czynności. Uwaga: w systemach produkcyjnych ze względów bezpieczeństwa powinno być włączone zarówno zaszyfrowane uwierzytelnianie, jak i protokół SSL.

  1. Zmień odpowiedni plik konfiguracji (patrz Dokumentacja pliku konfiguracji). Jeśli plik konfiguracji nie istnieje, utwórz go.
    conf_system_jmxremote_enable=true
  2. Zapisz plik konfiguracji i upewnij się, że należy on do domeny apigee:apigee.
  3. Uruchom ponownie 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 haśle z wykorzystaniem szczegółów przechowywanych w plikach. Dla większego bezpieczeństwa możesz przechowywać hasła jako hasz.

  1. Aby włączyć uwierzytelnianie JMX w komponencie Edge-*, edytuj 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 należy do domeny apigee:apigee.
  2. Utwórz hasz 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, korzystając z tej składni:
      USERNAME <HASH-PASSWORD>
    3. Sprawdź, czy plik należy do domeny 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 poniższe 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 swoją nazwę użytkownika JMX oraz odpowiednie uprawnienia (READONLY/READWRITE)
      USERNAME READONLY
    3. Sprawdź, czy plik należy do domeny 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ń wartość na false i ponownie uruchom odpowiedni komponent Edge.

Protokół SSL w JMX

Aby włączyć protokół JMX oparty na protokole SSL w komponencie Edge-*:

  1. Zmień 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 należy do domeny apigee:apigee.
  2. Przygotuj magazyn kluczy zawierający klucz serwera i umieść go pod ścieżką podaną w konfiguracji conf_system_javax_net_ssl_keystore powyżej. Sprawdź, czy apigee:apigee może odczytać plik magazynu kluczy.
  3. Uruchom ponownie odpowiedni komponent Edge:
    apigee-service edge-management-server restart

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

Monitorowanie za pomocą Jconsole

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

Można dodać jeden wiersz z informacją, że w przypadku JMX protokół jconsole będzie musiał zostać uruchomiony z Truststore i Truststore hasła, jeśli na potrzeby JMX włączono protokół SSL”. Więcej informacji: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html

Monitorowanie za pomocą JConsole

Używaj JConsole (narzędzia zgodnego z JMX) do zarządzania kontrolami stanu i statystykami procesów oraz ich monitorowanie. 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.

Jeśli w JMX włączono protokół SSL, musisz uruchomić JConsole z użyciem magazynu zaufania i hasła do magazynu zaufania. Zobacz Korzystanie z JConsole.

JConsole używa poniższego 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ą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

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 JMX i zarządzania interfejsem API.

Poniższa tabela zawiera ogólne statystyki JMX:

MBeanse JMX Atrybuty JMX

Pamięć

HeapMemoryUsage

NonHeapMemoryUsage

Wykorzystanie

Dokumentacja pliku konfiguracji

W poniższych sekcjach opisano zmiany, które mogą być wymagane w plikach konfiguracyjnych komponentu Edge na potrzeby konfiguracji powiązanych z JMX. Więcej informacji znajdziesz w artykule o monitorowaniu portów i plików konfiguracji.

Konfiguracja JMX do dodania do odpowiedniego pliku konfiguracji komponentu.

  • Włącz agenta JMX w komponencie Edge. Domyślna wartość to fałsz.
    conf_system_jmxremote_enable=true

Konfiguracje uwierzytelniania opartego na haśle

  • Włącz uwierzytelnianie za pomocą hasła. Domyślna wartość to fałsz.
    conf_system_jmxremote_authenticate=true
  • Ścieżka dostępu do pliku. Musi być własnością tylko użytkownika Apigee i może być do niego odczytywany.
    conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
  • Ścieżka do pliku haseł. Musi być własnością tylko użytkownika Apigee i może być do niego odczytywany.
    conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
  • Włącz przechowywanie haseł w formacie zaszyfrowanym. Domyślna wartość to fałsz.
    conf_system_jmxremote_encrypted_auth=true

Konfiguracje dla JMX opartych na SSL

  • Włącz SSL dla komunikacji JMX. Domyślna wartość to fałsz.
    conf_system_jmxremote_ssl=true
  • Ścieżka do magazynu kluczy. Musi być własnością tylko użytkownika Apigee i może być do niego odczytywany.
    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

Wymienione wartości są wartościami domyślnymi, które można zmienić.

  • Port JMX. Wartości domyślne znajdziesz w tabeli poniżej.
    conf_system_jmxremote_port=
  • Port JMX RMI. Domyślnie proces Java wybiera losowy port.
    conf_system_jmxremote_rmi_port=
  • Nazwa hosta dla zdalnych skrótów. Domyślny adres IP lokalnego hosta.
    conf_system_java_rmi_server_hostname=
  • Chroń rejestr JMX za pomocą protokołu SSL. Wartość domyślna to fałsz. Ma zastosowanie tylko przy włączonym protokole SSL.
    conf_system_jmxremote_registry_ssl=false

Monitorowanie za pomocą interfejsu API zarządzania

Edge zawiera 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 opisano te interfejsy API.

Przeprowadzanie kontroli usługi

Interfejs Management API udostępnia kilka punktów końcowych do monitorowania i diagnozowania problemów z usługami. Te punkty końcowe to między innymi:

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 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ń, które korzystają z 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ć polecenia „localhost”. W przeciwnym razie podaj adres IP serwera oraz nazwę użytkownika i hasło.
  • port_number to port interfejsu API zarządzania dla serwera, który chcesz sprawdzić. To jest inny port dla każdego typu komponentu. Na przykład port interfejsu API zarządzania serwerem zarządzania to 8080. Listę numerów portów interfejsu Management API, które mają być użyte, znajdziesz w artykule o portach monitorowania JMX i portach monitorowania interfejsu Management API.

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

Ten przykład pokazuje stan routera na hoście lokalnym (port 8081):

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

Poniższy przykład zawiera informacje o procesorze wiadomości na porcie 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żytkowników, organizacji i wdrożenia serwerów proxy na serwerach zarządzania i procesorach wiadomości, uruchamiając następujące 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 dla serwera zarządzania lub 8082 dla procesora komunikatów.

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

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

  1. Poszukaj błędów w logach serwera. Dzienniki znajdują się w folderze:
    • Serwer zarządzania: opt/apigee/var/log/edge-management-server
    • Procesor wiadomości: 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 narzędzia 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

Problemy z usługami brzegowymi możesz rozwiązywać za pomocą polecenia apigee-service po zalogowaniu się na serwerze, na którym działa usługa.

Aby sprawdzić stan usługi w 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 jeden 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
  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 ona za pomocą wcześniej użytego polecenia apigee-service status lub interfejsu Management API opisanego w artykule Monitorowanie przy użyciu 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 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 Management API, musisz podać adres IP serwera oraz uwzględnić nazwę użytkownika i hasło administratora systemu w wywołaniu interfejsu API.

Monitorowanie Postgres

Postgres obsługuje kilka narzędzi, których możesz używać do sprawdzania jego stanu. Opis tych narzędzi znajdziesz w dalszej części tego artykułu.

Sprawdzanie organizacji i środowisk w Postgres

Możesz sprawdzić nazwy organizacji i środowiska 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 statystyk

Stan serwerów analityki 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

W przypadku wszystkich serwerów analitycznych system powinien wyświetlać stan powodzenia, 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

Aby monitorować bazę 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. Musisz zainstalować skrypt check_postgres.pl w każdym węźle Postgres.
  2. Upewnij się, że masz zainstalowany perl-Time-HiRes.x86_64 – moduł Perl, który implementuje minutniki o wysokiej rozdzielczości, uśpienie, godziny dostępności i interwały. Możesz na przykład zainstalować to polecenie, używając tego polecenia:
    yum install perl-Time-HiRes.x86_64
  3. CentOS 7: zanim zaczniesz korzystać z pliku check_postgres.pl w CentOS w wersji 7, zainstaluj perl-Data-Dumper.x86_64 RPM.

check_postgres.pl

Domyślne dane wyjściowe wywołań interfejsu API używające funkcji 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 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
  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 ś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

Uruchamianie kontroli bazy danych

Możesz sprawdzić, czy w bazie danych PostgreSQL utworzono 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

Aby przeprowadzić testy interfejsu API na maszynie Postgres, wywołaj 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:

Apache Cassandra,

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

Włącz uwierzytelnianie JMX dla Cassandra

Uwierzytelnianie JMX możesz włączyć dla Cassandra. Gdy to zrobisz, we wszystkich wywołaniach narzędzia Nodetool musisz przekazywać nazwę użytkownika i hasło.

Aby włączyć uwierzytelnianie JMX dla systemu Cassandra:

  1. Utwórz i zmodyfikuj 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 Jak skonfigurować Edge.

  2. Tworzenie i edytowanie zasady 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. Źródło pliku:
      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 oraz dodaj nazwę użytkownika i hasło JMX, korzystając z tej składni:
      JMX_USERNAME JMX_PASSWORD

      Gdzie JMX_USERNAME i JMX_PASSWORD to nazwa użytkownika i hasło JMX ustawione wcześniej.

    3. Sprawdź, czy plik należy do „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 plik należy do „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 systemie Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Uruchom ponownie Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. Powtórz ten proces we wszystkich pozostałych węzłach Cassandra.

Włącz szyfrowanie hasła JMX

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

  1. Otwórz plik source/conf/casssandra-env.sh.
  2. Utwórz i zmodyfikuj 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 zgodnie z poniższym przykładem:
      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 powiązane z nazwą użytkownika w $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password (utworzonym w poprzedniej sekcji).
  5. Skonfiguruj uruchomienie w systemie Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Uruchom ponownie Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. Powtórz ten proces we wszystkich pozostałych węzłach Cassandra.

Włącz JMX z SSL dla Cassandra

Włączenie JMX z SSL zapewnia dodatkowe zabezpieczenia i szyfrowanie komunikacji z Cassandra w oparciu o protokół JMX. Aby włączyć JMX z SSL, musisz dostarczyć Cassandra klucz i certyfikat umożliwiający akceptowanie połączeń JMX opartych na SSL. Musisz też skonfigurować narzędzie nodetool (i inne narzędzia komunikujące się z Cassandra przez JMX) do SSL.

Zgodny z protokołem SSL protokół JMX obsługuje zarówno zwykły tekst, jak i zaszyfrowane hasła JMX.

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

  1. Włącz JMX. W razie potrzeby włącz szyfrowanie hasła.
  2. Włącz uwierzytelnianie JMX dla Cassandra. jak opisano powyżej. Sprawdź, czy narzędzie node działa ze skonfigurowaną nazwą użytkownika i hasłem.
    /opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
  3. Przygotuj magazyn kluczy i magazyn zaufania.

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

      Hasła do magazynu i klucza powinny być takie same (domyślnie jest ono generowane podczas generowania klucza za pomocą narzędzia do obsługi kluczy).

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

    Po sprawdzeniu powyższych wymagań:

    1. Umieść plik magazynu kluczy w obszarze /opt/apigee/customer/application/apigee-cassandra/.
    2. Sprawdź, czy plik magazynu kluczy jest czytelny 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ć Cassandra dla JMX z SSL, wykonaj te czynności:
    1. Zatrzymaj węzeł Cassandra, wpisując
      apigee-service apigee-cassandra stop
    2. Włącz SSL w 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
    3. Zmień właściciela pliku na apigee:apigee zgodnie z poniższym przykładem:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    4. Skonfiguruj uruchomienie w systemie Cassandra:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    5. Uruchom ponownie Cassandra:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
    6. Powtórz ten proces we wszystkich pozostałych węzłach Cassandra.
    7. Uruchom węzeł Cassandra, wpisując
      apigee-service apigee-cassandra start
  5. Skonfiguruj polecenia Cassandra apigee-service. 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 skonfigurowania apigee-service pod kątem uwierzytelniania JMX i protokołu SSL. Wybierz opcję na podstawie łatwości obsługi i stosowanych przez Ciebie praktyk dotyczących bezpieczeństwa.

    Opcja 1 (argumenty SSL przechowywane w pliku)

    Ustaw te 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 głównym użytkownika Apigee (/opt/apigee).

    $HOME/.cassandra/nodetool-ssl.properties

    Edytuj plik i dodaj do niego te wiersze:

    -Djavax.net.ssl.trustStore=<path-to-truststore.node1>
    -Djavax.net.ssl.trustStorePassword=<truststore-password>
    -Dcom.sun.management.jmxremote.registry.ssl=true

    Upewnij się, że użytkownik Apigee może odczytać pliktrustore.

    Uruchom to polecenie apigee-service. Jeśli uruchomi się bez błędów, konfiguracja jest prawidłowa.

    apigee-service apigee-cassandra ring

    Opcja 2 (argumenty SSL przechowywane w zmiennych środowiskowych)

    Ustaw te 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>

    Uruchom to polecenie apigee-service. Jeśli uruchomi się bez błędów, konfiguracja jest prawidłowa.

    apigee-service apigee-cassandra ring

    Opcja 3 (argumenty SSL przekazywane bezpośrednio do usługi apigee-service)

    Uruchom dowolne polecenie apigee-service podobne do tego 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> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
  6. Skonfiguruj narzędzie węzłów. Nodetool wymaga przekazania do niego parametrów JMX. Istnieją 2 sposoby konfigurowania narzędzia węzłów pod kątem uruchamiania z użyciem protokołu JMX z obsługą protokołu SSL, jak opisano w poniższych opcjach konfiguracji:

    Opcje różnią się sposobem, w jaki konfiguracje związane z SSL są przekazywane do narzędzia węzłów. W obu przypadkach użytkownik uruchamiający narzędzie nodetool powinien mieć uprawnienia do odczytu pliku zaufania. Wybierz odpowiednią opcję na podstawie łatwości obsługi i stosowanych przez Ciebie praktyk dotyczących bezpieczeństwa.

    Więcej informacji o parametrach narzędzia węzłów znajdziesz w dokumentacji DataStax.

    Opcja konfiguracji 1

    Utwórz plik w katalogu głównym użytkownika, na którym uruchomiono 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

    Ścieżka magazynu zaufania określona powyżej powinna być dostępna dla każdego użytkownika obsługującego węzeł.

    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 -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 powyższej procedurze, 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 komentarz te wiersze w dokumencie /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. Rozpocznij apigee-cassandra, wpisując
  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 polecenia oparte na apigee-service, takie jak ring, stop, backup itd., działają.
  8. Przestań używać przełącznika --ssl za pomocą narzędzia węzłów

Wyłącz uwierzytelnianie JMX dla Cassandra

Aby wyłączyć uwierzytelnianie JMX dla 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. Skonfiguruj uruchomienie w systemie Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. Uruchom ponownie Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  5. Powtórz ten proces we wszystkich pozostałych węzłach Cassandra.

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

Statystyki JMX Cassandra

MBeanse JMX Atrybuty JMX

ColumnFamilies/apprepo/environments

ColumnFamilies/apprepo/organizations

ColumnFamilies/apprepo/apiproxy_revisions

ColumnFamilies/apprepo/apiproxies;

ColumnFamilies/audyty/kontrole

ColumnFamilies/audit/audits_ref

PendingTasks

MemtableColumnsCount

MemtableDataSize

ReadCount

RecentReadLatencyMicros

TotalReadLatencyMicros

WriteCount

RecentWriteLatencyMicros

TotalWriteLatencyMicros

TotalDiskSpaceUsed

LiveDiskSpaceUsed

LiveSSTableCount

BloomFilterFalsePositives

RecentBloomFilterFalseRatio

BloomFilterFalseRatio

Używanie narzędzia nodetool do zarządzania węzłami klastra

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.

Poniższe wywołania można wykonywać we wszystkich węzłach klastra Cassandra:

  1. Ogólne informacje o pierścieniu (możliwe również w przypadku pojedynczego węzła Cassandra): poszukaj wartości „Up” i „Normal” we wszystkich węzłach.
    nodetool [-u username -pw password] -h localhost ring

    Nazwę użytkownika i hasło musisz podać tylko wtedy, gdy masz włączone uwierzytelnianie JMX dla Cassandra.

    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łania na węzeł)
    nodetool [-u username -pw password]  -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 (interfejs API klienta obsługi)
    nodetool [-u username -pw password] -h localhost statusthrift

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

    running

  4. Stan operacji strumieniowania danych: obserwuj ruch w węzłach Cassandra:
    nodetool [-u username -pw password] -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 narzędziu Nodetool znajdziesz w artykule Informacje o narzędziu Nodetool.

Zasób Cassandra

Skorzystaj z tego adresu URL: http://www.datastax.com/docs/1.0/operations/monitoring.

Monitorowanie Broker-J w Apache Qpid

Możesz monitorować Qpid Broker-J z poziomu konsoli zarządzania Qpid. Z tej sekcji dowiesz się, 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 dotyczącej konsoli zarządzania przez internet w dokumentacji Apache Qpid.

Uzyskiwanie dostępu do konsoli zarządzania

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

http://QPID_NODE_IP:8090

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

Monitorowanie kolejek i wiadomości

W lewym panelu użytkownika przejdź do Java-Broker > virtualhosts > kolejki. Wybierz kolejkę, aby wyświetlić jej szczegóły w głównej części interfejsu. W widoku szczegółów możesz wyświetlić atrybuty i statystyki kolejki, w tym informacje o dostarczonych i znajdujących się w kolejce wiadomości, częstotliwości wysyłania wiadomości itd.

Wyświetlanie i pobieranie plików dziennika

W lewym panelu użytkownika wybierz Java-Broker > brokerloggers > plik logu. W głównym widoku szczegółów interfejsu możesz wyświetlać szczegóły plików dziennika i pobierać pliki logów.

Korzystanie z interfejsu API zarządzania Qpid

Za pomocą interfejsu API typu REST Apache Qpid Broker-J możesz zautomatyzować zadania zarządzania i monitorować brokera. Szczegółowe informacje znajdziesz w dokumentacji interfejsu API REST Apache Qpid Broker.

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łącz monitorowanie z użyciem SSL dla Qpid

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

Qpid udostępnia opcję magazynu kluczy pliku, która jest włączona w Apigee. Ten typ akceptuje standardowy format magazynu kluczy JKS obsługiwany przez narzędzia Java i Java, takie jak narzędzie do obsługi kluczy.

Przygotowywanie magazynu kluczy

Plik certyfikatu musisz dostarczyć bezpośrednio do użycia przez klienty Qpidd, a nie tylko za pomocą narzędzia do obsługi kluczy.

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

Po sprawdzeniu wymagań

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

Włącz SSL w Qpid

Wykonaj te czynności na 1 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
  conf_qpidd_qpid.keystore.certificate=/opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem
  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. Ponownie uruchom Qpidd:
    apigee-service apigee-qpidd restart
  4. Sprawdź stan za pomocą funkcji wait_for_ready:
    apigee-service apigee-qpidd wait_for_ready

Przywróć konfigurację SSL

Usuń lub skomentuj właściwości 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. Ponownie uruchom Qpidd:
    apigee-service apigee-qpidd restart
  3. Sprawdź stan za pomocą funkcji wait_for_ready:
    apigee-service apigee-qpidd wait_for_ready

Apache ZooKeeper

Sprawdź status ZooKeeper

  1. Sprawdź, czy proces ZooKeeper jest uruchomiony. ZooKeeper zapisuje plik PID w zasobniku opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid.
  2. Przetestuj porty ZooKeeper, aby sprawdzić, czy można nawiązać połączenie TCP z portami 2181 i 3888 na każdym serwerze ZooKeeper.
  3. Upewnij się, że 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żywaj 4-literowych 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 polecenia 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: wyświetla zwięzłe 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 innym niż błąd. Pomyślna odpowiedź zwraca „imok”.
    echo ruok | nc host 2181

    Zwroty:

    imok
  2. Uruchom czteroliterowe polecenie stat, aby wyświetlić listę statystyk wydajności serwera i 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
  3. Jeśli parametr netcat (nc) jest niedostępny, zamiast niego możesz użyć Pythona. Utwórz plik o nazwie zookeeper.py, który zawiera:
    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 zobaczyć, czy konkretne żądania są obsługiwane prawidłowo. Inaczej mówiąc, poszukaj konkretnego wyszukiwania, które zwraca właściwy wynik.

  1. Aby przesłać zapytanie do wpisu administratora systemu, użyj ldapsearch (yum install openldap-clients). 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

    Następnie pojawi się prośba o podanie hasła administratora LDAP:

    Enter LDAP Password:

    Gdy wpiszesz hasło, zobaczysz odpowiedź w formie formularza:

    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. Za pomocą tego polecenia sprawdź, czy serwer zarządzania jest nadal połączony z LDAP:
    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 zmniejszyć liczbę dostępu do dysku, a tym samym zwiększyć wydajność systemu. Monitorowanie i dostrajanie rozmiaru pamięci podręcznej na serwerze OpenLDAP może znacznie wpłynąć na wydajność serwera katalogowego. Możesz wyświetlić pliki logu (opt/apigee/var/log), aby uzyskać informacje o pamięci podręcznej.