Edge для частного облака v. 4.17.09
В этом документе описаны методы мониторинга компонентов, поддерживаемых локальным развертыванием Apigee Edge.
Включение JMX
JMX включен по умолчанию для Cassandra и отключен по умолчанию для всех остальных компонентов Edge. Поэтому вам необходимо включить JMX индивидуально для каждого компонента.
Каждый компонент поддерживает JMX на своем порту. В следующей таблице перечислены порт JMX и файл, который вы изменяете, чтобы включить JMX на этом порту:
Компонент | JMX-порт | Файл |
---|---|---|
Сервер управления | 1099 | /opt/apigee/edge-management-server/bin/start |
Маршрутизатор | 1100 | /opt/apigee/edge-router/bin/start |
Процессор сообщений | 1101 | /opt/apigee/edge-message-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 не требуется пароль.
Чтобы включить аутентификацию JMX, каждый компонент имеет действиеchange_jmx_auth , которое вы используете для включения/отключения аутентификации и установки учетных данных JMX.
Чтобы включить аутентификацию JMX, используйте следующую команду:
> /opt/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 , вам будет предложено)
Например, чтобы использовать параметры в командной строке:
> /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 configFile
Если вы используете Edge на нескольких узлах, запустите эту команду на всех узлах, указав одно и то же имя пользователя и пароль.
Чтобы позже отключить аутентификацию JMX, используйте команду:
> /opt/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 -H "Accept: application/json"
Где <хост> — это IP-адрес сервера управления. Вы можете указать тип Accept как application/json или application/xml .
Этот вызов возвращает «истину» и «ложь». Если это правда, это означает, что узел работает и служба Java работает.
Если вы не получили ответ HTTP 200 (ОК), Edge не сможет ответить на запросы порта 8080.
Поиск неисправностей
- Войдите на сервер и выполните следующую команду:
/opt/apigee/apigee-service/bin/apigee-service состояние сервера Edge-Management-Server - Если служба не запущена, запустите ее:
/opt/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
Система должна отображать статус «развернуто» для всех вызовов. Если это не помогло, сделайте следующее:
- Проверьте журналы сервера управления ( opt/apigee/var/log/edge-management-server ) на наличие ошибок.
- Вызовите сервер управления, чтобы проверить, правильно ли он работает.
- Удалите сервер из ELB, а затем перезапустите сервер управления.
/opt/apigee/apigee-service/bin/apigee-service перезапуск сервера Edge-Management-Server
Маршрутизатор
Вы можете выполнить проверку API на маршрутизаторе (или любом сервере), вызвав следующую команду CURL:
curl http://<host>:8081/v1/servers/self/up
Где хост — это IP-адрес маршрутизатора.
Этот вызов возвращает «истину» и «ложь». Если это правда, это означает, что узел работает и служба маршрутизатора работает.
Если вы не получили ответ HTTP 200 (ОК), Edge не сможет ответить на запросы порта 8081.
Поиск неисправностей
- Войдите на сервер и выполните следующие команды:
/<inst_root>/apigee/apigee-service/bin/apigee-service состояние пограничного маршрутизатора - Если служба не запущена, запустите службу
/<inst_root>/apigee/apigee-service/bin/apigee-service Edge-Router start - После перезагрузки проверьте работоспособность
curl -v http://localhost: порт /v1/servers/self/up
Где порт — 8081 для маршрутизатора и 8082 для процессора сообщений.
Использование JConsole для мониторинга работоспособности системы и обработки информации.
Выполните то же самое, что описано выше для сервера управления.
Примечание . Убедитесь, что вы используете порт – 1100.
Процессор сообщений
Использование 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.
Система должна отображать название организации и среды.
Использование проверки состояния axstatus приложения 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.
Прежде чем запустить скрипт:
- Убедитесь, что вы установили perl-Time-HiRes.x86_64 , модуль Perl, который реализует таймеры сигнализации высокого разрешения, сна, gettimeofday и интервалов. Например, вы можете установить его с помощью следующей команды:
ням установи perl-Time-HiRes.x86_64
Вывод по умолчанию вызовов API с использованием сценария check_postgres.pl совместим с Nagios. После установки скрипта выполните следующие проверки:
- Размер базы данных – проверьте размер базы данных:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action data_size --warning='800 ГБ' --critical='900 ГБ' - Входящее подключение к базе данных – проверяет количество входящих подключений к базе данных и сравнивает с максимально разрешенными подключениями:
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, где имя_схемы='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
- 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
Апач Кассандра
Использование JConsole – мониторинг статистики задач
Используйте JConsole и следующий URL-адрес службы для мониторинга атрибутов JMX (MBeans), предлагаемых через JMX.
service:jmx:rmi:///jndi/rmi://<ip address>:7199/jmxrmi
где <ip-адрес> — IP-адрес сервера Cassandra.
JMX включен для Cassandra по умолчанию, и удаленный доступ JMX к Cassandra не требует пароля.
Чтобы включить аутентификацию JMX для добавления пароля:
- Отредактируйте /opt/apigee/customer/application/cassandra.properties . Если файл не существует, создайте его.
- Добавьте в файл следующее:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - Сохраните файл.
- Скопируйте следующие файлы из каталога $JAVA_HOME в /opt/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 - Отредактируйте jmxremote.password и добавьте в файл имя пользователя и пароль:
Кассандра пароль
где пароль — это пароль JMX. - Отредактируйте jmxremote.access и добавьте следующую роль:
Кассандра Ридрайт - Убедитесь, что файлы принадлежат «apigee» и что файловый режим равен 400:
> chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.*
> chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.* - Запустите настройку на Кассандре:
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra настроить - Перезапустите Кассандру:
> /opt/apigee/apigee-service/bin/apigee-service перезапуск apigee-cassandra - Повторите этот процесс на всех остальных узлах Cassandra.
Чтобы позже отключить аутентификацию:
- Отредактируйте /opt/apigee/customer/application/cassandra.properties .
- Удалите следующую строку в файле:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - Запустите настройку на Кассандре:
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra настроить - Перезапустите Кассандру:
> /opt/apigee/apigee-service/bin/apigee-service перезапуск apigee-cassandra - Повторите этот процесс на всех остальных узлах 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 .
Дополнительную информацию об утилите nodetool см. на странице http://www.datastax.com/docs/1.0/references/nodetool .
Следующие вызовы могут быть выполнены на всех узлах кластера Cassandra:
- Общая информация о кольце (также возможна для одного узла 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 - Общая информация об узлах (вызов на узел)
nodetool -h информация о локальном хосте
Вывод приведенной выше команды выглядит, как показано ниже:
Токен : 0
Сплетни активны: правда
Загрузка: 1,67 МБ
Номер поколения: 1361968765
Время работы (секунды): 78108
Куча памяти (МБ): 46,80/772,00
Дата-центр: dc1
Стойка: ra1
Исключения : 0 - Статус бережливого сервера (обслуживающий клиентский API)
хост]# nodetool -h localhost statusthrift
В выводе приведенной выше команды отображается статус «работает». - Статус операций потоковой передачи данных : наблюдение за трафиком для узлов 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
- Убедитесь, что процесс 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
Использование слов из четырех букв ZooKeeper
ZooKeeper можно отслеживать с помощью небольшого набора команд (четырехбуквенных слов), которые отправляются на порт 2181 с помощью netcat (nc) или telnet.
Дополнительную информацию о командах ZooKeeper см. по адресу: http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands .
Например:
- srvr : выводит полную информацию о сервере.
- stat : выводит краткую информацию о сервере и подключенных клиентах.
На порт ZooKeeper можно подать следующие команды:
- Запустите четырехбуквенную команду ruok, чтобы проверить, работает ли сервер в исправном состоянии. Успешный ответ возвращает «imok».
эхо руок | nc <хост> 2181
Возврат:
Я в порядке - Запустите четырехбуквенную команду 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 в режиме: лидер, ведомый или наблюдатель. - Если netcat (nc) недоступен, в качестве альтернативы можно использовать python. Создайте файл Zookeeper.py , содержащий следующее:
время импорта, сокет,
sys c = сокет.сокет(socket.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, чтобы увидеть, правильно ли обслуживаются конкретные запросы. Другими словами, проверьте конкретный поиск, который возвращает правильный результат.
- Используйте 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 - Проверьте, подключен ли сервер управления к проблеме LDAP:
curl -u <userEMail>:<пароль> http://localhost:8080/v1/users/<ADMIN>
Возврат:
{
«emailId»: <АДМИН>,
"имя": "администратор",
"фамилия": "админ"
}
Вы также можете отслеживать кэши OpenLDAP, что помогает уменьшить количество обращений к диску и, следовательно, повысить производительность системы. Мониторинг и последующая настройка размера кэша на сервере OpenLDAP могут сильно повлиять на производительность сервера каталогов. Вы можете просмотреть файлы журналов ( opt/apigee/var/log ), чтобы получить информацию о кеше.