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

Edge для частного облака v. 4.17.05

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

Включение JMX

JMX включен по умолчанию для Cassandra и отключен по умолчанию для всех остальных компонентов Edge. Поэтому вам необходимо включить JMX индивидуально для каждого компонента.

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

Компонент JMX-порт Файл
Сервер управления 1099 /opt/apigee/edge-management-server/bin/start
Процессор сообщений 1101 /opt/apigee/edge-mesage-processor/bin/start
Qpid 1102 /opt/apigee/edge-qpid-server/bin/start
Постгрес 1103 /opt/apigee/edge-postgres-server/bin/start

Например, чтобы включить JMX на сервере управления, откройте /opt/apigee/edge-management-server/bin/start в редакторе. Вы должны увидеть следующую строку, используемую для запуска сервера управления:

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 $* $debug_options com.apigee.kernel.MicroKernel

Отредактируйте эту строку, добавив следующее:

-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 

Обратите внимание, что в этой строке указан номер порта JMX 1099 для сервера управления. Установите номер порта для каждого компонента, как указано в таблице выше. Например:

exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts 
-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 
-Djava.security.auth.login.config=$conf_path/jaas.config 
-Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir $* $debug_options com.apigee.kernel.MicroKernel

Сохраните файл и перезапустите компонент. Например, чтобы перезапустить Сервер управления:

> /opt/apigee/apigee-service/bin/ apigee-service edge-management-server restart

Включение аутентификации JMX и установка пароля JMX

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

Чтобы включить аутентификацию JMX, каждый компонент имеет действиеchange_jmx_auth , которое вы используете для включения/отключения аутентификации и установки учетных данных JMX.

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

>  /<inst_root>/apigee/apigee-service/bin/apigee-service comp change_jmx_auth optionsOrConfigFile

где:

  • comp — это Edge-Management-Server, Edge-Message-Processor, Edge-Qpid-Server или Edge-Postgres-Server .
  • Варианты:
    • -u : имя пользователя
    • -p : пароль
    • -e : y (включить) или n (возможно)
  • Конфигурационный файл включает в себя:
    • JMX_USERNAME= имя пользователя
    • JMX_ENABLED=да/нет
    • JMX_PASSWORD= пароль (если он не установлен или не передан с помощью -p , вам будет предложено)

Например, чтобы использовать параметры в командной строке:

> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y

Если у вас есть файл конфигурации:

> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f configFile

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

Чтобы позже отключить аутентификацию JMX, используйте команду:

> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n

Сервер управления

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

Используйте JConsole (JMX-совместимый инструмент) для управления и мониторинга проверки работоспособности и обработки статистики. Используя JConsole, вы можете использовать статистику JMX, предоставляемую Management Server (или любым сервером), и отображать ее в графическом интерфейсе. Дополнительную информацию об использовании JConsole см. в http://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html .

Используйте JConsole и следующий URL-адрес службы для мониторинга атрибутов JMX (MBeans), предлагаемых через JMX.

service:jmx:rmi:///jndi/rmi://<ip address>:<port>/jmxrmi

где <ip-адрес> — IP-адрес Сервера управления (или соответствующего сервера). По умолчанию для сервера управления используется порт 1099.

В следующей таблице показана общая статистика JMX:

JMX-MBean-компоненты

Атрибуты JMX

Память

КучаПамятьИспользование

NonHeapMemoryUsage

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

Примечание. Значения атрибутов будут отображаться в четырех значениях: зафиксировано, инициализировано, максимально и использовано.

Использование проверок API Edge Application

Вы можете выполнить проверку API на сервере управления (или любом другом сервере), вызвав следующую команду CURL:

curl http://<host>:8080/v1/servers/self/up 

Где <хост> — это IP-адрес сервера управления.

Этот вызов возвращает «истину» и «ложь». Если это правда, это означает, что узел работает и служба Java работает.

Если вы не получили ответ HTTP 200 (ОК), Edge не сможет ответить на запросы порта 8080.

Поиск неисправностей

  1. Войдите на сервер и выполните следующую команду:
    /<inst_root>/apigee/apigee-service/bin/apigee-service состояние сервера Edge-Management-Server
  2. Если служба не запущена, запустите ее:
    /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-Management-Server запуск

