Руководство по установке#

В руководстве приведены инструкции по установке и первичной настройке компонента Веб-сервер и обратный прокси-сервер SynGX (SNGX) из состава программного продукта Platform V SynGX (SNX).

Термины и определения#

Термин/Аббревиатура

Определение

Сервис

Комплекс программных и аппаратных средств, обеспечивающих выполнение ограниченного набора функций

АС

Автоматизированная система

ОС

Операционная система

ЦОД

Центр обработки данных - специализированное здание или помещение, в котором размещается серверное и сетевое оборудование

Платформа, Platform V

Набор продуктов Platform V, правообладателем которых является АО «СберТех». Перечень таких продуктов обозначен в документации на конкретный продукт

Продукт, SynGX

Продукт Platform V SynGX (SNX), в состав которого входит компонент Веб-сервер и обратный прокси-сервер SynGX (SNGX)

СПО

Системное программное обеспечение

Веб-сервер

Сервер, который возвращает статический контент в ответ на запрос, или кеширует статические или редко изменяющиеся ответы от других вычислительных узлов для выдачи при повторных запросах. Элемент клиент-серверной архитектуры

Обратный прокси-сервер (reverse proxy)

Сервер, который перенаправляет и маршрутизирует запросы к другим вычислительным узлам и балансирует нагрузку между ними

Nginx

Веб-сервер и обратный прокси-сервер

Клиент (с точки зрения SynGX)

Пользователь или сервис, делающий сетевой запрос к SynGX для получения ответа

Приложение (с точки зрения SynGX)

программный компонент, который предоставляет ответы на сетевые запросы клиентов

HTTP-запрос

Запрос по протоколу HTTP

HTTPS-запрос

Запрос по протоколу HTTPS

VM

Virtual machine - виртуальная машина

Администратор SynGX

Администратор SynGX, который устанавливает и настраивает SynGX на VM и обеспечивает его работоспособность

yum

Открытый консольный менеджер пакетов для дистрибутивов Linux, основанных на пакетах формата RPM

Системные требования#

Настройки безопасности окружения и перечень сторонних (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе (далее — ИС), выбираются клиентом при разработке конечной ИС, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности (далее — ИБ), предъявляемых к ней.

Системное программное обеспечение#

Описание комплекса технических средств и стороннего программного обеспечения, необходимых для работы SynGX

Категория ПО

*Обязательность установки (да/нет)

Наименование ПО

Версия

**Продукт, функциональная совместимость с которым подтверждена

Описание

Операционная система

Да

Альт 8 СП

8

Рекомендовано

ОС VM для запуска модулей компонента

Red Hat Enterprise Linux (RHEL)

8.7

Опционально

ОС VM для запуска модулей компонента

Библиотека ПО

Да

libxslt

1.1.32-6

Рекомендовано

Библиотека XSLT C

Библиотека ПО

Да

libgd

2.2.5-7

Рекомендовано

Библиотека с открытым исходным кодом для динамического создания изображений программистами

Библиотека ПО

Да

libluajit

2.1.x

Рекомендовано

Библиотека luajit

Библиотека ПО

Да

libm

6.x

Рекомендовано

Математическая библиотека C (libm)

Библиотека ПО

Да

libmaxminddb

1.2.x

Рекомендовано

Библиотека C для чтения файлов MaxMind DB, включая базы данных GeoIP2 из MaxMind

Библиотека ПО

Да

libpcre

8.42-6

Рекомендовано

Библиотека регулярных выражений, совместимых с Perl: синтаксис выражений

Библиотека ПО

Да

glibc

2.x

Рекомендовано

Стандартная библиотека языка C

Библиотека ПО

Да

xcrypt

4.x

Рекомендовано

Криптографическая библиотека

Библиотека ПО

Да

openssl

1.1.1

Рекомендовано

Криптографическая библиотека

Библиотека ПО

Да

libxml2

2.x

Рекомендовано

XML-инструментарий, реализованный на C

Библиотека ПО

Да

gnu_hash

glibc-2.x

Рекомендовано

Библиотека хэш-значения Gnu

Библиотека ПО

Да

libdl

glibc-2.x

Рекомендовано

Библиотека для динамического линкования

Библиотека ПО

Да

libpthread

glibc-2.x

Рекомендовано

Библиотека обеспечивает поддержку многопоточности

Библиотека ПО

Да

zlib

1.2.11 или выше

Рекомендовано

Библиотека для сжатия данных

Примечание:

*

  • Да — категория ПО обязательна для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данной категории ПО).

  • Нет — категория ПО необязательна для функционирования сервиса (это означает, что сервис может выполнять свои основные функции без установки данной категории ПО).

