Как отслеживать

Edge for Private Cloud 4.19.01

В этом документе описываются методы мониторинга компонентов, поддерживаемые локальным развертыванием Apigee Edge.

Обзор

В Edge есть несколько способов получить информацию о сервисах и проверить их статус. В таблице ниже перечислены типы проверок, которые можно выполнять для каждого подходящего сервиса.

Mgmt API
Сервис Использование памяти [JMX*] Проверка сервиса Статус пользователя, организации или развертывания axstatus Проверка базы данных apigee-service: статус apigee-monit**
Сервер управления
Message Processor
Postgres
Qpid
Маршрутизатор
Подробнее… Подробнее… Подробнее… Подробнее… Подробнее… Подробнее… Подробнее…

* Чтобы использовать JMX, необходимо включить эту технологию, как описано в разделе Как включить JMX.

** Сервис apigee-monit проверяет, работает ли компонент, и пытается перезапустить его, если нет. Подробную информацию можно найти в статье Самовосстановление с помощью apigee-monit.

Порты мониторинга 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 для мониторинга

Процессы мониторинга для сервера управления, процессора сообщений, Qpid и Postgres используют JMX. Однако JMX включен по умолчанию только для Cassandra и отключен по умолчанию для всех остальных компонентов Edge. Поэтому, прежде чем начать мониторинг, необходимо включить JMX для каждого компонента отдельно.

Аутентификация JMX по умолчанию отключена. Вы можете включить аутентификацию JMX для всех компонентов. Для Cassandra используйте инструкции в разделе Включение аутентификации JMX для Cassandra.

Включить JMX

JMX включен по умолчанию только для Cassandra и отключен по умолчанию для всех остальных компонентов Edge. В этом разделе описывается, как включить JMX для других компонентов Edge.

Чтобы включить JMX:

  1. Измените файл конфигурации компонента. Этот файл находится в каталоге opt/apigee/edge-component_name/bin/start. В рабочей среде эти файлы конфигурации будут находиться на разных компьютерах.

    Выберите одно из следующих расположений файлов на каждом сервере:

    • Сервер управления: /opt/apigee/edge-management-server/bin/start
    • Message Processor: /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.

  2. Добавьте следующие параметры 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
  3. Сохраните файл конфигурации.
  4. Перезапустите компонент с помощью команды 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-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 в командной строке, используйте параметр -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.

JMX MBeans Атрибуты JMX

Память

HeapMemoryUsage

NonHeapMemoryUsage

Использование

Как отслеживать использование API с помощью 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

Возвращает информацию о сервисе, в том числе:

  • Свойства конфигурации
  • Время начала и время работы
  • Сведения о сборке, RPM и UUID
  • Внутреннее и внешнее имя хоста и IP-адрес.
  • Регион и блок
  • Свойство <isUp>, указывающее, работает ли сервис.

Для этого вызова 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"

В следующем примере запрашивается информация о 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:password
curl http://host:port_number/v1/organizations -u sysAdminEmail:password
curl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password

где port_number – это 8080 для Management Server или 8082 для Message Processor.

Для этого вызова требуется аутентификация с использованием имени пользователя и пароля системного администратора.

Сервер должен возвращать статус deployed (развернуто) для всех вызовов. Если это не помогло, сделайте следующее:

  1. Проверьте, зафиксированы ли ошибки в журналах сервера. Журналы находятся по следующему пути:
    • Сервер управления: opt/apigee/var/log/edge-management-server
    • Message Processor: opt/apigee/var/log/edge-message-processor
  2. Выполните вызов сервера, чтобы проверить, правильно ли он работает.
  3. Удалите сервер из 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:

  1. Войдите на сервер и выполните следующую команду:
    /opt/apigee/apigee-service/bin/apigee-service service_name status

    где service_name – одно из следующих значений:

    • Сервер управления: edge-management-server
    • Message Processor: edge-message-processor
    • Postgres: edge-postgres-server
    • Qpid: edge-qpid-server
    • Маршрутизатор: edge-router

    Пример:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
  2. Если служба не запущена, запустите ее:
    /opt/apigee/apigee-service/bin/apigee-service service_name start
  3. После перезапуска сервиса проверьте, работает ли он, с помощью команды 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.