Использование Edge Application — проверки пользователей, организации и развертывания

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

curl -u userEmail:password http://localhost:8080/v1/users
curl -u userEmail:password http://localhost:8080/v1/organizations
curl -u userEmail:password http://localhost:8080/v1/organizations/orgname/deployments

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

  1. Проверьте журналы сервера управления (по адресу <inst_root>/apigee/var/log/edge-management-server ) на наличие ошибок.
  2. Вызовите сервер управления, чтобы проверить, правильно ли он работает.
  3. Удалите сервер из ELB, а затем перезапустите сервер управления.
    /<inst_root>/apigee/apigee-service/bin/apigee-service перезапуск сервера Edge-Management-Server

Маршрутизатор

Вы можете выполнить проверку API на маршрутизаторе (или любом сервере), вызвав следующую команду CURL:

curl http://<host>:8081/v1/servers/self/up

Где хост — это IP-адрес маршрутизатора.

Этот вызов возвращает «истину» и «ложь». Если это правда, это означает, что узел работает и служба маршрутизатора работает.

Если вы не получили ответ HTTP 200 (ОК), Edge не сможет ответить на запросы порта 8081.

Поиск неисправностей

  1. Войдите на сервер и выполните следующие команды:
    /<inst_root>/apigee/apigee-service/bin/apigee-service состояние пограничного маршрутизатора
  2. Если служба не запущена, запустите службу
    /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-Router start
  3. После перезагрузки проверьте работоспособность
    curl -v http://localhost: порт /v1/servers/self/up

    Где порт — 8081 для маршрутизатора и 8082 для процессора сообщений.

Процессор сообщений

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

Выполните то же самое, что описано выше для сервера управления.

Примечание . Убедитесь, что вы используете порт – 1101.

Использование проверок API Edge Application

Выполните то же самое, что описано выше для маршрутизатора.

Примечание . Убедитесь, что вы используете порт – 8082.

Использование проверок потока сообщений JMX

Выполните то же самое, что описано выше для сервера управления.

Примечание . Убедитесь, что вы используете порт – 1101.

Qpid-сервер

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

Выполните то же самое, что описано выше для сервера управления.

Примечание . Убедитесь, что вы используете порт – 1102.

Использование проверок API Edge Application

Выполните то же самое, что описано выше для сервера управления.

Примечание . Убедитесь, что вы используете порт — 8083. Следующая команда CURL также поддерживается для сервера Qpid:

curl http://<qpid_IP>:8083/v1/servers/self

Постгрес-сервер

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

Выполните то же самое, что описано выше для сервера управления.

Примечание . Убедитесь, что вы используете порт – 1103.

Использование проверок API Edge Application

Выполните то же самое, что описано выше для сервера управления.

Примечание . Убедитесь, что вы используете порт — 8084. Следующая команда CURL также поддерживается для сервера Postgres:

curl http://<postgres_IP>:8084/v1/servers/self

Использование организации Edge Application и проверки среды

Вы можете проверить имя организации и среды, которые подключены к серверу Postgres, выполнив следующие команды CURL:

curl http:// <postgres_IP>:8084/v1/servers/self/organizations

Примечание . Убедитесь, что вы используете порт – 8084.

Система должна отображать название организации и среды.

Использование проверки состояния axstat Edge приложения

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

curl -u userEmail:password http://<host>:<port>/v1/organizations/<orgname>/environments/<envname>/provisioning/axstatus

Система должна отображать статус УСПЕХ для всех серверов аналитики. Вывод вышеуказанной команды CURL показан ниже:

