Как контролировать

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

Обзор

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

API управления
Услуга Использование памяти [JMX * ] Сервисная проверка Статус пользователя/организации/развертывания статус Проверка базы данных Статус apigee-service apigee-monit **
Сервер управления
Процессор сообщений
Постгрес
Qpid
Маршрутизатор
Дополнительная информация Дополнительная информация Дополнительная информация Дополнительная информация Дополнительная информация Дополнительная информация Дополнительная информация

* Прежде чем вы сможете использовать JMX, вы должны включить его, как описано в разделе «Включение JMX» .

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

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

  1. Отредактируйте файл конфигурации компонента. Этот файл находится по адресу 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 .

  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_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

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

  • Свойства конфигурации
  • Время начала и время работы
  • Информация о сборке, 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"

В следующем примере получаются сведения об процессоре сообщений по адресу 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 для сервера управления или 8082 для процессора сообщений.

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

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

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

Прежде чем запустить скрипт:

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

Вывод 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 см. в следующих разделах:

Апач Кассандра

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. Запустите configure на Кассандре:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Перезапустите Кассандру:
    /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 с SSL для Cassandra

Включение JMX с SSL обеспечивает дополнительную безопасность и шифрование для связи на основе JMX с Cassandra. Чтобы включить JMX с SSL, вам необходимо предоставить Cassandra ключ и сертификат для приема соединений JMX на основе SSL. Вам также необходимо настроить nodetool (и любые другие инструменты, которые взаимодействуют с Cassandra через JMX) для SSL.

JMX с поддержкой SSL поддерживает как открытые текстовые, так и зашифрованные пароли JMX.

Чтобы включить JMX с SSL для Cassandra, используйте следующую процедуру:

  1. Включите JMX . При необходимости включите шифрование пароля.
  2. Включите аутентификацию JMX для Cassandra . как описано выше. Убедитесь, что nodetool работает с настроенным именем пользователя и паролем.
    /opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
  3. Подготовьте хранилище ключей и хранилище доверенных сертификатов.

    • Хранилище ключей должно содержать ключ и сертификат и используется для настройки сервера Cassandra. Если хранилище ключей содержит несколько пар ключей, Cassandra использует первую пару ключей для включения SSL.

      Обратите внимание, что пароли для хранилища ключей и ключа должны быть одинаковыми (по умолчанию при создании ключа с помощью keytool).

    • Хранилище доверенных сертификатов должно содержать только сертификат и используется клиентами (командами на основе службы API или nodetool) для подключения через JMX.

    После проверки вышеуказанных требований:

    1. Поместите файл хранилища ключей в /opt/apigee/data/apigee-cassandra .
    2. Убедитесь, что файл хранилища ключей доступен для чтения пользователю Apigee, только введя
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/keystore.node1
      chmod 400 /opt/apigee/data/apigee-cassandra/keystore.node1
  4. Настройте Cassandra для JMX с SSL, выполнив следующие шаги:
    1. Остановите узел Кассандра, введя
      apigee-service apigee-cassandra stop
    2. Включите SSL в Cassandra, открыв файл /opt/apigee/customer/application/cassandra.properties и добавив следующую строку:
      conf_cassandra-env_com.sun.management.jmxremote.ssl=true

      Файл должен принадлежать apigee:apigee .

    3. Включите конфигурацию, связанную с 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 .
    4. Запустите узел Cassandra, введя
      apigee-service apigee-cassandra start
  5. Настройте команды 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 хранятся в файле)

    Установите следующие переменные среды:

    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
  6. Настройте 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, описанные в процедуре выше, выполните следующие действия:

  1. Остановите apigee-cassandra , введя
    apigee-service apigee-cassandra stop
  2. Удалите строку conf_cassandra-env_com.sun.management.jmxremote.ssl=true из файла /opt/apigee/customer/application/cassandra.properties .
  3. Закомментируйте следующие строки в /opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh
    # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/opt/apigee/data/apigee-cassandra/keystore.node0"
    # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=keypass"
    # JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true”
  4. Запустите apigee-cassandra , введя
  5. apigee-service apigee-cassandra start
  6. Удалите переменную среды CASS_JMX_SSL если она была установлена.

    unset CASS_JMX_SSL
  7. Убедитесь, что команды на основе apigee-service такие как ring , stop , backup и т. д., работают.
  8. Прекратите использовать ключ --ssl с помощью nodetool

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

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

  1. Отредактируйте /opt/apigee/customer/application/cassandra.properties .
  2. Удалите следующую строку в файле:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Запустите настройку на Кассандре:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. Перезапустите Кассандру:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  5. Повторите этот процесс на всех остальных узлах 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:

  1. Общая информация о кольце (также возможна для одного узла 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
  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. Статус бережливого сервера (обслуживающий клиентский 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 .

Ресурс Кассандра

См. следующий URL-адрес: http://www.datastax.com/docs/1.0/operations/monitoring .

Хранитель зоопарка Апач

Проверьте статус 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 ), чтобы получить информацию о кеше.