Edge for Private Cloud v4.19.01
В этом документе описаны методы мониторинга компонентов, поддерживаемых локальным развертыванием Apigee Edge.
Обзор
В Edge можно несколькими способами получать информацию о сервисах и проверять их статус. В таблице ниже перечислены типы проверок, которые можно выполнять для каждого подходящего сервиса.
| Mgmt API | |||||||
| Сервис | Использование памяти [JMX*] | Проверка сервиса | Статус пользователя/организации/ развертывания | axstatus | Проверка базы данных | Статус apigee-service |
apigee-monit** |
| Сервер управления | |||||||
| Message Processor | |||||||
| Postgres | |||||||
| Qpid | |||||||
| Маршрутизатор | |||||||
| Подробнее… | Подробнее… | Подробнее… | Подробнее… | Подробнее… | Подробнее… | Подробнее… | |
|
* Чтобы использовать JMX, его нужно включить, как описано в разделе Как включить JMX. ** Сервис |
|||||||
Порты мониторинга JMX и Management API
Каждый компонент поддерживает вызовы мониторинга JMX и Management API на разных портах. В таблице ниже перечислены порты JMX и Management API для каждого типа сервера.
| Компонент | Порт JMX | Порт Management API |
|---|---|---|
| Сервер управления | 1099 | 8080 |
| Маршрутизатор | 1100 | 8081 |
| Message Processor | 1101 | 8082 |
| Qpid | 1102 | 8083 |
| Postgres | 1103 | 8084 |
Как использовать JMX для мониторинга
Процессы мониторинга для сервера управления, Message Processor, 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 change_jmx_auth [options|-f config_file]
Где:
- component – один из следующих вариантов:
edge-management-serveredge-message-processoredge-postgres-serveredge-qpid-serveredge-router
- options содержит следующие сведения:
-u username-p password-e [y|n](включить или отключить)
- config_file – это путь к файлу конфигурации, в котором можно задать следующие параметры:
JMX_USERNAME=usernameJMX_ENABLED=y|nJMX_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 в командной строке, используйте параметр "-e n", как показано в следующем примере:
/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.
| Объекты MBean JMX | Атрибуты JMX |
|---|---|
|
Память |
HeapMemoryUsage |
|
NonHeapMemoryUsage |
|
|
Использование |
|
Мониторинг с помощью Management API
Edge включает несколько API, которые можно использовать для проверки сервисов на серверах, а также для проверки пользователей, организаций и развертываний. В этом разделе описаны эти API.
Как проверить работу сервиса
Management 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.
В следующем примере показано, как получить статус маршрутизатора на localhost (порт 8081):
curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"
В следующем примере показано, как получить информацию о Message Processor по адресу 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:passwordcurl 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-serveredge-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, которую вы использовали ранее, или Management API, описанный в разделе Мониторинг с помощью Management API.Пример:
curl -v http://localhost:port_number/v1/servers/self/up
где port_number – порт Management API для сервиса.
В этом примере предполагается, что вы вошли на сервер и можете использовать "localhost" в качестве имени хоста. Чтобы проверить статус удаленно с помощью Management API, необходимо указать IP-адрес сервера и включить в вызов API имя пользователя и пароль системного администратора.
Мониторинг Postgres
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 7 установите 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
Если процесс postgres активен, эта команда возвращает статус ACTIVE. Если процесс 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
Apache Cassandra
JMX включен по умолчанию для Cassandra, и для удаленного доступа к Cassandra через JMX не требуется пароль.
Как включить аутентификацию 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в Cassandra:/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Перезапустите Cassandra:
/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 для Cassandra
Чтобы отключить аутентификацию JMX для Cassandra:
- Изменить набор "
/opt/apigee/customer/application/cassandra.properties". - Удалите из файла следующую строку:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- Выполните настройку Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Перезапустите Cassandra:
/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 Cassandra
| Объекты MBean JMX | Атрибуты 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 |
Как управлять узлами кластера с помощью nodetool
Утилита nodetool – это интерфейс командной строки для Cassandra, который управляет узлами кластера. Утилиту можно найти на странице /opt/apigee/apigee-cassandra/bin.
На всех узлах кластера Cassandra можно выполнять следующие вызовы:
- Общая информация о кольце (также можно использовать для одного узла Cassandra): убедитесь, что для всех узлов указаны значения "Up" (Включено) и "Normal" (Нормально).
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
- Статус сервера Thrift (обслуживающего клиентский 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.
Ресурс Cassandra
Дополнительную информацию можно найти на странице http://www.datastax.com/docs/1.0/operations/monitoring.
Apache ZooKeeper
Как проверить статус 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).