{
  "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

Использование скрипта check_postgres.pl

Для мониторинга базы данных PostgreSQL вы можете использовать стандартный скрипт мониторинга check_postgres.pl , который доступен по адресу http://bucardo.org/wiki/Check_postgres .

Примечание . Сценарий check_postgres.pl необходимо установить на каждом узле Postgres.

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

  1. Убедитесь, что вы установили perl-Time-HiRes.x86_64 , модуль Perl, который реализует таймеры сигнализации высокого разрешения, сна, gettimeofday и интервалов. Например, вы можете установить его с помощью следующей команды:
    ням установи perl-Time-HiRes.x86_64

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

  1. Размер базы данных – проверьте размер базы данных:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action data_size --warning='800 ГБ' --critical='900 ГБ'
  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, где имя_схемы='analytics' и имя таблицы типа '%fact'" - -warning='80' --critical='90' --valtype=integer

Примечание . Если вам нужна помощь по использованию вышеуказанных команд, обратитесь к http://bucardo.org/check_postgres/check_postgres.pl.html.

Проверки БД

Вы можете убедиться, что в базе данных PostgreSQL созданы правильные таблицы. Войдите в базу данных PostgreSQL, используя:

psql  -h /opt/apigee/var/run/apigee-postgresql/  -U apigee -d apigee

а затем запустите:

\d analytics."<org>.<env>.fact"

Проверьте состояние работоспособности процесса postgres

Вы можете выполнить проверку API на машине Postgres, вызвав следующую команду CURL:

http://<postgres_IP>:8084/v1/servers/self/health/

Примечание . Убедитесь, что вы используете порт 8084.

Он возвращает статус «АКТИВНО», когда процесс postgres активен. Если процесс postgres не запущен, он возвращает статус «НЕАКТИВНО».

Ресурсы Postgres

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

Использование JConsole – мониторинг статистики задач

Используйте JConsole и следующий URL-адрес службы для мониторинга атрибутов JMX (MBeans), предлагаемых через JMX.

service:jmx:rmi:///jndi/rmi://<ip address>:7199/jmxrmi

где <ip-адрес> — IP-адрес сервера Cassandra.

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

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

  1. Отредактируйте /<inst_root>/apigee/customer/application/cassandra.properties . Если файл не существует, создайте его.
  2. Добавьте в файл следующее:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Сохраните файл.
  4. Скопируйте следующие файлы из каталога $JAVA_HOME в /<inst_root>/apigee/data/apigee-cassandra/:
    cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password

    cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access
  5. Отредактируйте jmxremote.password и добавьте в файл имя пользователя и пароль:
    Кассандра пароль

    где пароль — это пароль JMX.
  6. Отредактируйте jmxremote.access и добавьте следующую роль:
    Кассандра Ридрайт
  7. Убедитесь, что файлы принадлежат «apigee» и что файловый режим равен 400:
    > chown apigee:apigee /<inst_root>/apigee/data/apigee-cassandra/jmxremote.*
    > chmod 400 /<inst_root>/apigee/data/apigee-cassandra/jmxremote.*
  8. Запустите настройку на Кассандре:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra настроить
  9. Перезапустите Кассандру:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service перезапуск apigee-cassandra

Чтобы позже отключить аутентификацию:

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

LiveDiskSpaceИспользуется

LiveSSTableCount

BloomFilterFalsePositives

НедавниеBloomFilterFalseRatio

BloomFilterFalseRatio

Использование утилиты nodetool для управления узлами кластера

Утилита nodetool, представляющая собой интерфейс командной строки для Cassandra, используется для управления узлами кластера. Утилиту можно найти по адресу <inst_root>/apigee/apigee-cassandra/bin .

Дополнительную информацию об утилите nodetool см. на странице http://www.datastax.com/docs/1.0/references/nodetool .

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

  1. Общая информация о кольце (также возможна для одного узла Cassandra): найдите «Вверх» и «Нормальный» для всех узлов.
    [хост]# nodetool -h кольцо локального хоста

    Вывод приведенной выше команды выглядит, как показано ниже:
    Адрес Статус стойки постоянного тока Состояние Нагрузка владеет маркером
    192.168.124.201 dc1 ra1 Работает Обычный 1,67 МБ 33,33% 0
    192.168.124.202 dc1 ra1 Up Обычный 1,68 МБ 33,33% 56713727820156410577229101238628035242
    192.168.124.203 dc1 ra1 Up Обычный 1,67 МБ 33,33% 113427455640312821154458202477256070484
  2. Общая информация об узлах (вызов на узел)
    nodetool -h информация о локальном хосте

    Вывод приведенной выше команды выглядит, как показано ниже:
    Токен : 0
    Сплетни активны: правда
    Загрузка: 1,67 МБ
    Номер поколения: 1361968765
    Время работы (секунды): 78108
    Куча памяти (МБ): 46,80/772,00
    Дата-центр: dc1
    Стойка: ra1
    Исключения : 0
  3. Статус бережливого сервера (обслуживающий клиентский API)
    хост]# nodetool -h localhost statusthrift

    В выводе приведенной выше команды отображается статус «работает».
  4. Статус операций потоковой передачи данных : наблюдение за трафиком для узлов Cassandra.
    nodetool -h localhost netstats 192.168.124.203

    Вывод приведенной выше команды выглядит, как показано ниже:
    Режим: НОРМАЛЬНЫЙ
    Ничего не передается на /192.168.124.203
    Ничего не транслируется с /192.168.124.203
    Имя пула Активно Ожидание Завершено
    Команды н/д 0 1688
    Ответы н/д 0 292277