**

  • Рекомендовано — рекомендованный АО «СберТех» продукт.

  • Опционально — альтернативный по отношению к рекомендованному АО «СберТех» продукт.

Платформенные зависимости#

В данной версии Продукта платформенные зависимости не предусмотрены (дополнительная интеграция с программными продуктами, правообладателем которых является АО «СберТех», для работы SynGX не требуется).

Аппаратные требования#

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

Сервис

CPU (ядра)

RAM (ГБ)

Диски (ГБ)

Количество машин

NIC (пропускная споcобность интернет-канала)

Тип машины (ОС)

SynGX

2

4

10

1

не менее 1000 Мбит/с

«Альт 8 СП» либо «RHEL 8.7» (опционально)

Внимание: не рекомендуется размещение двух и более СПО (одного или разных типов) на одной VM в связи с конкуренцией за аппаратные ресурсы, и, как следствие, сложность в локализации проблем при возникновении инцидентов при промышленной эксплуатации.

Состав дистрибутива#

Дистрибутив с кодом SynGX поставляется в виде zip-архива, внутри которого находится следующие RPM-пакеты:

Элемент дистрибутива

Описание

./SNX-<rpm_version>-syngx-distrib.alt8.x86_64.rpm

RPM пакет SynGX для ОС Альт 8 СП (рекомендовано)

./SNX-<rpm_version>-syngx-distrib.el8.x86_64.rpm

RPM пакет SynGX для ОС RHEL 8.7 (опционально)

./SNX-<rpm_version>-brotli-distrib.<os_type>.x86_64.rpm

RPM пакет динамического модуля brotli

./SNX-<rpm_version>-lua-distrib.<os_type>.x86_64.rpm

RPM пакет динамического модуля lua

./SNX-<rpm_version>-ndk-distrib.<os_type>.x86_64.rpm

RPM пакет динамического модуля ndk

./SNX-<rpm_version>-njs-distrib.<os_type>.x86_64.rpm

RPM пакет динамического модуля njs

./SNX-<rpm_version>-sslkeylog-distrib.<os_type>.x86_64.rpm

RPM пакет динамического модуля sslkeylog

, где:

  • <rpm_version> - устанавливаемая версия rpm-пакета SynGX;

  • <os_type> - версия rpm-пакета динамического модуля для требуемой ОС: alt8 - для ОС Альт 8 СП, el8 - для ОС RHEL 8.7.

Выбор способа установки#

Установка SynGX заключается в установке или обновлении RPM-пакета самого SynGX, а также необходимых для его работы библиотек и пакетов.

Установить RPM-пакет SynGX можно двумя способами:

  1. Используя консольный пакетный менеджер yum.

  2. Воспользовавшись RPM-утилитой.

Подготовка окружения#

Подготовка стенда (сервера)#

За подготовку стенда (VM) для SynGX отвечают администраторы SynGX.

В ходе подготовки стенда необходимо руководствоваться системными требованиями для SynGX - см. раздел «Системные требования» выше.

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

Подготовка ОС к установке SynGX#

Корректная работа SynGX гарантируется для двух ОС:

  • ОС «Альт 8 СП»;

  • ОС «Red Hat Enterprise Linux» (RHEL) 8.7 (опционально).

Для инсталляции на одну из выше перечисленных ОС должен использоваться соответствующий RPM пакет из дистрибутива SynGX.

Перед установкой SynGX необходимо настроить ОС:

  • создать пользователя syngx, от имени которого будет запускаться SynGX;

  • создать группу syngx, в которую включить пользователя syngx (syngx:syngx);

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

    1. добавить (скорректировать) в файл /etc/security/limits.conf следующие строки:

      • syngx soft nofile 128000

      • syngx hard nofile 128000

      • syngx soft nproc 128000

      • syngx hard nproc 128000

    2. добавить (скорректировать) в файл /etc/sysctl.conf следующие строки:

      • kernel.pid_max 4194304 – или большее значение

      • fs.file-max 128000 – или большее значение, но не более 10 % от оперативной памяти.

