Требования к установке

Требования к оборудованию

Для обеспечения высокой доступности инфраструктуры в рабочей среде необходимо соблюдать следующие минимальные требования к оборудованию.

В следующем видео приведены общие рекомендации по размеру для вашей установки:

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

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

Компонент установки ОЗУ ЦП Минимальный объем жесткого диска
Cassandra (отдельная) 16 ГБ 8-ядерный 250 ГБ локального хранилища с твердотельным накопителем, поддерживающим 2000 операций ввода-вывода в секунду.
Cassandra/Zookeeper на одном компьютере 16 ГБ 8-ядерный 250 ГБ локального хранилища с твердотельным накопителем, поддерживающим 2000 операций ввода-вывода в секунду.
Процессор/маршрутизатор сообщений на одном компьютере 16 ГБ 8-ядерный 100 ГБ
Message Processor (отдельный) 16 ГБ 8-ядерный 100 ГБ
Маршрутизатор (отдельный) 8 ГБ 8-ядерный 100 ГБ
Аналитика – Postgres/Qpid на одном сервере 16 ГБ* 8-ядерный* 500 ГБ – 1 ТБ** сетевого хранилища***, желательно с твердотельным накопителем, поддерживающего 1000 операций ввода-вывода в секунду или более*.
Аналитика – основной или резервный сервер Postgres в отдельной конфигурации 16 ГБ* 8-ядерный* 500 ГБ – 1 ТБ** сетевого хранилища***, желательно с твердотельным накопителем, поддерживающего 1000 операций ввода-вывода в секунду или более*.
Аналитика – Qpid (отдельное приложение) 8 ГБ 4 ядра 30–50 ГБ локального хранилища с SSD

Размер очереди Qpid по умолчанию составляет 1 ГБ, но его можно увеличить до 2 ГБ. Если вам нужно больше ресурсов, добавьте дополнительные узлы Qpid.

OpenLDAP/UI/сервер управления 8 ГБ 4 ядра 60 ГБ
Сервер управления/интерфейса 4 ГБ 2 ядра 60 ГБ
OpenLDAP (отдельный) 4 ГБ 2 ядра 60 ГБ

* Измените системные требования Postgres в зависимости от пропускной способности:

  • Менее 250 транзакций в секунду: можно использовать 8 ГБ, 4 ядра с управляемым сетевым хранилищем***, поддерживающим 1000 операций ввода-вывода в секунду или более.
  • Более 250 транзакций в секунду: 16 ГБ, 8 ядер, управляемое сетевое хранилище*** с поддержкой 1000 операций ввода-вывода в секунду или более
  • Более 1000 транзакций в секунду: 16 ГБ, 8 ядер, управляемое сетевое хранилище*** с поддержкой 2000 операций ввода-вывода в секунду или более
  • Более 2000 транзакций в секунду: 32 ГБ, 16 ядер, управляемое сетевое хранилище*** с поддержкой 2000 операций ввода-вывода в секунду или более
  • Более 4000 транзакций в секунду: 64 ГБ, 32 ядра, управляемое сетевое хранилище*** с поддержкой 4000 операций ввода-вывода в секунду или более

** Значение жесткого диска Postgres основано на стандартной аналитике, собранной Edge. Если вы добавите в данные аналитики специальные значения, то эти значения должны быть увеличены соответствующим образом. Чтобы узнать примерный объем хранилища, используйте следующую формулу:

bytes of storage needed =

  (# bytes of analytics data/request) *

  (requests/second) *

  (seconds/hour) *

  (hours of peak usage/day) *

  (days/month) *

  (months of data retention)

Пример:

(2K bytes) * (100 req/sec) * (3600 secs/hr) * (18 peak hours/day) * (30 days/month) * (3 months retention)

= 1,194,393,600,000 bytes or 1194.4 GB of storage needed

*** Для базы данных Postgresql рекомендуется использовать сетевое хранилище, поскольку:

  • При необходимости размер хранилища можно динамически увеличивать.
  • В большинстве современных подсистем среды/хранилища/сети можно на лету регулировать количество операций ввода-вывода в секунду.
  • Снимки уровня хранилища можно включить как часть решений для резервного копирования и восстановления.

Кроме того, ниже перечислены требования к оборудованию, если вы хотите установить сервисы монетизации (не поддерживаются при установке All-in-One):

Компонент с монетизацией ОЗУ ЦП Жесткий диск
Сервер управления (с сервисами монетизации) 8 ГБ 4-ядерный 60 ГБ
Аналитика – Postgres/Qpid на одном сервере 16 ГБ 8-ядерный Сетевое хранилище емкостью 500 ГБ – 1 ТБ, желательно с серверной частью на основе SSD, поддерживающее 1000 операций ввода-вывода в секунду или больше, или используйте правило из таблицы выше.
Аналитика – основной или резервный сервер Postgres в отдельной конфигурации 16 ГБ 8-ядерный Сетевое хранилище емкостью 500 ГБ – 1 ТБ, желательно с серверной частью на основе SSD, поддерживающее 1000 операций ввода-вывода в секунду или больше, или используйте правило из таблицы выше.
Аналитика – Qpid (отдельное приложение) 8 ГБ 4 ядра 40–500 ГБ локального хранилища с SSD или быстрым HDD.

Для установок с более чем 250 TPS рекомендуется использовать жесткий диск с локальным хранилищем, поддерживающим 1000 операций ввода-вывода в секунду.

Требования к пропускной способности сети Cassandra

Cassandra использует протокол Gossip для обмена информацией с другими узлами о топологии сети. Использование протокола Gossip в сочетании с распределенной архитектурой Cassandra, которая предполагает взаимодействие с несколькими узлами для операций чтения и записи, приводит к значительному объему передаваемых по сети данных.

Для Cassandra требуется минимальная пропускная способность сети 1 Гбит/с на узел. Для рабочих установок рекомендуется более высокая пропускная способность.

Максимальная задержка или задержка на уровне 99-го процентиля для Cassandra должна быть ниже 100 миллисекунд.

Требования к операционной системе и стороннему ПО

Эти инструкции по установке и прилагаемые файлы для установки были протестированы на операционных системах и стороннем ПО, перечисленных в разделе Поддерживаемое ПО и поддерживаемые версии.

Требования: включите репозиторий EPEL

Перед установкой убедитесь, что репозиторий EPEL (Extra Packages for Enterprise Linux) включен. Используйте следующие команды в зависимости от версии операционной системы:

  • Для Red Hat/CentOS/Oracle 8.X:
    wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    sudo rpm -ivh epel-release-latest-8.noarch.rpm
  • Для Red Hat/CentOS/Oracle 9.X:
    wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
    sudo rpm -ivh epel-release-latest-9.noarch.rpm

Java

Перед установкой на каждом компьютере должна быть установлена поддерживаемая версия Java 1.8. Список поддерживаемых JDK приведен в разделе Поддерживаемое ПО и его версии.

Убедитесь, что переменная среды JAVA_HOME указывает на корневой каталог JDK для пользователя, выполняющего установку.

SELinux

В зависимости от настроек SELinux у Edge могут возникнуть проблемы с установкой и запуском компонентов Edge. При необходимости во время установки можно отключить SELinux или перевести его в разрешительный режим, а затем снова включить. Подробнее о том, как установить утилиту apigee-setup для Edge…

Создание пользователя apigee

В процессе установки создается системный пользователь Unix с именем apigee. Каталоги и файлы Edge принадлежат пользователю apigee, как и процессы Edge. Это означает, что компоненты Edge работают от имени пользователя apigee. При необходимости вы можете запустить компоненты от имени другого пользователя.

Каталог установки

По умолчанию установщик записывает все файлы в каталог /opt/apigee. Изменить местоположение этого каталога нельзя. Изменить этот каталог нельзя, но вы можете создать символическую ссылку, чтобы сопоставить /opt/apigee с другим местоположением, как описано в разделе Создание символической ссылки из /opt/apigee.

В инструкциях в этом руководстве каталог установки обозначается как /opt/apigee.

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

Чтобы создать символическую ссылку, выполните следующие действия до скачивания файла bootstrap_4.53.01.sh. Все эти действия необходимо выполнить с правами root:

  1. Создайте пользователя и группу apigee:
    groupadd -r apigee > useradd -r -g apigee -d /opt/apigee -s /sbin/nologin -c "Apigee platform user" apigee
  2. Создайте символическую ссылку из /opt/apigee в нужный корневой каталог установки:
    ln -Ts /srv/myInstallDir /opt/apigee

    В этом примере после /srv/myInstallDir указано желаемое расположение файлов Edge.

  3. Измените владельца корневого каталога установки и символической ссылки на пользователя apigee:
    chown -h apigee:apigee /srv/myInstallDir /opt/apigee

Настройки размещения

Apigee рекомендует проверить настройки сети перед установкой. Установщик предполагает, что у всех машин есть статические IP-адреса. Чтобы проверить настройку, используйте следующие команды:

  • hostname возвращает название компьютера.
  • hostname -i возвращает IP-адрес для имени хоста, к которому можно обратиться с других машин.

В зависимости от типа и версии операционной системы вам может потребоваться изменить /etc/hosts и /etc/sysconfig/network, если имя хоста задано неправильно. Дополнительную информацию можно найти в документации к вашей операционной системе.

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

ENABLE_DYNAMIC_HOSTIP=y

Если для этого свойства задано значение "y", установщик предложит вам выбрать IP-адрес, который будет использоваться в процессе установки. Значение по умолчанию – n. Подробнее о файле конфигурации Edge…

TCP Wrappers

TCP Wrappers могут блокировать связь некоторых портов и влиять на установку OpenLDAP, Postgres и Cassandra. На этих узлах проверьте /etc/hosts.allow и /etc/hosts.deny, чтобы убедиться, что на нужных портах OpenLDAP, Postgres и Cassandra нет ограничений.

iptables

Убедитесь, что правила iptables не блокируют подключение между узлами на необходимых портах Edge. При необходимости вы можете остановить iptables во время установки, используя следующую команду:

sudo/etc/init.d/iptables stop

Доступ к каталогам

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

Сервис Каталог Описание
Маршрутизатор /etc/rc.d/init.d/functions

Маршрутизатор Edge использует маршрутизатор Nginx и требует доступа с правом чтения к файлу /etc/rc.d/init.d/functions.

Если в соответствии с требованиями безопасности вам необходимо задать разрешения для /etc/rc.d/init.d/functions, не устанавливайте значение 700, иначе маршрутизатор не запустится.

Вы можете установить разрешения 744, чтобы разрешить доступ на чтение к /etc/rc.d/init.d/functions.

Смотритель зоопарка /dev/random Клиентской библиотеке Zookeeper требуется доступ на чтение к генератору случайных чисел /dev/random. Если /dev/random заблокирован на чтение, то сервис Zookeeper может не запуститься.

Cassandra

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

Cassandra автоматически регулирует размер кучи Java в зависимости от доступной памяти. Подробнее о том, как настроить ресурсы Java в случае снижения производительности или высокого потребления памяти…

После установки Edge для частного облака вы можете проверить, правильно ли настроена Cassandra, изучив файл /opt/apigee/apigee-cassandra/conf/cassandra.yaml. Например, убедитесь, что скрипт установки Edge для частного облака задал следующие свойства:

  • cluster_name
  • initial_token
  • partitioner
  • seeds
  • listen_address
  • rpc_address
  • snitch

База данных PostgreSQL

После установки Edge вы можете изменить следующие настройки базы данных PostgreSQL в зависимости от объема ОЗУ, доступного в вашей системе:

conf_postgresql_shared_buffers = 35% of RAM      # min 128kB
conf_postgresql_effective_cache_size = 45% of RAM
conf_postgresql_work_mem = 512MB       # min 64kB

Чтобы задать эти значения:

  1. Измените файл postgresql.properties:
    vi /opt/apigee/customer/application/postgresql.properties

    Если файла нет, создайте его.

  2. Задайте свойства, перечисленные выше.
  3. Сохраните изменения.
  4. Перезапустите базу данных PostgreSQL:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

Конфигурация локали для Rocky 9.X

Если вы используете Rocky 9.X, убедитесь, что в системных настройках локали задан язык LANG=en_US.utf8. Чтобы настроить это, выполните следующие команды:

dnf -y -q install langpacks-en
localectl set-locale LANG=en_US.utf8
reboot

Системные ограничения

Убедитесь, что на узлах Cassandra и Message Processor заданы следующие системные ограничения:

  • На узлах Cassandra задайте мягкие и жесткие ограничения memlock, nofile и адресного пространства (as) для пользователя, выполняющего установку (по умолчанию это пользователь apigee), в файле /etc/security/limits.d/90-apigee-edge-limits.conf, как показано ниже:
    apigee soft memlock unlimited
    apigee hard memlock unlimited
    apigee soft nofile 32768
    apigee hard nofile 65536
    apigee soft as unlimited
    apigee hard as unlimited
    apigee soft nproc 32768
    apigee hard nproc 65536
  • На узлах Message Processor задайте максимальное количество дескрипторов открытых файлов равным 64 000 в файле /etc/security/limits.d/90-apigee-edge-limits.conf, как показано ниже:
    apigee soft nofile 32768
    apigee hard nofile 65536

    При необходимости вы можете увеличить этот лимит. Например, если у вас одновременно открыто большое количество временных файлов.

  • Если вы видите следующую ошибку в маршрутизаторе или процессоре сообщений system.log, возможно, лимиты дескрипторов файлов установлены слишком низкими:

    "java.io.IOException: Too many open files"

    Чтобы проверить лимиты пользователей, выполните следующие действия:

    # su - apigee
    $ ulimit -n
    100000
    

    Если после установки лимита дескрипторов файлов на значение 100000 вы по-прежнему достигаете лимита открытых файлов, обратитесь в службу поддержки Apigee Edge для дальнейшего устранения неполадок.

Network Security Services (NSS)

Network Security Services (NSS) – это набор библиотек, которые помогают разрабатывать клиентские и серверные приложения с поддержкой безопасности. Убедитесь, что у вас установлена версия NSS 3.19 или более поздняя.

Чтобы проверить текущую версию:

yum info nss

Чтобы обновить NSS:

yum update nss

Дополнительную информацию можно найти в этой статье на сайте RedHat.

Отключение DNS-запросов по IPv6 при использовании NSCD (демона кеширования сервисов имен)

Если вы установили и включили NSCD (демон кеширования службы имен), процессоры сообщений выполняют два поиска DNS: один для IPv4 и один для IPv6. При использовании NSCD следует отключить DNS-запрос по IPv6.

Чтобы отключить DNS-запрос по протоколу IPv6, выполните следующие действия:

  1. На каждом узле Message Processor измените файл /etc/nscd.conf.
  2. Задайте следующее свойство:
    enable-cache hosts no

Как отключить IPv6 в RHEL 8 и более поздних версий

Если вы устанавливаете Edge на RHEL 8 или более поздних версий на платформе Google Cloud, вам необходимо отключить IPv6 на всех узлах Qpid.

Инструкции по отключению IPv6 можно найти в документации поставщика ОС. Например, полезную информацию можно найти в документации по Red Hat Enterprise Linux.

Требования для Amazon Linux

Перед тем как выполнять чистую установку на Amazon Linux 2023.7/2023.8/2023.9 или обновлять версию с 4.52.02 до 4.53.01 (на Amazon Linux 2023.7/2023.8/2023.9), отредактируйте файл /etc/yum.repos.d/amazonlinux.repo. В разделе, содержащем [amazonlinux], должны быть указаны следующие элементы, чтобы пакеты скачивались с сайта apigee-thirdparty, а не с Amazon:exclude=postgresql17, luajit*.

Инструменты

В стандартной версии установщик использует следующие инструменты UNIX, предоставленные EL5 или EL6.

awk

expr

libxslt

об/мин

распаковать

basename

grep

lua-socket

rpm2cpio

useradd

bash

hostname

ls

sed

wc

bc

id

net-tools

sudo

wget

curl

libaio

perl (из procps)

tar

xerces-c

cyrus-sasl libdb4 pgrep (из procps) tr супер!

дата

libdb-cxx

ps

uuid

chkconfig

dirname libibverbs pwd uname  
echo librdmacm python    

Синхронизация времени

Apigee рекомендует синхронизировать время на серверах. Если это ещё не сделано, утилита ntpdate или аналогичный инструмент могут проверить, синхронизировано ли время на серверах. Например, для установки утилиты можно использовать команду yum install ntp или аналогичную. Это особенно полезно при репликации настроек LDAP. Обратите внимание, что часовой пояс сервера должен быть UTC.

Брандмауэры и виртуальные хосты

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

  • Виртуальные машины. Необязательно, но в некоторых развертываниях используются виртуальные машины для создания изолированных серверов для компонентов Apigee. У хостов виртуальных машин, как и у физических хостов, могут быть сетевые интерфейсы и межсетевые экраны.
  • Виртуальные хосты. Веб-конечные точки, аналогичные виртуальным хостам Apache.

Маршрутизатор в виртуальной машине может предоставлять доступ к нескольким виртуальным хостам (если они отличаются друг от друга псевдонимом хоста или портом интерфейса).

Например, на одном физическом сервере A могут быть запущены две виртуальные машины с названиями VM1 и VM2. Предположим, что виртуальная машина VM1 предоставляет виртуальный интерфейс Ethernet, который в ней называется eth0 и которому присвоен IP-адрес 111.111.111.111 с помощью механизма виртуализации или сетевого сервера DHCP. Предположим также, что виртуальная машина VM2 предоставляет виртуальный интерфейс Ethernet, который также называется eth0 и которому присвоен IP-адрес 111.111.111.222.

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

Маршрутизатор Apigee в виртуальной машине VM1 предоставляет три виртуальных хоста в интерфейсе eth0 (у которого есть определенный IP-адрес): api.mycompany.com:80, api.mycompany.com:443 и test.mycompany.com:80.

Маршрутизатор в ВМ2 предоставляет доступ к api.mycompany.com:80 (с тем же именем и портом, что и в ВМ1).

В ОС физического хоста может быть сетевой брандмауэр. Если это так, его нужно настроить так, чтобы он пропускал TCP-трафик, предназначенный для портов, которые используются виртуализированными интерфейсами (111.111.111.111:{80, 443} и 111.111.111.222:80). Кроме того, в ОС каждой ВМ может быть собственный брандмауэр для интерфейса eth0, и он также должен разрешать подключение к портам 80 и 443.

Базовый путь – это третий компонент, который используется для маршрутизации вызовов API к разным прокси API, которые вы могли развернуть. Пакеты прокси-серверов API могут использовать одну конечную точку, если у них разные базовые пути. Например, один базовый путь может быть определен как http://api.mycompany.com:80/, а другой – как http://api.mycompany.com:80/salesdemo.

В этом случае вам понадобится балансировщик нагрузки или диспетчер трафика, который будет распределять трафик http://api.mycompany.com:80/ между двумя IP-адресами (111.111.111.111 на VM1 и 111.111.111.222 на VM2). Эта функция относится к вашей установке и настраивается вашей локальной сетевой группой.

Базовый путь задается при развертывании API. В приведенном выше примере вы можете развернуть два API, mycompany и testmycompany, для организации mycompany-org с виртуальным хостом, у которого псевдоним хоста api.mycompany.com, а порт – 80. Если вы не объявите базовый путь в развертывании, маршрутизатор не будет знать, какому API отправлять входящие запросы.

Однако если вы развернете API testmycompany с базовым URL /salesdemo, то пользователи будут обращаться к этому API по адресу http://api.mycompany.com:80/salesdemo. Если вы развернете API mycompany с базовым URL /, то пользователи смогут получить доступ к API по URL http://api.mycompany.com:80/.

лицензии;

Для каждой установки Edge требуется уникальный файл лицензии, который вы получаете от Apigee. При установке сервера управления вам нужно будет указать путь к файлу лицензии, например /tmp/license.txt.

Установщик копирует файл лицензии в папку /opt/apigee/customer/conf/license.txt.

Если файл лицензии действителен, сервер управления проверяет срок действия и допустимое количество процессоров сообщений. Если срок действия каких-либо настроек лицензии истек, журналы можно найти по следующему пути: /opt/apigee/var/log/edge-management-server/logs. В этом случае вы можете обратиться в службу поддержки Apigee Edge, чтобы узнать подробности переноса.

Если у вас ещё нет лицензии, свяжитесь с отделом продаж Apigee.