Перед запуском скрипта:

  1. Скрипт check_postgres.pl необходимо установить на каждом узле Postgres.
  2. Убедитесь, что у вас установлен модуль Perl perl-Time-HiRes.x86_64, который реализует будильник, спящий режим, функцию gettimeofday и интервальные таймеры с высоким разрешением. Например, вы можете установить его с помощью следующей команды:
    yum install perl-Time-HiRes.x86_64
  3. CentOS 7. Прежде чем использовать check_postgres.pl в CentOS v7, установите perl-Data-Dumper.x86_64 RPM.

Выходные данные check_postgres.pl

Выходные данные вызовов API, использующих check_postgres.pl, по умолчанию совместимы с Nagios. После установки скрипта выполните следующие проверки:

  1. Проверьте размер базы данных:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action database_size --warning='800 GB' --critical='900 GB'
  2. Проверьте количество входящих подключений к базе данных и сравните его с максимально допустимым:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
  3. Проверьте, запущена ли и доступна ли база данных:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
  4. Проверьте место на диске:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
  5. Проверьте количество организаций и сред, подключенных к узлу 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 можно найти в следующих источниках:

Apache Cassandra

По умолчанию JMX включен для Cassandra, и удаленный доступ JMX к Cassandra не требует пароля.

Как включить аутентификацию JMX для Cassandra

Вы можете включить аутентификацию JMX для Cassandra. После этого вам нужно будет передавать имя пользователя и пароль при каждом вызове утилиты nodetool.

Чтобы включить аутентификацию JMX для Cassandra:

  1. Создайте и отредактируйте файл cassandra.properties:
    1. Отредактируйте файл /opt/apigee/customer/application/cassandra.properties. Если файла нет, создайте его.
    2. Добавьте в файл следующее:
      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
    3. Сохраните файл cassandra.properties.
    4. Измените владельца файла на apigee:apigee, как показано в примере ниже.
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties

    Дополнительную информацию об использовании файлов свойств для настройки токенов можно найти в статье Как настроить Edge.

  2. Создание и редактирование jmx_auth.sh:
    1. Если файла нет, создайте его в следующем каталоге:
      /opt/apigee/customer/application/jmx_auth.sh
    2. Добавьте в файл следующие свойства:
      export CASS_JMX_USERNAME=JMX_USERNAME
      export CASS_JMX_PASSWORD=JMX_PASSWORD
    3. Сохраните файл jmx_auth.sh.
    4. Выполните команду:
      source /opt/apigee/customer/application/jmx_auth.sh
  3. Скопируйте и отредактируйте файл jmxremote.password:
    1. Скопируйте следующий файл из каталога $JAVA_HOME в каталог /opt/apigee/data/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password
    2. Отредактируйте файл jmxremote.password и добавьте имя пользователя и пароль JMX, используя следующий синтаксис:
      JMX_USERNAME JMX_PASSWORD

      где JMX_USERNAME и JMX_PASSWORD – имя пользователя и пароль JMX, заданные ранее.

    3. Убедитесь, что владельцем файла является apigee и что для файла задан режим 400:
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.password
      chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.password
  4. Скопируйте и отредактируйте файл jmxremote.access:
    1. Скопируйте следующий файл из каталога $JAVA_HOME в каталог /opt/apigee/data/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access
    2. Отредактируйте файл jmxremote.access и добавьте следующую роль:
      JMX_USERNAME readwrite
    3. Убедитесь, что владельцем файла является apigee и что для файла задан режим 400:
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.access
      chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.access
  5. Выполните в Cassandra команду configure:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Перезапустите Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. Повторите этот процесс на всех остальных узлах Cassandra.