Кассандра Мониторинг (пользовательский интерфейс)

См. URL-адрес операционного центра datastax: http://www.datastax.com/products/opscenter .

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

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

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

Проверка статуса ZooKeeper

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

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

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

Дополнительную информацию о командах ZooKeeper см. по адресу: http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands .

Например:

  • srvr : выводит полную информацию о сервере.
  • stat : выводит краткую информацию о сервере и подключенных клиентах.

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

  1. Запустите четырехбуквенную команду ruok, чтобы проверить, работает ли сервер в исправном состоянии. Успешный ответ возвращает «imok».
    эхо руок | nc <хост> 2181

    Возврат:
    Я в порядке
  2. Запустите четырехбуквенную команду stat, чтобы просмотреть статистику производительности сервера и подключенных клиентов.
    эхо-статистика | nc <хост> 2181

    Возврат:
    Версия Zookeeper: 3.4.5-1392090, построена 30.09.2012 17:52 GMT
    Клиенты:
    /0:0:0:0:0:0:0:1:33467[0](в очереди=0,получено=1,отправлено=0)
    /192.168.124.201:42388[1](в очереди=0,получено=8433,отправлено=8433)
    /192.168.124.202:42185[1](в очереди=0,получено=1339,отправлено=1347)
    /192.168.124.204:39296[1](в очереди=0,получено=7688,отправлено=7692)
    Задержка мин/сред/макс: 0/0/128
    Получено: 26144
    Отправлено: 26160
    Подключения: 4
    Выдающиеся: 0
    Zxid: 0x2000002c2
    Режим: последователь
    Количество узлов: 283

    Примечание . Иногда важно проверить, находится ли ZooKeeper в режиме: лидер, ведомый или наблюдатель.
  3. Если netcat (nc) недоступен, вы можете использовать Python в качестве альтернативы. Создайте файл Zookeeper.py , содержащий следующее:
    время импорта, сокет,
    sys c = сокет.сокет(сокет.AF_INET, сокет.SOCK_STREAM)
    c.connect((sys.argv[1], 2181))
    c.send(sys.argv[2])
    время.сон(0.1)
    распечатать c.recv(512)


    Теперь запустите следующие строки Python:
    python Zookeeper.py 192.168.124.201 руок
    статистика python Zookeeper.py 192.168.124.201

OpenLDAP

Тест уровня 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 -ЛЛЛ

    Затем вам будет предложено ввести пароль администратора LDAP:
    Введите пароль LDAP:

    После ввода пароля вы увидите ответ в виде:
    dn: uid=admin,ou=users,ou=global,dc=apigee,dc=com
    Класс объекта: организационныйЧеловек
    Класс объекта: человек
    Объектный класс: inetOrgPerson
    Объектный класс: топ
    идентификатор пользователя: администратор
    CN: администратор
    зп: админ
    userPassword:: e1NTSEF9bS9xbS9RbVNXSFFtUWVsU1F0c3BGL3BQMkhObFp2eDFKUytmZVE9PQ=
    =
    почта: opdk@google.com
  2. Проверьте, подключен ли сервер управления к проблеме LDAP:
    curl -u <userEMail>:<пароль> http://localhost:8080/v1/users/<ADMIN>

    Возврат:
    {
    «emailId»: <АДМИН>,
    "имя": "администратор",
    "фамилия": "админ"
    }

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