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

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

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

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

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

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

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

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

OpenLDAP/UI/Management Server 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 рекомендуется использовать сетевое хранилище, поскольку:

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

Ниже приведены требования к оборудованию для установки сервисов монетизации (не поддерживаются при установке "все в одном"):

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

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

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

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

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

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

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

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

Предварительное требование: включите репозиторий EPEL

Прежде чем продолжить установку, убедитесь, что репозиторий EPEL (Extra Packages for Enterprise Linux) включен. Для Red Hat, CentOS или Oracle Linux 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 17 и Java 21. Поддерживаемые 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.54.00.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

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

Рекомендуем проверить настройки сети перед установкой. Установщик предполагает, что у всех компьютеров фиксированные 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 могут блокировать связь некоторых портов и влиять на установку OpenLDAP, Postgres и Cassandra. На этих узлах проверьте /etc/hosts.allow и /etc/hosts.deny, чтобы убедиться, что нет ограничений на порты, необходимые для OpenLDAP, Postgres и Cassandra.

iptables

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

sudo/etc/init.d/iptables stop

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

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

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

Пограничный маршрутизатор использует маршрутизатор 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

Отключите DNS-запросы по IPv6, если вы используете NSCD (Name Service Cache Daemon).

Если вы установили и включили NSCD (Name Service Cache Daemon), Message Processor выполняет два 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 Platform, отключите IPv6 на всех узлах Qpid.

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

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

Перед новой установкой на Amazon Linux 2023.9/2023.10/2023.11 или обновлением с версии 4.53.01 до 4.54.00 (на Amazon Linux 2023.9/2023.10/2023.11) отредактируйте файл /etc/yum.repos.d/amazonlinux.repo. Раздел, содержащий [amazonlinux], должен включать следующие строки, чтобы пакеты скачивались из apigee-thirdparty, а не из Amazon:exclude=postgresql18,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 для Private Cloud и виртуальных хостов. Термин virtual используется в двух основных значениях:

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

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

Например, на одном физическом сервере A могут работать две виртуальные машины – VM1 и VM2. Предположим, что VM1 предоставляет виртуальный интерфейс Ethernet, который в виртуальной машине называется eth0 и которому средства виртуализации или сетевой DHCP-сервер назначают IP-адрес 111.111.111.111. Предположим также, что 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.

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

В операционной системе физического хоста может быть сетевой брандмауэр. В этом случае он должен быть настроен на передачу 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.

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

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