Методы проверки

Каждый индикатор имеет свой метод проверки и соответствующие ему аргументы, которые определяют правила, по которым будет изменяться статус индикатора. Например, метод проверки ping будет устанавливать индикатору статус OK если пинг прошел успешно (узел доступен в сети) или ERR, если до узла нет пинга.

Методы проверки принципиально делятся на две категории, активные и пассивные.

Активные методы - исполняются сервером по расписанию. Например, ping, sslcert, logic.

Пассивные методы - ждут сигнала с клиента с новым статусом, но имеют таймаут, по достижении которого (если не было сигнала с клиента) автоматически переводят индикатор в состояние ERR.

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

Общие аргументы

Для активных индикаторов, работающих с HTTP/HTTPS (httpstatus, sslcert, sha1static, sha1dynamic) есть параметр options.

Options - дополнительные опции, перечисленные через пробел. По умолчанию - пустая строка.

ssl_noverify - если в options указана эта опция, ошибка с сертификатом будет проигнорирована. Может быть использована, например, для проверки https сайтов с self-signed сертификатом.

addr=... - после знака = должен быть указан IP адрес или имя хоста. Соединение будет установлено именно на этот хост (но в HTTP заголовке Host: и в качестве имени хоста для SSL SNI будет использоваться имя хоста из URL). Может быть использована, например, когда у нас есть несколько дублирующих веб-серверов для сайта, и мы хотив в индикаторе проверять конкретный сервер.

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

Patience (допустимая задержка) - если установлен, то переопределяет допустимую задержку, которая указана в политике. Например, если период в политике 1 час (3600 сек), и patience в индикаторе установлен в значение 40 минут (2400 сек), то значение таймаута, после которого индикатор перейдет в состоянии ошибки будет 1 час 40 минут, вне зависимости от patience, указанной в политике.

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

В большинстве случаев оба этих аргумента можно не устанавливать.

Примеры и тестирование

В описаниях индикаторов приводятся примеры. Чтобы эти примеры успешно работали, требуется ряд условий:

  • Okerrclient должен быть установлен и настроен: в файле конфигурации (/etc/okerrclient.conf) должны быть указаны правильное имя проекта и секрет (если требуется).
  • Политика Default должна допускать обновление с адреса клиента по HTTP, должен быть включен флаг autocreate, секрет должен совпадать с тем, что установлен в конфигурационном файле.
  • В проекте должно быть "свободное место" для новых индикаторов, то есть, количество индикаторов должно быть меньше, чем значение maxindicators, которое можно посмотреть в профиле пользователя.
  • В проекте не должно быть индикатора с именем, которое используется в тесте. Либо, он должен быть создан с указанными в тесте параметрами.

Команда METHOD (например: "METHOD numerical minlim=50 maxlim=100") если используется в примере, необходима только для создания индикатора (и установки его аргументов при создании). Если индикатор уже создан, то команду METHOD можно не использовать.

Информация о методах проверки

Через API можно получить напрямую информацию о методах проверок, используемых в okerr в виде JSON структуры.

Адрес: https://cp.okerr.com/api/checkmethods

Даже если информация в документации может устареть, API показывает актуальные данные, которые на самом деле используются в сервере.