Параметр health_check#

Группа параметров health_check предназначена для проверки работоспособности сервиса.

Обязательные параметры:

  • enabled

    Вкл./Откл. модуля health_check.

    Тип параметра: логическое значение:

    • true;

    • false.

Опциональные параметры:

  • check_interval

    В значении параметра указывается интервал времени проверки запроса в ms.

    Тип параметра: целочисленное значение.

    По умолчанию:

    check_interval: 30000
    
  • check_interval_down

    В значении параметра указывается интервал времени для запроса hc в ms, если пир не доступен (находится в состоянии down).

    check_interval_down: 10
    

    Тип параметра: целочисленное значение.

    По умолчанию: значение задается пользователем.

  • fail_count

    В значении параметра указывается количество неудачных запросов на сервер для маркировки сервера 'down'.

    Тип параметра: целочисленное значение.

    По умолчанию:

    fail_count: 5
    
  • rise_count

    В значении параметра указывается количество удачных запросов на сервер для маркировки сервера 'up'.

    Тип параметра: целочисленное значение.

    По умолчанию:

    rise_count: 2
    
  • drain

    В значении параметра указывается количество неудачных запросов для маркировки сервера как 'drain'.

    Тип параметра: целочисленное значение.

    По умолчанию:

    drain: 2
    
  • timeout

    В значении параметра задается таймаут проверки запроса в ms.

    Тип параметра: целочисленное значение.

    По умолчанию:

    timeout: 1000
    
  • default_state

    В значении параметра указывается состояние сервера по умолчанию.

    Тип параметра: текстовое значение:

    • up;

    • down.

    По умолчанию:

    default_state: down
    
  • port

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

    Тип параметра: целочисленное значение.

    По умолчанию: значение параметра будет браться из значений параметра server последовательности upstream_groups.

  • type

    В значении параметра указывается тип запроса проверки.

    type: http
    

    Тип параметра: текстовое значение:

    • tcp;

    • ssl_hello;

    • http;

    • mysql;

    • ajp;

    • fastcgi.

    По умолчанию:

    type: tcp
    
  • http_send_method

    В значении параметра указывается http метод запроса.

    Если http_send_req определен, то значением параметра http_send_method должно быть POST. Иначе - GET.

    Если http_send_method не определен, но определен http_send_req, то http_send_method автоматически проставляется - POST.

    Используется в случае:

    • type: http.

    Тип параметра: текстовое значение.

    • GET;

    • POST.

    По умолчанию: значение задается пользователем.

  • http_send_url

    В значении параметра задается url-адрес для проверки работоспособности сервиса.

    Тип параметра: текстовое значение.

    По умолчанию:

    http_send_url: /
    
  • http_send_version

    В значении параметра указывается http версия запроса.

    Тип параметра: текстовое значение:

    • 1.0;

    • 1.1;

    • 2.0.

    По умолчанию:

    http_send_version: 1.0
    
  • http_send_headers

    В значении параметра задаются строки заголовков запросов.

    http_send_headers:
      - "X-MyHeader: foo"
    

    Существует возможность использовать внутренние переменные:

    $upstream_server_name - имя сервера из конфигурационного файла "as is".

    $upstream_server_host - имя хоста (без порта) из конфигурационного файла.

    http_send_headers:
      - "Host: $upstream_server_host"
    

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

    По умолчанию: значение задается пользователем.

  • http_send_req

    В значении параметра задается тело запроса. Если задан хотя бы один из http_send_*, то в http_send_req указывается только передаваемое тело сообщения.

    http_send_req: "user_message"
    

    Используется в случае:

    • type: http.

    • http_send_method не GET.

    Реализован до версии 2.1:

    http_send_req: "GET /extgw/healthcheck/v1 HTTP/1.0\\r\\n\\r\\n"
    

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • fastcgi_param

    В значении параметра указывается, какой запрос отправить, когда тип проверки - fastcgi.

    Используется в случае:

    • type: fastcgi.

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • http_status_alive

    В значении параметра определяется, какой код возврата считать положительным.

    http_status_alive: "http_2xx http_3xx"
    

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • check_shm_size

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

    Тип параметра: текстовое значение.

    По умолчанию:

    check_shm_size: 1M
    

    Данного размера хватает на группу из 512 серверов.

  • check_response_body

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

    Используется в случае:

    • type: http.

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • check_response_body_pattern

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

    Используется в случае:

    • type: http.

    check_response_body_pattern: '.*OK.*'
    

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • check_response_body_drain

    В значении параметра указывается нечувствительный к регистру поиск в теле ответа, чтобы отметить сервер как 'drain'.

    Используется в случае:

    • type: http.

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • check_response_body_drain_pattern

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

    Используется в случае:

    • type: http.

    check_response_body_drain_pattern: '.*FULL.*'
    

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • check_keepalive_req

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

    Тип параметра: целочисленное значение.

    По умолчанию: значение задается пользователем.

  • check_status_type

    В значении параметра определяется, какой тип возврата считать положительным.

    check_status_type: json
    

    Тип параметра: текстовое значение:

    • html;

    • csv;

    • json.

    По умолчанию: значение задается пользователем.

  • check_status_type

    В значении параметра определяется, какой тип возврата считать положительным.

    check_status_type: json
    

    Тип параметра: текстовое значение:

    • html;

    • csv;

    • json.

    По умолчанию: значение задается пользователем.

  • ssl_options

    Группа параметров, задающая настройки ssl/tls соединения с upstream'ом (backend'ом).

    Группа, включающая в себя параметры, описанные в разделе "Параметр upstream_ssl (util_upstream_ssl)".

    Тип параметра: группа параметров и их значения.

    По умолчанию: значение задается пользователем.

Пример:

health_check:
  enabled: true
  check_interval: 3000
  check_interval_down: 120000
  fail_count: 3
  rise_count: 1
  drain: 1
  timeout: 5000
  default_state: up
  type: http
  check_status_type: json
  check_response_body_pattern: '.*OK.*'
  check_response_body_drain_pattern: '.*FULL.*'
  http_status_alive: "http_2xx http_3xx"
  http_send_req: "GET /extgw/healthcheck/v1 HTTP/1.0\\r\\n\\r\\n"
  port: {{ uko_web_upstream_v1_port }}
  ssl_options:
    ssl_use: true
    ssl_protocols:
      - 'TLSv1.2'
    ssl_ciphers:
      - value:
        - "HIGH"
      - prefix: "!"
        value:
          - "aNULL"
      - value:
        - "NULL-SHA256"
    ssl_certificate: client_dev.cer
    ssl_certificate_key: client_dev.key
    ssl_verify: 'on'
    ssl_name: 'example.ru'
    ssl_trusted_certificate: ca_dev.cer # Задается файл с доверенными сертификатами CA в формате PEM, используемый при проверке сертификата проксируемого HTTPS-сервера.