Тип сервиса HttpMQProxy#

В контексте service объявляется тип сервиса, соответствующий service_http_mq_proxy:

service:
  service_http_mq_proxy:

Для корректной работы сервиса service_http_mq_proxy рекомендуется выполнить установку в соответствии с описанием, приведенном в разделе Процесс развертывания дистрибутива в Руководстве по установке.

Необходимо проверить права пользователя на добавление сообщений в очередь. В случае подключения по SSL/TLS, права должны быть у пользователя, из-под которого происходит запуск, в случае подключения без SSL - у пользователя, указанного в директиве ibmmq_mca_username.

HttpMQProxy - основные параметры#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

id

Обязательный

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

Текстовое значение (строка, число или их комбинация, разделитель — «_»)

—

url

Обязательный

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

Строковое значение

—

allowed_queries

Обязательный

Указание разрешенных методов запроса и параметров запроса

Параметры, описанные в разделе Параметр allowed_queries

Значения группы задаются пользователем

ibmmq_qmname_name

Обязательный

Имя менеджера очередей

Строковое значение

—

ibmmq_channel_name

Обязательный

Имя канала

Строковое значение

—

ibmmq_connection_name

Обязательный

Местоположение очереди в формате (слитно): host(port)

Строковое значение, например: XXX.XXX.XXX.XXX(1455)

—

ibmmq_queue_name

Обязательный

Имя очереди

Строковое значение

—

name

Опциональный

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

Строковое значение

—

profile_version

Опциональный

Версия профиля данного сервиса

Текстовое значение

—

description

Опциональный

Строка с описанием сервиса. Значение не является уникальным

Текстовое значение

—

listen

Опциональный

Настройки прослушивания. Если не указан, используются unix-сокеты

Последовательность параметров, описанных в разделе Параметр listen

—

hostname

Опциональный

Виртуальное имя сервера

Последовательность строковых значений

localhost

optional

Опциональный

Таймауты, сессия, ограничения, утилиты и др.

Параметры, описанные в разделе «HttpMQProxy - optional»

—

filters

Опциональный

Фильтр modsecurity — проверка download/upload трафика на наличие угроз

Группа параметров и их значения

—

validators

Опциональный (deprecated)

Валидация тела запроса/ответа. Рекомендуется использовать JsonValidation и XsdValidation

Параметры, описанные в разделе Настройка валидации в SOWA

—

postprocessors

Опциональный

Постобработчик postprocessor_error для формирования сообщения об ошибке по шаблону

Параметры, описанные в разделе Настройка постпроцессора в SOWA

—

log_masking_rules

Опциональный

Правила маскирования данных в заголовках и телах запросов/ответов

Последовательность параметров и их значения

—

log_masking_rules.log_type

Опциональный (в рамках log_masking_rules)

Тип логов

all — все типы; security — логи транзакций фильтра безопасности; event — логи событий

all

log_masking_rules.object

Обязательный (в рамках log_masking_rules)

Объект, к которому применяется маскирование

request_header, response_header, request_body, response_body

—

log_masking_rules.header

Обязательный (если object = request_header/response_header)

Имя заголовка, к которому применяется маскирование

Строковое значение

—

log_masking_rules.expression

Обязательный (если object = request_body/response_body)

Регулярное выражение с группами для определения фрагмента замены

Текстовое значение

—

log_masking_rules.replace_all

Опциональный (если object = request_body/response_body)

Заменять все или первое найденное значение

on, off

on

log_masking_rules.mask_symbol

Опциональный (в рамках log_masking_rules)

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

Строковое значение

*

Пример минимальной настройки:

version: 2.0.1
profile: XXX
system:
  wrk_count: auto
  conn_count: 1024
  optional:
    log_level: debug
    default_type: application/json
    ip_blacklist:
      enabled: yes