SynGX может быть установлен в отдельную точку монтирования /opt/syngx/ размером от 10 Гб. Если для хранения логов SynGX используется папка внутри директории /opt/ (по умолчанию /opt/syngx/logs), при отсутствии отдельной точки монтирования, необходимо следить, чтобы логи SynGX не занимали более 10% от размера директории /opt/.

Установка необходимых пакетов и библиотек перед установкой SynGX#

Для корректной работы SynGX перед установкой Продукта в ОС на VM необходимо установить некоторые свободнораспространяемые пакеты и библиоткеки. Ниже даны инструкции по их установке на ОС Альт 8 СП и на ОС RHEL 8.7 (необходимо выбрать инструкцию под используемую ОС).

  1. Установка пакетов и библиотек на ОС Альт 8 СП.

Необходимо произвести установку следующих пакетов и библиотек, используя команду apt-get в командной строке:

$ sudo apt-get install unzip
$ sudo apt-get install yum
$ sudo apt-get install libgd3
$ sudo apt-get install luajit
$ sudo apt-get install libmaxminddb
  1. Установка пакетов и библиотек на ОС RHEL 8.7 (опционально).

Необходимо произвести установку следующих пакетов и библиотек, используя команду yum в командной строке:

$ sudo yum install unzip
$ sudo yum install gcc
$ sudo yum install gd-devel
$ sudo yum install -y libmaxminddb

Далее для ОС RHEL требуется установить библиотеку luajit из клентского репозитория. Для этого нужно выполнить команду yum в командной строке:

$ sudo yum install luajit-2.1.0-*.x86_64.rpm

, где: * - мета-данные библиотеки luajit.

Установка#

После выполнения подготовительных действий, описанных в разделе «Подготовка окружения», можно приступить к установке Продукта. Установка SynGX заключается в установке или обновлении RPM-пакета самого SynGX.

Установить пакет можно двумя способами:

1. Используя консольный пакетный менеджер yum, выполнив следующую команду (пример):

1a. Для ОС Альт 8 СП:

$ sudo yum install SNX-<rpm_version>-syngx-distrib.alt8.x86_64.rpm

1b. Для ОС RHEL 8.7 (опционально):

$ sudo yum install SNX-<rpm_version>-syngx-distrib.el8.x86_64.rpm

, где:

  • <rpm_version> - устанавливаемая версия rpm-пакета SynGX;

2. Воспользовавшись RPM-утилитой, выполнив следующую команду (пример):

2a. Для ОС Альт 8 СП:

sudo rpm -Uvh SNX-<rpm_version>-syngx-distrib.alt8.x86_64.rpm

2b. Для ОС RHEL 8.7 (опционально):

sudo rpm -Uvh SNX-<rpm_version>-syngx-distrib.el8.x86_64.rpm

, где:

  • <rpm_version> - устанавливаемая версия rpm-пакета SynGX;

Список директорий и файлов после установки SynGX#

При установке RPM пакета в ОС появляются следующие файлы:

Расположение файлов после установки RPM пакета

Описание

/usr/sbin/syngx

Исполняемый файл syngx

/etc/systemd/system/syngx.service

Systemd unit, включающий в себя описание управления службой syngx

/etc/sudoers.d/syngx

Sudoers файл, включающий в себя разрешенный набор команд для пользователя syngx, запускаемых из-под привилегированного пользователя root

/etc/logrotate.d/syngx

Файл ротации логов, включающий в себя правила и параметры ротирования журналов SynGX

/opt/syngx/

Каталоги хранения конфигурационных файлов, файлов статического контента, файлов журналов, временных файлов, бинарных файлов модулей

Подробнее:

  1. Исполняемый файл syngx. Расположение файла после установки RPM пакета - /usr/sbin/syngx. Параметры, с которыми был собран SynGX, можно посмотреть командой syngx -V. Вывод команды может выглядеть следующим образом:

syngx version: SynGX/1.1.0 (based on nginx-1.22.1)
built by gcc 8.5.0 20210514 (Red Hat 8.5.0-16) (GCC)
built with OpenSSL 1.1.1k ⁣ ⁣FIPS 25 Mar 2021
TLS SNI support enabled
configure arguments: --with-ld-opt=-lpcre --with-cc-opt=-g3 --prefix=/opt/syngx --with-http_ssl_module --with-compat --with-http_addition_module --with-http_dav_module --with-http_random_index_module --with-http_secure_link_module --with-http_slice_module --with-http_degradation_module --with-http_xslt_module --with-mail --with-mail_ssl_module --with-stream_realip_module --with-stream_ssl_preread_module --with-stream --with-stream_ssl_module --with-http_v2_module --with-http_image_filter_module --with-threads --with-file-aio --with-http_gzip_static_module --with-poll_module --with-http_auth_request_module --with-http_sub_module --with-http_flv_module --with-http_gunzip_module --with-http_mp4_module --with-http_stub_status_module --with-http_realip_module --with-debug --with-http_perl_module=dynamic --with-perl_modules_path=/usr/lib64/perl5/ --with-perl=/usr/bin/perl --with-pcre-opt=-fPIC --with-cc-opt=-fPIC --add-module=../ngx_http_extstatus_module --add-module=../echo-nginx-module --add-module=../nginx_upstream_check_module --add-module=../nginx-sticky-module-ng --add-module=../headers-more-nginx-module --add-module=../ngx_http_geoip2_module --add-module=../nginx-module-vts --add-module=../ngx_http_proxy_connect_module --add-dynamic-module=../ngx_brotli --add-dynamic-module=../ngx_devel_kit --add-dynamic-module=../lua-nginx-module --add-dynamic-module=../stream-lua-nginx-module --add-dynamic-module=../njs/nginx --add-dynamic-module=../nginx-sslkeylog --sbin-path=/usr/sbin/syngx --modules-path=/opt/syngx/modules
  1. Systemd unit, включающий в себя описание управления службой syngx. Расположение файла - /etc/systemd/system/syngx.service. Состав файла:

[Unit]

Description=The SynGX HTTP and reverse proxy server

After=syslog.target

Wants=network.target network-online.target

After=network.target network-online.target

After=remote-fs.target

After=nss-lookup.target

[Service]

Type=forking

PIDFile=/opt/syngx/logs/syngx.pid

WorkingDirectory=/opt/syngx

ExecStartPre=/usr/sbin/syngx -t

ExecStart=/usr/sbin/syngx

ExecStop=/bin/kill -s QUIT $MAINPID

ExecReload=/usr/sbin/syngx -s reload

PrivateTmp=true

[Install]

WantedBy=multi-user.target
  1. Sudoers файл, включающий в себя разрешенный набор команд для пользователя syngx, запускаемых из-под привилегированного пользователя root. Расположение файла после установки RPM пакета - /etc/sudoers.d/syngx. Содержимое файла:

Defaults: syngx !requiretty
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
#
syngx ALL = (ALL) NOPASSWD:/usr/bin/systemctl start syngx
syngx ALL = (ALL) NOPASSWD:/usr/bin/systemctl stop syngx
syngx ALL = (ALL) NOPASSWD:/usr/bin/systemctl enable syngx
syngx ALL = (ALL) NOPASSWD:/usr/bin/systemctl disable syngx
syngx ALL = (ALL) NOPASSWD:/usr/bin/systemctl restart syngx
syngx ALL = (ALL) NOPASSWD:/usr/bin/systemctl reload syngx
syngx ALL = (ALL) NOPASSWD:/usr/sbin/syngx -t
#
syngx ALL = (ALL) NOPASSWD: /bin/chown -R syngx\:syngx /opt/syngx/html, /bin/chown -R syngx\:syngx /opt/syngx/conf, /bin/chown syngx\:syngx /opt/syngx/logs/
  1. Файл ротации логов, включающий в себя правила и параметры ротирования журналов SynGX. Расположение файла - /etc/logrotate.d/syngx. Содержимое файла:

