Ten dokument opisuje techniki monitorowania komponentów obsługiwanych przez środowisko lokalne wdrożenia Apigee Edge na potrzeby chmury prywatnej.
Omówienie
Edge obsługuje kilka sposobów uzyskiwania szczegółowych informacji o usługach oraz sprawdzania ich statusy. W tabeli poniżej znajdziesz rodzaje weryfikacji, które możesz przeprowadzić w przypadku każdej kwalifikującej się usługi usługa:
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żyć standardu JMX, musisz go włączyć, opisane w artykule Włączanie JMX. ** Usługa |
Porty monitorowania i pliki konfiguracji
Każdy komponent obsługuje wywołania rozszerzenia do zarządzania Java (JMX) i wywołania monitorowania interfejsu Management API na przez różne porty. w poniższej tabeli podano porty JMX i Management API dla każdego typu serwera oraz lokalizacje 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 zaszyfrowane uwierzytelnianie i protokół SSL powinny być włączone dla zabezpieczeń.
- Dokonaj edycji odpowiedniego pliku konfiguracji (patrz sekcja ).
Dokumentacja pliku konfiguracji). Jeśli plik konfiguracji nie istnieje, utwórz go.
conf_system_jmxremote_enable=true
- Zapisz plik konfiguracji i upewnij się, że należy on do domeny
apigee:apigee
. - Ponowne uruchomienie odpowiedniego komponentu Edge
apigee-service edge-management-server restart
Aby wyłączyć JMX, usuń właściwość conf_system_jmxremote_enable
lub zmień
jej wartość do 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.
- Aby włączyć uwierzytelnianie JMX w komponencie Edge-*, zmodyfikuj odpowiedni plik konfiguracji.
(patrz sekcja
Dokumentacja pliku konfiguracji). Utwórz plik konfiguracji, jeśli nie istnieje:
Zapisz plik konfiguracji i upewnij się, że należy on do domenyconf_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
apigee:apigee
. - Utwórz hasz SHA256 hasła:
echo -n '
' | openssl dgst -sha256 - Utwórz plik
jmxremote.password
z danymi logowania użytkownika JMX:- Skopiuj następujące pliki z katalogu
$JAVA_HOME
do katalog/opt/apigee/customer/application/<component>/
:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password
- Edytuj plik i dodaj nazwę użytkownika oraz hasło JMX, korzystając z następującej składni:
USERNAME <HASH-PASSWORD>
- 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
- Skopiuj następujące pliki z katalogu
- Utwórz plik
jmxremote.access
z uprawnieniami użytkownika JMX:- Skopiuj następujące pliki z katalogu $JAVA_HOME do
katalog
/opt/apigee/customer/application/<component>/
cp ${JAVA_HOME}/lib/management/jmxremote.access$APIGEE_ROOT/customer/application/management-server/jmxremote.password/jmxremote.access
- Edytuj plik i dodaj swoją nazwę użytkownika JMX oraz odpowiednie uprawnienia (READONLY/READWRITE)
USERNAME READONLY
- 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
- Skopiuj następujące pliki z katalogu $JAVA_HOME do
katalog
- Uruchom ponownie odpowiedni komponent Edge:
apigee-service edge-management-server restart
Aby wyłączyć uwierzytelnianie JMX, usuń tę właściwość
conf_system_jmxremote_authenticate
lub zmień wartość na false
i
i ponownie uruchom odpowiedni komponent Edge.
Protokół SSL w JMX
Aby włączyć protokół JMX oparty na protokole SSL w komponencie Edge-*:
- Edytuj odpowiedni plik konfiguracji
(patrz sekcja
Dokumentacja pliku konfiguracji). Utwórz plik konfiguracji, jeśli nie istnieje:
Zapisz plik konfiguracji i upewnij się, że należy on do domenyconf_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>
apigee:apigee
. - Przygotuj magazyn kluczy zawierający klucz serwera i umieść go pod ścieżką podaną w pliku
conf_system_javax_net_ssl_keystore
powyżej. Sprawdź, czy plik magazynu kluczy jest czytelny dlaapigee:apigee
. - 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 w konsoli jconsole pozostają takie same, jak opisano w https://docs.apigee.com/private-cloud/v4.52.01/how-monitor#jconsole.
Można dodać jeden wiersz z informacją, że w przypadku JMX protokół SSL musi być uruchamiany z użyciem Truststore i hasła do Truststore. Więcej informacji: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.htmlMonitorowanie 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 graficzny. Więcej informacji: Korzystanie 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 Przy użyciu 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, z którym chcesz się połączyć monitorowania.
Aby na przykład monitorować serwer zarządzania, uruchom następujące polecenie (przy założeniu, 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. Inne Więcej informacji znajdziesz w artykule na temat portów 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ć konieczne w konfiguracji komponentu Edge na potrzeby konfiguracji JMX. Zobacz Monitorowanie portów i plików konfiguracji, by uzyskać dodatkowe informacje i informacjami o nich.
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 opartego 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 Management API
Edge zawiera kilka interfejsów API, których możesz używać do sprawdzania usług na swoich serwerach, a także sprawdzić użytkowników, organizacje i wdrożenia. 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 usług Google. 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 od Ciebie uwierzytelnienie. 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 typu usługi i sposobu jej sprawdzenia): curl: Failed connect to localhost:port_number; Connection refused |
/servers/self |
Zwraca informacje o usłudze, w tym:
To wywołanie interfejsu API wymaga uwierzytelnienia za pomocą danych logowania administratora Apigee. |
Aby używać tych punktów końcowych, wywołaj narzędzie, takie jak curl
, za pomocą poleceń, które korzystają z metody
ta składnia:
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ć. Po zalogowaniu się serwera, możesz użyć elementu „localhost”, W przeciwnym razie podaj również adres IP serwera w polu nazwy użytkownika i hasła.
- 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 serwer zarządzania Port interfejsu API zarządzania to port 8080. Listę numerów portów interfejsu Management API, które mają być użyte, znajdziesz w artykule Porty monitorowania JMX i 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 pokazuje 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 API zarządzania możesz monitorować stan użytkowników, organizacji i wdrożenia swojego serwery proxy na serwerach zarządzania i w procesorach wiadomości, uruchamiając następujące polecenia:
curl http://host:port_number/v1/users -u sysAdminEmail:passwordcurl http://host:port_number/v1/organizations -u sysAdminEmail:password
curl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password
Gdzie port_number to 8080 w przypadku serwera zarządzania lub 8082 dla wiadomości Procesor.
To wywołanie wymaga uwierzytelnienia przy użyciu nazwy użytkownika administratora systemu i hasła.
Serwer powinien zwrócić komunikat „deployed” (wdrożony). dla wszystkich połączeń. Jeśli to się nie uda, wykonaj te czynności:
- Poszukaj błędów w logach serwera. Dzienniki znajdują się pod adresem:
- Serwer zarządzania:
opt/apigee/var/log/edge-management-server
- Procesor wiadomości:
opt/apigee/var/log/edge-message-processor
- Serwer zarządzania:
- Wykonaj wywołanie do serwera, aby sprawdzić, czy działa on prawidłowo.
- 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 Edge możesz rozwiązać za pomocą polecenia apigee-service
.
użytkownik zalogował się na serwerze, na którym działa usługa.
Aby sprawdzić stan usługi w apigee-service
:
- Zaloguj się na serwerze i uruchom następujące 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
- Serwer zarządzania:
- Jeśli usługa nie jest uruchomiona, uruchom ją:
/opt/apigee/apigee-service/bin/apigee-service service_name start
- Po ponownym uruchomieniu usługi sprawdź, czy działa, korzystając z
używane wcześniej polecenie
apigee-service status
lub przy użyciu interfejsu Management API opisane w artykule Monitorowanie za pomocą interfejsu API zarządzania.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ć polecenia „localhost” jako nazwa hosta. Aby zdalnie sprawdzać stan za pomocą interfejsu API zarządzania, musisz podać adres IP adres serwera i umieść w interfejsie API nazwę użytkownika i hasło administratora systemu .
Monitorowanie Postgres
Postgres obsługuje kilka narzędzi, których możesz używać do sprawdzania jego stanu. Te narzędzia są opisane 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
Możesz sprawdzić stan serwerów analityki Postgres i Qpid, wydając następujące polecenie
Polecenie curl
:
curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus
System powinien wyświetlać stan powodzenia wszystkich serwerów analitycznych, jak w przykładzie poniżej programy:
{ "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 Postgres w bazie danych.
Użyj skryptu check_postgres.pl
Aby monitorować bazę danych PostgreSQL, możesz użyć standardowego skryptu monitorowania,
check_postgres.pl
Więcej informacji:
http://bucardo.org/wiki/Check_postgres.
Przed uruchomieniem skryptu:
- Musisz zainstalować skrypt check_postgres.pl w każdym węźle Postgres.
- Upewnij się, że masz zainstalowany
perl-Time-HiRes.x86_64
– moduł Perl, który uruchamia alarmy o wysokiej rozdzielczości, liczniki czasu uśpienia, gettimeofday i interwałów. Na przykład: w którym można go zainstalować, używając tego polecenia:
yum install perl-Time-HiRes.x86_64
- CentOS 7: zanim zaczniesz korzystać z pliku check_postgres.pl w CentOS 7, zainstaluj
perl-Data-Dumper.x86_64
obr./min.
check_postgres.pl
Domyślnym wynikiem wywołań interfejsu API korzystających z metody check_postgres.pl
jest Nagios
są zgodne. Po zainstalowaniu skryptu wykonaj te czynności:
- Sprawdź rozmiar bazy danych:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action database_size --warning='800 GB' --critical='900 GB'
- Sprawdź liczbę połączeń przychodzących do bazy danych i porównuje ją z maksymalną dozwoloną liczbą
połączenia:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
- Sprawdź, czy baza danych jest uruchomiona i dostępna:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
- Sprawdź ilość miejsca na dysku:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
- Sprawdź liczbę organizacji i środowiska zarejestrowanych w węźle Postgres:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action=custom_query --query="select count(*) as result from pg_tables where schemaname='analytics' and tablename like '%fact'" --warning='80' --critical='90' --valtype=integer
Uruchamianie kontroli bazy danych
Możesz sprawdzić, czy w bazie danych PostgreSQL utworzono odpowiednie tabele. Zaloguj się w PostgreSQL w bazie danych, korzystając z 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 curl
polecenie:
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 został uruchomiony. Zwraca stan INACTIVE
.
Zasoby Postgres
Dodatkowe informacje o monitorowaniu usługi Postgres znajdziesz w tych artykułach:
- http://www.postgresql.org/docs/9.0/static/monitoring.html
- http://www.postgresql.org/docs/9.0/static/diskusage.html
- http://bucardo.org/check_postgres/check_postgres.pl.html
Apache Cassandra,
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. Następnie konieczne będzie wykonanie tych czynności: przekazać nazwę użytkownika i hasło do wszystkich wywołań narzędzia Nodetool.
Aby włączyć uwierzytelnianie JMX dla systemu Cassandra:
- Utwórz i edytuj plik
cassandra.properties
:- Edytuj plik
/opt/apigee/customer/application/cassandra.properties
. Jeśli Plik nie istnieje, utwórz go. - 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
- Zapisz plik
cassandra.properties
. - Zmień właściciela pliku na
apigee:apigee
, zgodnie z poniższym przykładem: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
- Edytuj plik
- Tworzenie i edytowanie zasady
jmx_auth.sh
:- Jeśli plik nie istnieje, utwórz go w tej lokalizacji:
/opt/apigee/customer/application/jmx_auth.sh
- Dodaj do pliku te właściwości:
export CASS_JMX_USERNAME=JMX_USERNAME export CASS_JMX_PASSWORD=JMX_PASSWORD
- Zapisz plik
jmx_auth.sh
. - Źródło pliku:
source /opt/apigee/customer/application/jmx_auth.sh
- Jeśli plik nie istnieje, utwórz go w tej lokalizacji:
- Skopiuj i edytuj plik
jmxremote.password
:- Skopiuj poniższy plik z katalogu
$JAVA_HOME
do/opt/apigee/customer/application/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
- Edytuj plik
jmxremote.password
i dodaj nazwę użytkownika JMX oraz hasło przy użyciu tej składni:JMX_USERNAME JMX_PASSWORD
Gdzie JMX_USERNAME i JMX_PASSWORD to nazwa użytkownika JMX i ustawione wcześniej hasło.
- Sprawdź, czy plik należy do „apigee” oraz że 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
- Skopiuj poniższy plik z katalogu
- Skopiuj i edytuj plik
jmxremote.access
:- Skopiuj poniższy plik z katalogu
$JAVA_HOME
do/opt/apigee/customer/application/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.access
$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access
- Edytuj plik
jmxremote.access
i dodaj tę rolę:JMX_USERNAME readwrite
- Sprawdź, czy plik należy do „apigee” oraz że 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
- Skopiuj poniższy plik z katalogu
- Uruchom
configure
w systemie Cassandra:/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Uruchom ponownie Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 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:
- Otwórz plik
source/conf/casssandra-env.sh
. - Utwórz i edytuj plik
cassandra.properties
:- Edytuj plik
/opt/apigee/customer/application/cassandra.properties
. Jeśli Plik nie istnieje, utwórz go. - Dodaj do pliku te elementy:
conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
- Zapisz plik cassandra.properties.
- Zmień właściciela pliku na apigee:apigee zgodnie z poniższym przykładem:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- Edytuj plik
- W wierszu poleceń wygeneruj hasze SHA1 wybranych haseł, wpisując
echo -n 'Secret' | openssl dgst -sha1
- Ustaw hasła obok nazwy użytkownika w
$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
(utworzono w: w poprzedniej sekcji). - Skonfiguruj uruchomienie w systemie Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Uruchom ponownie Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 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 opartej na JMX z Cassandra. Aby włączyć JMX z SSL, musisz dostarczyć Cassandra klucz i certyfikat akceptuje połączenia JMX oparte na SSL. Konieczne jest również skonfigurowanie narzędzia Nodetool (oraz wszystkich innych narzędzi, komunikacji z Cassandra przez JMX) dla 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:
- Włącz JMX. W razie potrzeby włącz szyfrowanie hasła.
- Włącz uwierzytelnianie JMX dla Cassandra.
jak opisano powyżej. Sprawdź, czy narzędzie węzłów działa ze skonfigurowanym
nazwa użytkownika i hasło.
/opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
Przygotuj magazyn kluczy i magazyn zaufania.
Magazyn kluczy powinien zawierać klucz i certyfikat, i służy do konfigurowania serwera Cassandra. Jeśli magazyn kluczy zawiera wiele par kluczy, Cassandra używa pierwszej pary kluczy aby włączyć SSL.
Hasła do magazynu kluczy i klucza powinny być takie same (wartość domyślna podczas generowania klucza za pomocą narzędzia Keytool).
- Magazyn zaufania powinien zawierać tylko certyfikat i jest używany przez klienty (oparte na usłudze Apigee lub narzędzia nodetool) do łączenia się przez JMX.
Po sprawdzeniu powyższych wymagań:
- Umieść plik magazynu kluczy w obszarze
/opt/apigee/customer/application/apigee-cassandra/
. - 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
- Aby skonfigurować Cassandra dla JMX z SSL, wykonaj te czynności:
- Zatrzymaj węzeł Cassandra, wpisując
apigee-service apigee-cassandra stop
- Włącz protokół SSL w systemie Cassandra przez
otwieram plik
/opt/apigee/customer/application/cassandra.properties
i dodanie tych wierszy: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
- Zmień właściciela pliku na apigee:apigee zgodnie z poniższym przykładem:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- Skonfiguruj uruchomienie w systemie Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Uruchom ponownie Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Powtórz ten proces we wszystkich pozostałych węzłach Cassandra.
- Uruchom węzeł Cassandra, wpisując
apigee-service apigee-cassandra start
- Zatrzymaj węzeł Cassandra, wpisując
- Skonfiguruj polecenia Cassandra
apigee-service
. Podczas uruchamiania należy ustawić określone zmienne środowiskowe Poleceniaapigee-service
, 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 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)
- Opcja 2 (argumenty SSL przechowywane w zmiennych środowiskowych)
- Opcja 3 (argumenty SSL przekazywane bezpośrednio do
apigee-service
)
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
Skonfiguruj narzędzie węzłów. Nodetool wymaga przekazania do niego parametrów JMX. Są 2 sposoby możesz skonfigurować narzędzie nodetool do pracy z komponentem JMX z włączonym protokołem SSL, jak to opisano w opcje konfiguracji poniżej:
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 korzystający z narzędzia 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 Dokumentacja 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
Podana powyżej ścieżka do magazynu zaufania powinna być dostępna dla każdego uruchomionego użytkownika 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 -Dssl.enable=true -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
Przywracanie konfiguracji SSL
Jeśli musisz przywrócić konfiguracje SSL opisane w procedurze wykonaj te czynności:
- Zatrzymaj
apigee-cassandra
, wpisującapigee-service apigee-cassandra stop
- Usuń linię
conf_cassandra-env_com.sun.management.jmxremote.ssl=true
z plik/opt/apigee/customer/application/cassandra.properties
. - Zmień w komentarze 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”
- Rozpocznij
apigee-cassandra
, wpisując - Usuń zmienną środowiskową
CASS_JMX_SSL
, jeśli została ustawiona.unset CASS_JMX_SSL
- Sprawdź, czy polecenia oparte na
apigee-service
, takie jakring
,stop
,backup
i inni działają. - Przestań używać przełącznika
--ssl
za pomocą narzędzia węzłów
apigee-service apigee-cassandra start
Wyłącz uwierzytelnianie JMX dla Cassandra
Aby wyłączyć uwierzytelnianie JMX dla Cassandra:
- Edytuj stronę
/opt/apigee/customer/application/cassandra.properties
- Usuń z pliku ten wiersz:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- Skonfiguruj uruchomienie w systemie Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Uruchom ponownie Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 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/audit/audits 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 węzła to interfejs wiersza poleceń Cassandra, który zarządza
węzłów 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:
- Ogólne informacje o dzwonku (możliwe również dla pojedynczego węzła Cassandra): poszukaj
„W górę” i „Normalna” dla wszystkich węzłów.
nodetool [-u username -pw password] -h localhost ring
Nazwa użytkownika i hasło musisz podać tylko wtedy, gdy włączono 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
- 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
- Stan serwera Thrift (interfejs API klienta wyświetlania).
nodetool [-u username -pw password] -h localhost statusthrift
Dane wyjściowe powyższego polecenia wyglądają tak:
running
- 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. W tej sekcji znajdziesz omówienie jak uzyskać dostęp do konsoli i wykorzystać ją do wykonywania podstawowych funkcji monitorowania. Więcej szczegółów informacji na temat korzystania z konsoli zarządzania można znaleźć w sekcji Konsola zarządzania siecią 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 przez ten port domyślny, 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 Plik konfiguracji Edge. Więcej informacji: Dokumentacja pliku konfiguracji Edge.
Monitorowanie kolejek i wiadomości
W lewym panelu użytkownika przejdź do Java-Broker > wirtualnehosty > . 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 wiadomościach dostarczonych, znajdujących się w kolejce, częstotliwości wiadomości itd.
Wyświetlanie i pobieranie plików dziennika
W lewym panelu użytkownika przejdź do Java-Broker > brokerzy > W głównym widoku szczegółów interfejsu, możesz wyświetlać szczegóły pliku dziennika i pobierać pliki dziennika.
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 można znaleźć w Dokumentacja interfejsu Apache Qpid Broker API.
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"
Apache ZooKeeper
Sprawdź status ZooKeeper
- Sprawdź, czy proces ZooKeeper jest uruchomiony. ZooKeeper zapisuje plik PID w
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
- Przetestuj porty ZooKeeper, aby upewnić się, że można nawiązać połączenie TCP z portami 2181 i 3888 na każdym serwerze ZooKeeper.
- Upewnij się, że możesz odczytywać wartości z bazy danych ZooKeeper. Połącz za pomocą ZooKeeper
bibliotekę klienta (
/opt/apigee/apigee-zookeeper/bin/zkCli.sh
) i odczytać wartość z bazy danych. - 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 przez port 2181 przy użyciu narzędzia netcat (nc) lub telnet.
Więcej informacji o poleceniach ZooKeeper znajdziesz w dokumentacji poleceń Apache ZooKeeper.
Na przykład:
srvr
: zawiera pełne informacje o serwerze.stat
: wyświetla zwięzłe informacje o serwerze i połączonych klientach.
Do portu ZooKeeper można wysyłać te polecenia:
- Uruchom czteroliterowe polecenie ruok, aby sprawdzić, czy serwer działa w stanie innym niż błąd. O
pomyślna odpowiedź zwraca „imok”.
echo ruok | nc host 2181
Zwraca:
imok
- Uruchom czteroliterowe polecenie
stat
, aby wyświetlić listę wydajności serwera statystyki 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
- Jeśli parametr netcat (nc) jest niedostępny, zamiast niego możesz użyć Pythona. Utwórz plik
o nazwie
zookeeper.py
, która 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. W inne słowa, poszukaj konkretnego wyszukiwania, które zwraca właściwy wynik.
- Aby wysłać zapytanie do wpisu, użyj reguły
ldapsearch
(yum install openldap-clients
) 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
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
- 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, co pomaga ograniczyć liczbę dostępu do dysku
a tym samym zwiększyć wydajność systemu. Monitorowanie i dostrajanie rozmiaru pamięci podręcznej w
Serwer OpenLDAP może mieć znaczny wpływ na wydajność serwera katalogowego. Możesz wyświetlić dziennik
(opt/apigee/var/log
) w celu uzyskania informacji o pamięci podręcznej.