service:
  service_http_mq_proxy:
    - id: 1
      listen:
        - port: 8030
          ssl:
            certificate: sowaservercert.cer
            certificate_key: sowaservercert_private.key
            verify_client: 'on'
            verify_depth: 3
            client_certificate: csbapigwift.pem
            session_timeout: 5m
            session_cache:
              type: "shared"
              name: "SSL"
              size: 10m
      hostname:
        - XXX.api-sowa.XXX.ru
      url: /mq_ssl
      ibmmq_qmname_name: M99.HDPL.GW.CLS1
      ibmmq_channel_name: SAPI.SVRCONN
      ibmmq_connection_name: XXX.XXX.XXX.XXX(1455)
      ibmmq_queue_name: EVENT.LOGGING.HADOOP.SAPIWA

HttpMQProxy - allowed_queries#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

method

Обязательный

Разрешенный метод запроса для сервиса

head, post

—

params

Опциональный

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

Последовательность параметров и их значения

—

params.name

Обязательный (в рамках params)

Имя параметра. Значение должно быть уникальным

Строковое значение

—

params.pattern

Обязательный (в рамках params)

Значение, которое может принимать параметр name. Не чувствительно к регистру. Есть возможность использования регулярного выражения. Символы ^$.|?*+()- экранировать явно

Текстовое значение

—

HttpMQProxy - optional#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

log_level

Опциональный

Переопределение уровня логирования для сервиса

debug, info, notice, warn, error, crit, alert, off

Наследуется от значения в system

group_access_log

Опциональный

Группировка access журналов по кодам состояния (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500)

true, false

false

internal

Опциональный

Должен ли сервис быть доступен только локально

true, false

—

session_cache

Опциональный

Размер кэша для ssl/tls сессии

Группа параметров и их значения

Оценивается автоматически

session_cache.type

Обязательный (в рамках session_cache)

Тип размера кэша

off — жесткое запрещение; none — мягкое запрещение; builtin — встроенный в OpenSSL кэш; shared — разделяемый между рабочими процессами

—

session_cache.name

Обязательный (если type: shared)

Имя размера

Строковое значение

—

session_cache.size

Обязательный (если type: builtin или type: shared)

Величина размера

Текстовое значение с суффиксом: число (байты), k/K (килобайты), m/M (мегабайты)

—

ibmmq_charset_encoding

Опциональный

Набор кодированных символов Identifier (CCSID)

Целочисленное значение

4194304

ibmmq_max_msg_length

Опциональный

Размер переданного сообщения

Строковое значение

4194304

ibmmq_persistent

Опциональный

Атрибут персистентности

on, off

off

ibmmq_with_uow

Опциональный

Атрибут транзакции

on, off

off

ibmmq_work_mode

Опциональный

Блокирующий или неблокирующий режим для клиента mq

lock, nolock

lock

ibmmq_tcp_check_enabled

Опциональный

Проверка TCP перед установлением соединения с менеджером MQ

on, off

on

ibmmq_tcp_check_timeout

Опциональный

Время ожидания проверки TCP

Текстовое значение с суффиксом: ms, s, m, h, d, w, M, y

—

ibmmq_mca_username

Опциональный (если ibmmq_credential_file is None)

Имя пользователя. Для подключения без SSL/TLS необходимо дополнительно указать

Строковое значение

—

ibmmq_mca_password

Опциональный (если ibmmq_credential_file is None)

Пароль пользователя. Для подключения без SSL/TLS необходимо дополнительно указать

Строковое значение

—

ibmmq_sslcertificate

Опциональный

Путь к хранилищу сертификатов с наименованием хранилища, но без расширения (расширение должно быть .kdb)

Строковое значение

—

ibmmq_sslcertificate_key

Опциональный

Имя сертификата внутри хранилища сертификатов

Строковое значение

—

ibmmq_credential_file

Опциональный (если ibmmq_mca_username и ibmmq_mca_password are None)

Путь к файлу с учетными данными пользователя. Для подключения без SSL/TLS необходимо дополнительно указать

Строковое значение

—

ibmmq_cipher_spec