/opt/syngx/logs/*.log {
    rotate 10

    size=100M

    daily

    dateext

    dateformat -%Y-%m-%d_%H-%s

    missingok

    compress

    delaycompress

    create 644 syngx syngx

    postrotate

        /bin/kill -USR1 cat /opt/syngx/logs/syngx.pid 2> /dev/null 2> /dev/null || true

    endscript
}
  1. Каталоги хранения конфигурационных файлов, файлов статического контента, файлов журналов, временных файлов, исполняемых файлов, сертификатов и прочее - находятся в директории:

  • /opt/syngx/ – основная папка, куда устанавливается SynGX. Владелец syngx:syngx: права 755.

Первичная настройка SynGX#

Работа SynGX и его модулей определятся конфигурацией, которая содержится в конфигурационном файле с расширением .conf (конфигурационный файл по умолчанию находится в директории /opt/syngx/conf/syngx.conf).

Настройка SynGX производится директивами, которые делятся на простые и блочные. Простая директива состоит из имени и параметров, разделённых пробелами, и оканчивается точкой с запятой (;). Блочная директива устроена так же, как и простая директива, но вместо точки с запятой после имени и параметров следует набор дополнительных инструкций, помещённых внутри фигурных скобок ({ и }). Если у блочной директивы внутри фигурных скобок можно задавать другие директивы, то она называется контекстом (примеры: events, http, server и location).

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

Директива

Описание

user (контекст: main)

У SynGX есть один главный и несколько рабочих процессов. Пользователем, из-под которого запускается главный процесс, является пользователь ОС, т.е. root. Пользователь рабочего процесса должен соответствовать владельцу директории, в которой установлен SynGX. Пользователь задается в первой строке конфигурационного файла, например, user syngx;

worker_processes (контекст: main)

Количество рабочих процессов, так же задается в конфигурационном файле, оно может быть фиксированным для данной конфигурации или автоматически устанавливаться равным числу доступных процессорных ядер, например, «worker_processes auto» или «worker_processes 1» соответственно. Число рабочих процессов (worker_processes) не должно превышать количество процессорных ядер сервера, на котором установлен экземпляр SynGX. Количество процессорных ядер для промышленной эксплуатации необходимо производить на стендах нагрузочного тестирования. Слишком низкое значение данного параметра ограничивает количество одновременно обрабатываемых соединений. Слишком большое значение может вызывать утилизацию CPU и привести к недоступности.

worker_rlimit_nofile (контекст: main)

Задает ограничение на максимальное число открытых файлов для рабочих процессов. Данный параметр должен задаваться по результатам прохождения нагрузочного тестирования (рекомендуемое значение - не менее 128000). Фактическое число одновременных соединений не может превышать действующее ограничение на максимальное число одновременно открытых файлов. Т.е. worker_rlimit_nofile >/= worker_connections x worker_processes (1280000 >/= 1024 x 1). Неверно подобранное значение данного параметра может привести к недоступности SynGX.

worker_connections (контекст: events)

Задает максимальное число соединений, которое может одновременно открывать рабочий процесс. Данный параметр зависит от ожидаемой нагрузки и задается по результатам прохождения нагрузочного тестирования (НТ). При отсутствии директивы в файле конфигурации значение по умолчанию будет равно 512. В дистрибутиве, поставляемом обслуживающей организацией, установлено значение 8192 (данное значение может быть увеличено или уменьшено согласно результатам НТ). Неверно подобранное значение данного параметра может привести к недоступности SynGX.

keepalive_requests (контекст: http, server, location, upstream)

Задаёт максимальное число запросов, которые можно сделать по одному keep-alive соединению. После того, как сделано максимальное число запросов, соединение закрывается. Использование слишком большого максимального числа запросов может приводить к чрезмерному потреблению памяти и не рекомендуется. Значение по умолчанию 1000. До версии nginx 1.19.10 по умолчанию использовалось значение 100.

keepalive_time (контекст: http, server, location, upstream)

Ограничивает максимальное время, в течение которого могут обрабатываться запросы в рамках keep-alive соединения. По достижении заданного времени соединение закрывается после обработки очередного запроса. Значение по умолчанию 1h (час).

keepalive_timeout (контекст: http, server, location)

Задаёт таймаут, в течение которого keep-alive соединение с клиентом не будет закрыто со стороны сервера. Значение 0 запрещает keep-alive соединения с клиентами. Значение по умолчанию 75s (секунд)

keepalive_timeout (контекст upstream).

Задаёт таймаут, в течение которого неактивное постоянное соединение с сервером группы не будет закрыто. Значение по умолчанию 60s (секунд)

proxy_timeout (контекст: stream, server)

Задаёт таймаут между двумя идущими подряд операциями чтения или записи на клиентском соединении или соединении с проксируемым сервером. Если по истечении этого времени данные не передавались, соединение закрывается. Значение по умолчанию 10m (минут).

proxy_pass (контекст: location), upstream (контекст: http)

Используя SynGX как proxy-сервер необходимо помнить о том, что проксируемые хосты не редко могут быть недоступны. Если один из хостов будет недоступен, то SynGX пометит его как не активный и временно прекратит отправку запросов на него, до тех пор, пока он снова не станет активным. Если upstream будет недоступен в момент перезагрузки ОС, то при запуске SynGX в логах появится запись - «host not found in upstream». В этом случае SynGX не запустится, пока проксируемый хост не будет доступен, или не будет удален из конфигурации. Значения, для перечисленных выше параметров, необходимо подбирать согласно профилю ожидаемой нагрузки и основываясь на результатах нагрузочного тестирования.

error_log (контекст: main, http, mail, stream ,server, location)

Место хранения логов и файла процесса SynGX задается так же в syngx.conf: error_log /opt/syngx/logs/error.log; pid /opt/syngx/logs/syngx.pid.

Все пути в конфигурационных файлах должны иметь абсолютный вид, например, для директивы ssl_certificate абсолютный путь расположения файла сертификата будет выглядеть следующим образом – /opt/syngx/ssl/certificate.file.crt.

Директивы, помещённые в конфигурационном файле вне любого контекста, считаются находящимися в контексте main. Директивы events и http располагаются в контексте main, server — в http, а location — в server. Строка конфигурации, вначале которой установлен символ «#» считается комментарием.

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

Пример настройки сбора статистики и состояния вычислительных узлов в группах балансировки

Для проведения мониторинга SynGX в конфигурационном файле SynGX можно настроить сервер по порту 80. Получение данных мониторинга осуществляется по следующим location:

  • /status_prometheus - предоставляет детальную статистику по HTTP-запросам в разрезе кодов HTTP-ответов в формате prometheus;

  • /status_json - предоставляет детальную статистику по HTTP-запросам в разрезе кодов HTTP-ответов в формате json;

  • /monitor_html - предоставляет текущее состояние вычислительного узла в группе балансировки при распределении запросов в формате HTML;

  • /monitor_json - предоставляет текущее состояние вычислительного узла в группе балансировки при распределении запросов в формате json;

  • /vts - предоставляет статистику по запросам в разрезе виртуальных серверов.

Метрики предоставляют модули SynGX - nginx-module-vts, ngx_http_extstatus_module, nginx_upstream_check_module. Описание доступных метрик SynGX приведено в «Руководстве по системному администрированию» документации SynGX.

Ниже показан пример конфигурации для осуществления мониторинга SynGX:

server {
 ⁣ ⁣ ⁣ ⁣listen 80;

 ⁣ ⁣ ⁣ ⁣⁣location / {
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣root ⁣ ⁣ ⁣/opt/syngx/conf/;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣index ⁣ ⁣start_page.html;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣}

 ⁣ ⁣ ⁣ ⁣location /status_prometheus {
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣snx_http_extstatus_prometheus on;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣allow ⁣ ⁣all;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣deny ⁣ ⁣all;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣error_log ⁣ ⁣ ⁣ ⁣off;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣access_log ⁣ ⁣ ⁣off;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣}

 ⁣ ⁣ ⁣ ⁣location /status_json {
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣snx_http_extstatus_json on;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣allow ⁣ ⁣all;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣deny ⁣ ⁣all;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣error_log ⁣ ⁣ ⁣ ⁣off;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣access_log ⁣ ⁣ ⁣off;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣}

 ⁣ ⁣ ⁣ ⁣location /monitor_html {
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣check_status html;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣error_log ⁣ ⁣ ⁣ ⁣off;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣access_log ⁣ ⁣ ⁣off;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣}

 ⁣ ⁣ ⁣ ⁣location /monitor_json {
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣check_status json;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣error_log ⁣ ⁣ ⁣ ⁣off;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣access_log ⁣ ⁣ ⁣off;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣}

 ⁣ ⁣ ⁣ ⁣⁣location /vts {
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣vhost_traffic_status_display;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣vhost_traffic_status_display_format html;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣error_log ⁣ ⁣ ⁣ ⁣off;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣access_log ⁣ ⁣ ⁣off;
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣}
 ⁣ ⁣ ⁣ ⁣}

Запуск SynGX#

Перед вводом в эксплуатацию должны быть соблюдены следующие требования:

  1. Дистрибутив SynGX имеет актуальную поддерживаемую версию;

  2. Установка SynGX произведена согласно разделам «Подготовка окружения», «Установка» данного Руководства по установке;

  3. Конфигурация SynGX имеет характеристики в соответствии с проведённым НТ и удовлетворяет минимально допустимым требованиям.

В начале переходим под учётную запись ОС с административными правами:

$ sudo su 

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

$ source /etc/environment

После чего, убедившись что syngx не запущен (ps -ef | grep syngx), можно произвести запуск SynGX:

  • Используя команду для ОС RHEL:

$ systemctl start syngx.service
  • Используя команду для ОС Альт 8 СП:

$ syngx

Тем самым, будет произведен запуск SynGX.

Опцианально для ОС RHEL: если требуется, чтобы SynGX автоматически запускался после перезагрузки ОС, это можно сделать, выполнив команду:

$ systemctl enable syngx.service

Обновление#

Обновление продукта, в зависимости от требуемого вида обновления, можно произвести следующими способами:

  1. Обновление самой версии SynGX:

    a. Обновить саму версию SynGX через update RPM (обновить RPM-пакеты);

    либо

    b. Произвести удаление, после чего заново произвести полную установку требуемых RPM-пакетов.

  2. Обновление конфигурации SynGX:

    • Для обновления конфигурации SynGX необходимо внести корректировки в конфигурацию продукта, после чего - выполнить команды «остановить», «запустить» - отправить сигналы SynGX-у в консоли «stop», «start» (со сбросом всех соединений и запросов), либо «reload» (подробнее - в руководстве по системному администрированию).

Удаление#

Удаление SynGX производится путем удаления RPM-пакетов SynGX. Для этого в консоли нужно прописать команду для SynGX-процессов:

sudo yum remove syngx

Будут удалены:

  • RPM-пакеты SynGX,

  • папки SynGX,

  • логи (если записывались).

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

Факт работы SynGX можно подтвердить путем выполнения команды в командной строке:

$ ps -ef | grep syngx

Данная команда выдаст список процессов syngx, которые запущены на данной машине. В случае успешности раскатки SynGX, будут отображаться master-процесс, worker-процессы.

Проверку работоспособности SynGX можно произвести с помощью отправки curl-запроса на localhost в командной строке:

curl 127.0.0.1:80/

Если SynGX работает в штатном режиме, то будет возвращен ответ «200 OK».

Также проверку работоспособности можно выполнить в любом браузере, обратившись по адресу 127.0.0.1:80/, если SynGX установлен на той же машине, на которой открывается браузер.

Если браузер установлен на другой машине, то следует обращаться по "белому" ip-адресу машины SynGX к порту 80, перед этим убедившись, что межсетевой экран машины, на которой установлен SynGX, держит открытым этот порт к запросам.

Если SynGX работает в штатном режиме, то будет возвращена стартовая страница SynGX. Если SynGX не работоспособен, то будет показано сообщение об ошибке.

Стартовая станица выглядит следующим образом:

Откат#

Принудительный откат SynGX на предыдущую версию выполняется посредством развертывания артефактов предыдущей версии.

Часто встречающиеся проблемы и пути их устранения#

Процесс установки SynGX подробно описан в предыдущих разделах. При возникновении проблем на каком-либо этапе, необходимо внимательно пройти по всем шагам этапа и воспроизвести инструкцию.

Проблемы, которые могут возникнуть при установке сервиса:

RPM пакет SynGX не устанавливается

Необходимо детально посмотреть в лог установки SynGX на сообщения об ошибках.

В явном виде причинами могут быть обозначены:

  • отсутствие необходимых библиотек из раздела «Подготовка окружения»:

    • рекомендация: администратору стенда необходимо установить необходимые библиотеки согласно разделам «Системные требования» и «Подготовка стенда (сервера)» данного руководства по установке;

  • неправильно выбранный пакет под конкретную ОС:

    • рекомендация: администратору стенда необходимо внимательно изучить список требуемых пакетов для установки SynGX согласно данному руководству и корректно подготовить сервер, после чего произвести установку SynGX;

  • некорректно прописанные названия rpm-пакетов в установке:

    • рекомендация: администратору стенда необходимо корректно подготовить сервер согласно данному руководству по установке, после чего произвести установку SynGX;

SynGX не запускается

В данном случае необходимо просмотреть в лог ошибок, который находится по пути /opt/syngx/logs/error.log при конфигурации по умолчанию.

В процессе эксплуатации продукта могут возникать такие ошибки запуска, например:

  • в случае конфигураций, подразумевающих использование сертификатов безопасности, ошибки могут быть связаны с их некорректностью (просроченный корневой сертификат, неправильно указанные пути к сертификатам, несовместимость дочерних и родительских сертификатов и пр.):

    • рекомендация: администратору стенда необходимо периодически проверять сертификаты на срок их действия, корректность настроенной конфигурации SynGX (указание путей расположения сертификатов);

  • отсутствие необходимых файлов:

    • рекомендация: администратору необходимо пройти чек-лист данного руководства по установке. В случае отсутствия указанных файлов, требуется заново пройти инструкцию по подготовке сервера и инструкцию установке SynGX;

  • синтаксические ошибки в конфигурации SynGX:

    • рекомендация: администратору необходимо убедиться, что в конфигурационном файле SynGX нет синтаксических ошибок;

  • ошибки, связанные с настройкой межсетевого экрана:

    • рекомендация: администратору стенда, в случае, если он самостоятельно настраивал межсетевой экран (не относится к документации SynGX), необходимо проверить правильность его настройки;

  • использование занятых портов, прописанных в конфигурации SynGX:

    • рекомендация: администратору необходимо самостоятельно убедиться, что те сетевые порты, которые указаны в конфигурационном файле SynGX, не заняты;

  • используемые библиотеки расположены в нестандартных путях:

    • рекомендация: администратору необходимо убедиться, что используемые библиотеки ПО расположены по стандартному пути - директория /lib, либо задать корректную директорию расположения библиотек в конфигурационном файле SynGX.

SynGX не удаляется

Необходимо детально посмотреть в лог на сообщения об ошибках.

Причинами могут быть:

  • отсутствие необходимых прав на папку /opt/syngx:

    • рекомендация: администратору необходимо убедиться, что на сервере у него есть права в директории SynGX. В случае отсутствия необходимых прав, требуется самостоятельно, средствами ОС, предоставить необходимые права;

  • уже пустой каталог на сервере:

    • рекомендация: администратору необходимо убедиться, что директории SynGX не пустые. Если директории пустые, то требуется удалить требуемые остаточные директории и файлы;

  • зависший процесс на сервере:

    • рекомендация: перезапустить процесс SynGX.

Действия в случае несоблюдения условий выполнения технологического процесса

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

Если авария вызвана сбоем работы оборудования, нужно определить причину сбоя, устранить сбойный элемент оборудования и протестировать систему.

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

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

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

Чек-лист валидации установки#

Валидация установки SynGX включает проверку по следующим позициям:

  1. Настройка ОС

    • Создан пользователь syngx.

    • Создана группа syngx, в которую включен пользователь syngx (syngx:syngx).

    • (рекомендация) В файле /etc/security/limits.conf присутствуют следующие строки:

      • syngx soft nofile 128000

      • syngx hard nofile 128000

      • syngx soft nproc 128000

      • syngx hard nproc 128000

    • (рекомендация) В файле /etc/sysctl.conf присутствуют следующие строки:

      • kernel.pid_max 4194304 – или большее значение

      • fs.file-max 128000 – или большее значение, но не более 10 % от оперативной памяти

      • Установлены пакеты и библиотеки для ОС Альт 8 СП:

      • unzip

      • yum

      • libgd3

      • libmaxminddb

      • luajit

    • Установлены пакеты и библиотеки для ОС RHEL (опционально):

      • unzip

      • gcc

      • gd-devel

      • libmaxminddb

      • luajit-2.1.0-*.el8.x86_64.rpm

      , где: * - мета-данные библиотеки luajit;

  2. Установка SynGX

    • Установлен корректный RPM-пакет SynGX под требуемую ОС. Ошибок в ходе установки не возникало.

    • После установки на сервере появились следующие директории и файлы (приведены стандартные пути и названия):

      /usr/sbin/syngx
      /etc/systemd/system/syngx.service
      /etc/sudoers.d/syngx
      /etc/logrotate.d/syngx
      /opt/syngx/
      
  3. Настройка и запуск SynGX (опционально)

    • Администратором самостоятельно произведена настройка конфигурационного файла с расишрением .conf, согласно требованиям и нормам эксплуатирующей организации.

    • Прописаны переменные окружения для пакета (/etc/environment).

    • Произведен запуск SynGX. Запуск прошел штатно.