В этом документе описаны методы мониторинга компонентов, поддерживаемых локальным развертыванием Apigee Edge.
Обзор
Edge поддерживает несколько способов получения подробной информации об услугах, а также проверки их статуса. В следующей таблице перечислены типы проверок, которые вы можете выполнить для каждой подходящей службы:
API управления | |||||||
Услуга | Использование памяти [JMX * ] | Сервисная проверка | Статус пользователя/организации/развертывания | статус | Проверка базы данных | Статус apigee-service | apigee-monit ** |
Сервер управления | |||||||
Процессор сообщений | |||||||
Постгрес | |||||||
Qpid | |||||||
Маршрутизатор | |||||||
Дополнительная информация | Дополнительная информация | Дополнительная информация | Дополнительная информация | Дополнительная информация | Дополнительная информация | Дополнительная информация | |
* Прежде чем вы сможете использовать JMX, вы должны включить его, как описано в разделе «Включение JMX» . ** Служба |
Порты мониторинга JMX и Management API
Каждый компонент поддерживает вызовы мониторинга JMX и Management API на разных портах. В следующей таблице перечислены порты JMX и Management API для каждого типа сервера:
Компонент | JMX-порт | Порт API управления |
---|---|---|
Сервер управления | 1099 | 8080 |
Маршрутизатор | 1100 | 8081 |
Процессор сообщений | 1101 | 8082 |
Qpid | 1102 | 8083 |
Постгрес | 1103 | 8084 |
Используйте JMX для мониторинга
Процессы мониторинга для сервера управления, процессора сообщений, Qpid и Postgres используют JMX. Однако JMX по умолчанию включен только для Cassandra и отключен по умолчанию для всех остальных компонентов Edge. Поэтому вам необходимо включить JMX индивидуально для каждого компонента, прежде чем вы сможете отслеживать их.
Аутентификация JMX не включена по умолчанию. Вы можете включить аутентификацию JMX для всех компонентов. Для Cassandra используйте инструкции в разделе Включение аутентификации JMX для Cassandra .
Включить JMX
JMX включен по умолчанию только для Cassandra и отключен по умолчанию для всех остальных компонентов Edge. В этом разделе описывается, как включить JMX для других компонентов Edge.
Чтобы включить JMX:
- Отредактируйте файл конфигурации компонента. Этот файл находится по адресу
opt/apigee/edge- component_name /bin/start
. В производственных средах эти файлы конфигурации будут находиться на разных машинах.Выберите одно из следующих расположений файлов на каждом сервере:
- Сервер управления:
/opt/apigee/edge-management-server/bin/start
- Процессор сообщений:
/opt/apigee/edge-message-processor/bin/start
- Postgres:
/opt/apigee/edge-postgres-server/bin/start
- Qpid:
/opt/apigee/edge-qpid-server/bin/start
- Маршрутизатор:
/opt/apigee/edge-router/bin/start
Например, файл конфигурации Сервера управления на его сервере находится по адресу
/opt/apigee/edge-management-server/bin/start
. - Сервер управления:
- Добавьте следующие параметры
com.sun.management.jmxremote
в строкуexec
, запускающую компонент:-Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=port_number \ -Dcom.sun.management.jmxremote.local.only=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false
Где port_number — это порт JMX для службы. Чтобы получить номер порта JMX вашей службы, см. раздел Порты мониторинга JMX и Management API .
Например, чтобы включить JMX на Сервере управления, добавьте в файл конфигурации Сервера управления следующее:
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts \ -Djava.security.auth.login.config=$conf_path/jaas.config \ -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path \ -Ddata.dir=$data_dir \ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=1099 \ -Dcom.sun.management.jmxremote.local.only=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ $* $debug_options com.apigee.kernel.MicroKernel
В этом примере указан порт 1099 для сервера управления. Как говорилось ранее, каждая служба имеет свой номер порта.
Отредактированная строка в файле конфигурации выглядит следующим образом:
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -Djava.security.auth.login.config=$conf_path/jaas.config -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false $* $debug_options com.apigee.kernel.MicroKernel
- Сохраните файл конфигурации.
- Перезапустите компонент командой
restart
.Например, чтобы перезапустить Сервер управления, выполните следующую команду:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
Аутентификация для JMX не включена по умолчанию. Вы можете включить аутентификацию JMX для всех компонентов, как описано в разделе Включение аутентификации JMX . Чтобы включить аутентификацию JMX для Cassandra, см. раздел Включение аутентификации JMX для Cassandra .
Включить аутентификацию JMX
Аутентификация JMX не включена по умолчанию. Вы можете включить аутентификацию JMX для всех компонентов. Для Cassandra используйте инструкции в разделе Включение аутентификации JMX для Cassandra.
Чтобы включить аутентификацию JMX, выполните следующее change_jmx_auth
на всех узлах:
/opt/apigee/apigee-service/bin/apigee-service component_name change_jmx_auth [options|-f config_file]
Где:
- component является одним из следующих:
-
edge-management-server
-
edge-message-processor
-
edge-postgres-server
-
edge-qpid-server
-
edge-router
-
- options указывают следующее:
-
-u username
-
-p password
-
-e [y|n]
(включить или отключить)
-
- config_file указывает расположение файла конфигурации, в котором вы определяете следующее:
-
JMX_USERNAME= username
-
JMX_ENABLED=y|n
-
JMX_PASSWORD= password
(если он не установлен или не передан с помощью-p
, вам будет предложено)
-
Вы можете использовать параметры командной строки или файл конфигурации, чтобы определить имя пользователя, пароль и состояние включения/выключения. Вы не указываете ни набор опций, ни файл конфигурации.
В следующем примере включается аутентификация JMX для сервера управления с использованием параметров командной строки:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y
В следующем примере используется файл конфигурации, а не параметры командной строки:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f /tmp/my-config-file
Если вы используете Edge на нескольких узлах, запустите команду на всех узлах, указав одно и то же имя пользователя и пароль.
Чтобы отключить аутентификацию JMX в командной строке, используйте опцию «-en», как показано в следующем примере:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n
Мониторинг с помощью JConsole
Используйте JConsole (JMX-совместимый инструмент) для управления и мониторинга проверки работоспособности и обработки статистики. С помощью JConsole вы можете использовать статистику JMX, предоставляемую вашими серверами, и отображать ее в графическом интерфейсе. Дополнительные сведения см. в разделе Использование JConsole .
JConsole использует следующий URL-адрес службы для мониторинга атрибутов JMX (MBeans), предлагаемых через JMX:
service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi
Где:
- IP_address — это IP-адрес сервера, который вы хотите отслеживать.
- port_number — это номер порта JMX сервера, который вы хотите отслеживать.
Например, для мониторинга сервера управления введите следующую команду (при условии, что IP-адрес сервера — 216.3.128.12):
service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi
Обратите внимание, что в этом примере указан порт 1099, который является портом JMX сервера управления. Другие порты см. в разделе Порты мониторинга JMX и Management API .
В следующей таблице показана общая статистика JMX:
JMX-MBean-компоненты | Атрибуты JMX |
---|---|
Память | КучаПамятьИспользование |
NonHeapMemoryUsage | |
Использование | |
Мониторинг с помощью Management API
Edge включает в себя несколько API-интерфейсов, которые вы можете использовать для проверки служб на ваших серверах, а также для проверки ваших пользователей, организаций и развертываний. В этом разделе описаны эти API.
Выполните сервисные проверки
API управления предоставляет несколько конечных точек для мониторинга и диагностики проблем с вашими службами. Эти конечные точки включают в себя:
Конечная точка | Описание |
---|---|
/servers/self/up | Проверяет, запущена ли служба. Этот вызов API не требует аутентификации. Если служба запущена, эта конечная точка возвращает следующий ответ: <ServerField> <Up>true</Up> </ServerField> Если служба не запущена, вы получите ответ, подобный следующему (в зависимости от того, какая это служба и как вы ее проверяли): curl: Failed connect to localhost:port_number; Connection refused |
/servers/self | Возвращает информацию о сервисе, в том числе:
Этот вызов API требует от вас аутентификации с использованием учетных данных администратора Apigee. |
Чтобы использовать эти конечные точки, вызовите такую утилиту, как curl
с командами, использующими следующий синтаксис:
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]"
Где:
- host — это IP-адрес сервера, который вы хотите проверить. Если вы вошли на сервер, вы можете использовать «localhost»; в противном случае укажите IP-адрес сервера, а также имя пользователя и пароль.
- port_number — это порт Management API для сервера, который вы хотите проверить. Это отдельный порт для каждого типа компонента. Например, порт Management API сервера управления — 8080. Список номеров портов Management API, которые можно использовать, см. в разделе Порты мониторинга JMX и Management API.
Чтобы изменить формат ответа, вы можете указать заголовок Accept
как «application/json» или «application/xml».
В следующем примере получен статус маршрутизатора на локальном хосте (порт 8081):
curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"
В следующем примере получаются сведения об процессоре сообщений по адресу 216.3.128.12 (порт 8082):
curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password -H "Accept: application/xml"
Мониторинг пользователей, организации и состояния развертывания
Вы можете использовать Management API для мониторинга пользователей, организации и состояния развертывания ваших прокси-серверов на серверах управления и процессорах сообщений, введя следующие команды:
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
Где port_number — 8080 для сервера управления или 8082 для процессора сообщений.
Для этого вызова вам потребуется пройти аутентификацию с использованием имени пользователя и пароля системного администратора.
Сервер должен возвращать статус «развернуто» для всех вызовов. Если это не помогло, сделайте следующее:
- Проверьте журналы сервера на наличие ошибок. Журналы находятся по адресу:
- Сервер управления:
opt/apigee/var/log/edge-management-server
- Процессор сообщений:
opt/apigee/var/log/edge-message-processor
- Сервер управления:
- Вызовите сервер, чтобы проверить, правильно ли он работает.
- Удалите сервер из ELB и затем перезапустите его:
/opt/apigee/apigee-service/bin/apigee-service service_name restart
Где service_name :
-
edge-management-server
-
edge-message-processor
-
Проверьте статус с помощью команды apigee-service
Вы можете устранить неполадки в службах Edge, используя команду apigee-service
, когда вы вошли на сервер, на котором работает служба.
Чтобы проверить статус службы с помощью apigee-service
:
- Войдите на сервер и выполните следующую команду:
/opt/apigee/apigee-service/bin/apigee-service service_name status
Где service_name — одно из следующих:
- Сервер управления:
edge-management-server
- Процессор сообщений:
edge-message-processor
- Postgres:
edge-postgres-server
- Qpid:
edge-qpid-server
- Маршрутизатор:
edge-router
Например:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
- Сервер управления:
- Если служба не запущена, запустите ее:
/opt/apigee/apigee-service/bin/apigee-service service_name start
- После перезапуска службы убедитесь, что она работает, либо с помощью команды
apigee-service status
, которую вы использовали ранее, либо с помощью API управления, описанного в разделе Мониторинг с API управления .Например:
curl -v http://localhost:port_number/v1/servers/self/up
Где port_number — это порт Management API для службы.
В этом примере предполагается, что вы вошли на сервер и можете использовать «localhost» в качестве имени хоста. Чтобы проверить статус удаленно с помощью Management API, вы должны указать IP-адрес сервера и включить имя пользователя и пароль системного администратора в свой вызов API.
Постгрес-мониторинг
Postgres поддерживает несколько утилит, которые можно использовать для проверки его статуса. Эти утилиты описаны в следующих разделах.
Проверка организаций и сред в Postgres
Вы можете проверить имена организаций и сред, зарегистрированных на сервере Postgres, выполнив следующую команду curl
:
curl -v http://postgres_IP:8084/v1/servers/self/organizations
Система должна отображать название организации и среды.
Проверьте статус аналитики
Вы можете проверить состояние серверов аналитики Postgres и Qpid, введя следующую команду curl
:
curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus
Система должна отображать статус успеха для всех серверов аналитики, как показано в следующем примере:
{ "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" }
База данных PostgreSQL
В этом разделе описаны методы, которые вы можете использовать специально для мониторинга базы данных Postgres.
Используйте скрипт check_postgres.pl
Для мониторинга базы данных PostgreSQL вы можете использовать стандартный скрипт мониторинга check_postgres.pl
. Для получения дополнительной информации см. http://bucardo.org/wiki/Check_postgres .
Прежде чем запустить скрипт:
- Вы должны установить сценарий check_postgres.pl на каждом узле Postgres.
- Убедитесь, что вы установили
perl-Time-HiRes.x86_64
, модуль Perl, который реализует таймеры сигнализации высокого разрешения, сна, gettimeofday и интервалов. Например, вы можете установить его с помощью следующей команды:
yum install perl-Time-HiRes.x86_64
- CentOS 7: перед использованием check_postgres.pl в CentOS v7 установите RPM
perl-Data-Dumper.x86_64
.
Вывод check_postgres.pl
Вывод вызовов API с использованием check_postgres.pl
по умолчанию совместим с Nagios. После установки скрипта выполните следующие проверки:
- Проверьте размер базы данных:
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'
- Проверьте количество входящих подключений к базе данных и сравните с максимально разрешенными подключениями:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
- Проверьте, запущена ли и доступна ли база данных:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
- Проверьте свободное место на диске:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
- Проверьте количество организаций и сред, включенных в узел 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
Запустите проверку базы данных
Вы можете убедиться, что в базе данных PostgreSQL созданы правильные таблицы. Войдите в базу данных PostgreSQL с помощью следующей команды:
psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee
Затем запустите:
\d analytics."org.env.fact"
Проверьте состояние работоспособности процесса postgres
Вы можете выполнить проверку API на машине Postgres, вызвав следующую команду curl
:
curl -v http://postgres_IP:8084/v1/servers/self/health
Эта команда возвращает статус ACTIVE
, когда процесс postgres активен. Если процесс Postgres не запущен и не работает, он возвращает статус INACTIVE
.
Ресурсы Postgres
Дополнительные сведения о мониторинге службы Postgres см. в следующих разделах:
- http://www.postgresql.org/docs/9.0/static/monitoring.html
- http://www.postgresql.org/docs/9.0/static/diskusage.html
- http://bucardo.org/check_postgres/check_postgres.pl.html
Апач Кассандра
JMX включен для Cassandra по умолчанию, и удаленный доступ JMX к Cassandra не требует пароля.
Включить аутентификацию JMX для Cassandra
Вы можете включить аутентификацию JMX для Cassandra. После этого вам потребуется передавать имя пользователя и пароль для всех вызовов утилиты nodetool.
Чтобы включить аутентификацию JMX для Cassandra:
- Создайте и отредактируйте файл
cassandra.properties
:- Отредактируйте файл
/opt/apigee/customer/application/cassandra.properties
. Если файл не существует, создайте его. - Добавьте в файл следующее:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true conf_cassandra-env_com.sun.management.jmxremote.password.file=${APIGEE_ROOT}/data/apigee-cassandra/jmxremote.password conf_cassandra-env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/data/apigee-cassandra/jmxremote.access
- Сохраните файл
cassandra.properties
. - Измените владельца файла на
apigee:apigee
, как показано в следующем примере:chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
Дополнительные сведения об использовании файлов свойств для установки токенов см. в разделе Как настроить Edge .
- Отредактируйте файл
- Создайте и отредактируйте
jmx_auth.sh
:- Создайте файл в следующем месте, если он не существует:
/opt/apigee/customer/application/jmx_auth.sh
- Добавьте в файл следующие свойства:
export CASS_JMX_USERNAME=JMX_USERNAME export CASS_JMX_PASSWORD=JMX_PASSWORD
- Сохраните файл
jmx_auth.sh
. - Источник файла:
source /opt/apigee/customer/application/jmx_auth.sh
- Создайте файл в следующем месте, если он не существует:
- Скопируйте и отредактируйте файл
jmxremote.password
:- Скопируйте следующий файл из каталога
$JAVA_HOME
в/opt/apigee/data/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password
- Отредактируйте файл
jmxremote.password
и добавьте свое имя пользователя и пароль JMX, используя следующий синтаксис:JMX_USERNAME JMX_PASSWORD
Где JMX_USERNAME и JMX_PASSWORD — это имя пользователя и пароль JMX, которые вы установили ранее.
- Убедитесь, что файл принадлежит «apigee» и что файловый режим равен 400:
chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.password
chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.password
- Скопируйте следующий файл из каталога
- Скопируйте и отредактируйте файл
jmxremote.access
:- Скопируйте следующий файл из каталога
$JAVA_HOME
в/opt/apigee/data/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access
- Отредактируйте файл jmxremote.access и добавьте следующую роль:
JMX_USERNAME readwrite
- Убедитесь, что файл принадлежит «apigee» и что файловый режим равен 400:
chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.access
chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.access
- Скопируйте следующий файл из каталога
- Запустите
configure
на Кассандре:/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Перезапустите Кассандру:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Повторите этот процесс на всех остальных узлах Cassandra.
Включить шифрование пароля JMX
Чтобы включить шифрование пароля JMX, выполните следующие действия:
- Откройте файл
source/conf/casssandra-env.sh
. - Раскомментируйте следующие строки в файле:
-
JVM_OPTS="$JVM_OPTS -Djava.security.auth.login.config={T}conf_cassandra-env_java.security.auth.login.config{/T}"
-
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.login.config=ApigeeSecureFileLoginModule"
-
- В командной строке сгенерируйте хэши SHA1 желаемых паролей, введя
echo -n 'Secret' | openssl dgst -sha1
- Установите пароль(и) для имени пользователя в
jmxremote.password
. - Измените файл
cassandra-env.sh
обратно на чтение только после обновления.
Включить JMX с SSL для Cassandra
Включение JMX с SSL обеспечивает дополнительную безопасность и шифрование для связи на основе JMX с Cassandra. Чтобы включить JMX с SSL, вам необходимо предоставить Cassandra ключ и сертификат для приема соединений JMX на основе SSL. Вам также необходимо настроить nodetool (и любые другие инструменты, которые взаимодействуют с Cassandra через JMX) для SSL.
JMX с поддержкой SSL поддерживает как открытые текстовые, так и зашифрованные пароли JMX.
Чтобы включить JMX с SSL для Cassandra, используйте следующую процедуру:
- Включите JMX . При необходимости включите шифрование пароля.
- Включите аутентификацию JMX для Cassandra . как описано выше. Убедитесь, что nodetool работает с настроенным именем пользователя и паролем.
/opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
Подготовьте хранилище ключей и хранилище доверенных сертификатов.
Хранилище ключей должно содержать ключ и сертификат и используется для настройки сервера Cassandra. Если хранилище ключей содержит несколько пар ключей, Cassandra использует первую пару ключей для включения SSL.
Обратите внимание, что пароли для хранилища ключей и ключа должны быть одинаковыми (по умолчанию при создании ключа с помощью keytool).
- Хранилище доверенных сертификатов должно содержать только сертификат и используется клиентами (командами на основе службы API или nodetool) для подключения через JMX.
После проверки вышеуказанных требований:
- Поместите файл хранилища ключей в
/opt/apigee/data/apigee-cassandra
. - Убедитесь, что файл хранилища ключей доступен для чтения пользователю Apigee, только введя
chown apigee:apigee /opt/apigee/data/apigee-cassandra/keystore.node1 chmod 400 /opt/apigee/data/apigee-cassandra/keystore.node1
- Настройте Cassandra для JMX с SSL, выполнив следующие шаги:
- Остановите узел Кассандра, введя
apigee-service apigee-cassandra stop
- Включите SSL в Cassandra, открыв файл
/opt/apigee/customer/application/cassandra.properties
и добавив следующую строку:conf_cassandra-env_com.sun.management.jmxremote.ssl=true
Файл должен принадлежать
apigee:apigee
. - Включите конфигурацию, связанную с SSL, в Cassandra следующим образом. Откройте файл
/opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh
и раскомментируйте следующие строки, при необходимости изменив путь/opt/apigee/data/apigee-cassandra/keystore.node1
и пароль хранилища ключей. .JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/opt/apigee/data/apigee-cassandra/keystore.node1" JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=keystore-password" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true"
Убедитесь, что файл принадлежитapigee:apigee
. - Запустите узел Cassandra, введя
apigee-service apigee-cassandra start
- Остановите узел Кассандра, введя
- Настройте команды
apigee-service
Cassandra. Вам необходимо установить определенные переменные среды при запуске командapigee-service
, включая приведенные ниже:apigee-service apigee-cassandra stop apigee-service apigee-cassandra wait_for_ready apigee-service apigee-cassandra ring apigee-service apigee-cassandra backup
Существует несколько вариантов настройки
apigee-service
для аутентификации JMX и SSL. Выберите вариант, исходя из удобства использования и ваших мер безопасности.- Вариант 1 (аргументы SSL хранятся в файле)
- Вариант 2 (аргументы SSL хранятся в переменных среды)
- Вариант 3 (аргументы SSL передаются непосредственно в
apigee-service
)
Вариант 1 (аргументы SSL хранятся в файле)
Установите следующие переменные среды:
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
Создайте файл в домашнем каталоге пользователя Apigee (
/opt/apigee
).$HOME/.cassandra/nodetool-ssl.properties
Отредактируйте файл и добавьте следующие строки:
-Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true
Убедитесь, что файл доверенного лица доступен для чтения пользователю Apigee.
Выполните следующую команду
apigee-service
. Если он работает без ошибок, ваши конфигурации верны.apigee-service apigee-cassandra ring
Вариант 2 (аргументы SSL хранятся в переменных среды)
Установите следующие переменные среды:
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>
Выполните следующую команду
apigee-service
. Если он работает без ошибок, ваши конфигурации верны.apigee-service apigee-cassandra ring
Вариант 3 (аргументы SSL передаются непосредственно в
apigee-service
)Запустите любую команду
apigee-service
подобную приведенной ниже. Вам не нужно настраивать какие-либо переменные среды.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
Настройте nodetool. Nodetool требует, чтобы ему были переданы параметры JMX. Существует два способа настроить nodetool для работы с JMX с поддержкой SSL, как описано в параметрах конфигурации ниже:
Параметры различаются способом передачи конфигураций, связанных с SSL, в nodetool. В обоих случаях пользователь, запускающий nodetool, должен иметь разрешения на ЧТЕНИЕ файла хранилища доверенных сертификатов. Выберите подходящий вариант, исходя из удобства использования и ваших мер безопасности.
Дополнительные сведения о параметрах nodetool см. в документации DataStax .
Вариант конфигурации 1
Создайте файл в домашнем каталоге пользователя, запускающего nodetool.
$HOME/.cassandra/nodetool-ssl.properties
Добавьте в файл следующие строки:
-Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true
Указанный выше путь к хранилищу доверенных сертификатов должен быть доступен любому пользователю, запустившему nodetool.
Запустите
nodetool
с опцией--ssl
./opt/apigee/apigee-cassandra/bin/nodetool --ssl -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
Вариант конфигурации 2
Запустите
nodetool
как одну команду с дополнительными параметрами, перечисленными ниже./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
Восстановить конфигурации SSL
Если вам необходимо отменить настройки SSL, описанные в процедуре выше, выполните следующие действия:
- Остановите
apigee-cassandra
, введяapigee-service apigee-cassandra stop
- Удалите строку
conf_cassandra-env_com.sun.management.jmxremote.ssl=true
из файла/opt/apigee/customer/application/cassandra.properties
. - Закомментируйте следующие строки в
/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”
- Запустите
apigee-cassandra
, введя - Удалите переменную среды
CASS_JMX_SSL
если она была установлена.unset CASS_JMX_SSL
- Убедитесь, что команды на основе
apigee-service
такие какring
,stop
,backup
и т. д., работают. - Прекратите использовать ключ
--ssl
с помощью nodetool
apigee-service apigee-cassandra start
Отключить аутентификацию JMX для Cassandra
Чтобы отключить аутентификацию JMX для Cassandra:
- Отредактируйте
/opt/apigee/customer/application/cassandra.properties
. - Удалите следующую строку в файле:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- Запустите настройку на Кассандре:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Перезапустите Кассандру:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Повторите этот процесс на всех остальных узлах Cassandra.
Используйте JConsole: отслеживайте статистику задач
Используйте JConsole и следующий URL-адрес службы для мониторинга атрибутов JMX (MBeans), предлагаемых через JMX:
service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi
Где IP_address — это IP-адрес сервера Cassandra.
Статистика Кассандры JMX
JMX-MBean-компоненты | Атрибуты JMX |
---|---|
ColumnFamilies/apprepo/environments СтолбецСемьи/apprepo/организации ColumnFamilies/apprepo/apiproxy_revisions ColumnFamilies/apprepo/apiproxyes ColumnFamilies/аудит/аудит ColumnFamilies/audit/audits_ref | Ожидающие задачи |
MemtableColumnsCount | |
Мемтабледатасизе | |
ReadCount | |
Недавнее чтениеLatencyMicros | |
TotalReadLatencyMicros | |
WriteCount | |
Недавние записиLatencyMicros | |
TotalWriteLatencyMicros | |
TotalDiskSpaceUsed | |
LiveDiskSpaceUsed | |
LiveSSTableCount | |
BloomFilterFalsePositives | |
НедавниеBloomFilterFalseRatio | |
BloomFilterFalseRatio |
Используйте nodetool для управления узлами кластера
Утилита nodetool — это интерфейс командной строки для Cassandra, который управляет узлами кластера. Утилиту можно найти по адресу /opt/apigee/apigee-cassandra/bin
.
Следующие вызовы могут быть выполнены на всех узлах кластера Cassandra:
- Общая информация о кольце (также возможна для одного узла Cassandra): найдите «Вверх» и «Нормальный» для всех узлов.
nodetool [-u username -pw password] -h localhost ring
Вам нужно будет передать свое имя пользователя и пароль только в том случае, если вы включили аутентификацию JMX для Cassandra .
Вывод приведенной выше команды выглядит, как показано ниже:
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
- Общая информация об узлах (вызов на узел)
nodetool [-u username -pw password] -h localhost info
Вывод приведенной выше команды выглядит следующим образом:
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
- Статус бережливого сервера (обслуживающий клиентский API)
nodetool [-u username -pw password] -h localhost statusthrift
Вывод приведенной выше команды выглядит следующим образом:
running
- Статус операций потоковой передачи данных : наблюдать за трафиком узлов cassandra:
nodetool [-u username -pw password] -h localhost netstats
Вывод приведенной выше команды выглядит следующим образом:
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
Дополнительные сведения об nodetool см. в разделе Об утилите nodetool .
Ресурс Кассандра
См. следующий URL-адрес: http://www.datastax.com/docs/1.0/operations/monitoring .
Хранитель зоопарка Апач
Проверьте статус ZooKeeper
- Убедитесь, что процесс ZooKeeper запущен. ZooKeeper записывает PID-файл в
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
. - Проверьте порты ZooKeeper, чтобы убедиться, что вы можете установить TCP-соединение с портами 2181 и 3888 на каждом сервере ZooKeeper.
- Убедитесь, что вы можете читать значения из базы данных ZooKeeper. Подключитесь с помощью клиентской библиотеки ZooKeeper (или
/opt/apigee/apigee-zookeeper/bin/zkCli.sh
) и считайте значение из базы данных. - Проверьте статус:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
Используйте слова из четырех букв ZooKeeper
ZooKeeper можно отслеживать с помощью небольшого набора команд (четырехбуквенных слов), которые отправляются на порт 2181 с помощью netcat (nc) или telnet.
Дополнительную информацию о командах ZooKeeper см. в: Справочнике команд Apache ZooKeeper .
Например:
-
srvr
: выводит полную информацию о сервере. -
stat
: выводит краткую информацию о сервере и подключенных клиентах.
На порт ZooKeeper можно подать следующие команды:
- Запустите четырехбуквенную команду ruok, чтобы проверить, работает ли сервер в исправном состоянии. Успешный ответ возвращает «imok».
echo ruok | nc host 2181
Возврат:
imok
- Запустите четырехбуквенную команду
stat
, чтобы просмотреть статистику производительности сервера и подключенных клиентов:echo stat | nc host 2181
Возврат:
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
- Если netcat (nc) недоступен, в качестве альтернативы можно использовать python. Создайте файл
zookeeper.py
, содержащий следующее: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)
Теперь запустите следующие строки Python:
python zookeeper.py 192.168.124.201 ruok
python zookeeper.py 192.168.124.201 stat
проверка уровня LDAP
Вы можете отслеживать OpenLDAP, чтобы увидеть, правильно ли обслуживаются конкретные запросы. Другими словами, проверьте конкретный поиск, который возвращает правильный результат.
- Используйте
ldapsearch
(yum install openldap-clients
), чтобы запросить запись системного администратора. Эта запись используется для аутентификации всех вызовов 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
Затем вам будет предложено ввести пароль администратора LDAP:
Enter LDAP Password:
После ввода пароля вы увидите ответ в виде:
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
- Проверьте, подключен ли сервер управления к LDAP, с помощью следующей команды:
curl -u userEMail:password http://localhost:8080/v1/users/ADMIN
Возврат:
{ "emailId" : ADMIN, "firstName" : "admin", "lastName" : "admin" }
Вы также можете отслеживать кэши OpenLDAP, что помогает уменьшить количество обращений к диску и, следовательно, повысить производительность системы. Мониторинг и последующая настройка размера кэша на сервере OpenLDAP могут сильно повлиять на производительность сервера каталогов. Вы можете просмотреть файлы журналов ( opt/apigee/var/log
), чтобы получить информацию о кеше.