Включить шифрование паролей JMX

Чтобы включить шифрование паролей JMX, выполните следующие действия:

  1. Откройте файл source/conf/casssandra-env.sh.
  2. Раскомментируйте следующие строки в файле:
    • 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"
  3. В командной строке сгенерируйте хеш SHA1 для нужных паролей, введя echo -n 'Secret' | openssl dgst -sha1.
  4. Укажите пароли для имени пользователя в jmxremote.password.
  5. После обновления снова установите для файла cassandra-env.sh разрешение "Только чтение".

Отключить аутентификацию JMX для Cassandra

Чтобы отключить аутентификацию JMX для Cassandra:

  1. Изменить набор "/opt/apigee/customer/application/cassandra.properties".
  2. Удалите из файла следующую строку:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Запустите настройку Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. Перезапустите Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  5. Повторите этот процесс на всех остальных узлах Cassandra.

Как использовать JConsole для отслеживания статистики задач

Чтобы отслеживать атрибуты JMX (MBeans), предоставляемые через JMX, используйте JConsole и следующий URL сервиса:

service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi

где IP_address – IP-адрес сервера Cassandra.

Статистика Cassandra JMX

JMX MBeans Атрибуты 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 можно выполнять следующие вызовы:

  1. Общая информация о кольце (также доступна для одного узла 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
  2. Общая информация об узлах (вызов для каждого узла)
    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
  3. Статус сервера Thrift (обслуживает клиентский API)
    nodetool [-u username -pw password] -h localhost statusthrift

    Выходные данные команды будут выглядеть следующим образом:

    running
  4. Статус операций потоковой передачи данных. Проверьте трафик узлов 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

  1. Убедитесь, что процесс ZooKeeper запущен. ZooKeeper записывает PID-файл в opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid.
  2. Проверьте порты ZooKeeper, чтобы убедиться, что вы можете установить TCP-соединение с портами 2181 и 3888 на каждом сервере ZooKeeper.
  3. Убедитесь, что вы можете считывать значения из базы данных ZooKeeper. Подключитесь с помощью клиентской библиотеки ZooKeeper (или /opt/apigee/apigee-zookeeper/bin/zkCli.sh) и прочитайте значение из базы данных.
  4. Проверьте статус:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status

Используйте четырехбуквенные слова ZooKeeper

Для мониторинга ZooKeeper можно использовать небольшой набор команд (четырехбуквенных слов), которые отправляются на порт 2181 с помощью netcat (nc) или telnet.

Дополнительную информацию о командах ZooKeeper можно найти в справочнике по командам Apache ZooKeeper.

Пример:

  • srvr: показывает подробные сведения о сервере.
  • stat: краткие сведения о сервере и подключенных клиентах.

В порт ZooKeeper можно отправлять следующие команды:

  1. Выполните команду ruok, чтобы проверить, работает ли сервер без ошибок. В случае успеха возвращается ответ "imok".
    echo ruok | nc host 2181

    Возврат:

    imok
  2. Выполните четырехбуквенную команду 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
  3. Если утилита 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, чтобы убедиться, что определенные запросы обрабатываются правильно. Другими словами, проверьте, возвращает ли определенный поисковый запрос правильный результат.

  1. Используйте 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
  2. Проверьте, подключен ли сервер управления к LDAP, с помощью следующей команды:
    curl -u userEMail:password http://localhost:8080/v1/users/ADMIN

    Возврат:

    {
      "emailId" : ADMIN,
      "firstName" : "admin",
      "lastName" : "admin"
    }

Вы также можете отслеживать кеши OpenLDAP, которые помогают сократить количество обращений к диску и тем самым повысить производительность системы. Отслеживание и последующая настройка размера кеша на сервере OpenLDAP могут сильно повлиять на производительность сервера каталогов. Информацию о кеше можно найти в файлах журнала (opt/apigee/var/log).