Опциональный

Тип шифрования

Список значений: ECDHE_ECDSA_3DES_EDE_CBC_SHA256, ECDHE_RSA_AES_128_CBC_SHA256, ECDHE_RSA_AES_128_GCM_SHA256, ECDHE_RSA_AES_256_CBC_SHA384, ECDHE_RSA_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, RC4_MD5_US и др.

RC4_MD5_US

opentelemetry_tracing

Опциональный

Секция параметров телеметрии

Параметры, описанные в разделе Параметр opentelemetry_tracing

Значения группы задаются пользователем

limit_req

Опциональный

Ограничение скорости обработки запросов

Параметры, описанные в разделе Параметр limit_req

—

limit_requests

Опциональный

Ограничение запросов

Параметры, описанные в разделе Параметр limit_requests

—

robot_mitigation

Опциональный

Противодействие роботам и сканированию портов

Параметры, описанные в разделе Параметр robot_mitigation

—

ip_behavior

Опциональный

Мониторинг поведения пользователей при доступе к серверу

Параметры, описанные в разделе Параметр ip_behavior

—

cookie_poisoning

Опциональный

Отслеживание заголовков Set-Cookies и значений cookie в ответе. Зависит от session_module

Параметры, описанные в разделе Параметр cookie_poisoning

—

gzip

Опциональный

Сжатие ответа методом gzip

Параметры, описанные в разделе Параметр gzip

—

async_io

Опциональный

Настройка файлового асинхронного ввода-вывода

Параметры, описанные в разделе Параметр async_io

—

log_masking

Опциональный

Правила маскирования чувствительной информации в логах

Параметры, описанные в разделе Параметр log_masking_rules

—

logging

Опциональный

Параметры отправки событий конфигуратора

Параметры, описанные в разделе Параметр logging

—

healthcheck_dynamic

Опциональный

Динамическая генерация ответов на запросы о состоянии экземпляра или сервиса

Параметры, описанные в разделе Параметр healthcheck_dynamic

—

pipelined_requests

Опциональный

Запрет использования HTTP pipelined requests для входящих запросов

on, off

on

http2_only

Опциональный

Ограничение приема входящих соединений только по протоколу http2

on, off

off

keepalive_time

Опциональный

Максимальное время обработки запросов в рамках keep-alive соединения

Текстовое значение с суффиксом: ms, s, m, h, d, w, M, y

1h

Пример session_cache:

session_cache:
  type: shared
  name: my_name_size
  size: 4k

Пример:

version: 2.0.1
profile: myapi_logs
system:
  wrk_count: auto
  conn_count: 1024
  optional:
    wrk_user: sowactl
    log_level: debug
    default_type: application/json
    ip_blacklist:
      enabled: yes
service:
  service_http_mq_proxy:
    - id: 1
      listen:
        - port: 8030
          ssl:
            certificate: sowaservercert.cer
            certificate_key: sowaservercert_private.key
            verify_client: 'on'
            verify_depth: 3
            client_certificate: csbapigwift.pem
            session_timeout: 5m
            session_cache:
              type: "shared"
              name: "SSL"
              size: 10m
      hostname:
        - ift.api-sowa.mycompany.ru
      url: /mq_ssl
      ibmmq_qmname_name: M99.HDPL.GW.CLS1
      ibmmq_channel_name: SAPI.SVRCONN
      ibmmq_connection_name: XXX.XXX.XXX.XXX(1455)
      ibmmq_queue_name: EVENT.LOGGING.HADOOP.SAPI
      optional:
        ibmmq_sslcertificate: mq/sba99usr
        ibmmq_sslcertificate_key: ibmwebspheremqsba99usr
        ibmmq_cipher_spec: RC4_MD5_US
      validators:
        validator_json:
          request:
            - url: /mq_ssl
              schema: json/EventLog.jsv
      filters:
        filter_mds:
          rules:
           - sowa-mq
          config:
            SecAuditEngine: 'on'