Содержание

Индикаторы и их свойства

Индикатор - показатель, отражающий некоторое реальное или логическое наблюдаемое свойство. Например, индикатор может отражать доступность вебсайта, нагрузку на сервер, объем доступного места на дисках, количество покупок в интернет-магазине за последние 24 часа, количество необработанных заявок в CRM системе, сегодняшний курс доллара США, температура воздуха.

Основные свойства индикаторов:

Статус (status) - основное свойство индикатора, может принимать значение OK (хорошо) или ERR (плохо). При изменении статуса индикатора - высылается оповещение (алерт).

Метод проверки (check method) - Способ, которым okerr обрабатывает индикатор. Подробнее - в соответствующем разделе.

Аргументы (arguments) - Несколько аргументов, в зависимости от метода проверки. Например, для проверки методом ping, используется аргумент host, для метода HTTP Status - используются аргументы URL и Status и так далее.

Детали (details) - строковое краткое пояснение к статусу. Служит для удобства пользователя, само по себе никак не влияет на работу системы. Например, при выставлении ошибки, пользовательский модуль проверки может указать причину, чтобы ускорить исправление проблемы. Допустим, пользовательская проверка СУБД может сообщить в деталях, что 'mysql is down' или 'wrong password' или 'no such database'. Изменение деталей не влечет отсылку почтового оповещения (алерта). Алерт отсылается только при изменении статуса.

Изменено (changed) - время последнего изменения статуса индикатора (OK -> ERR или ERR->OK). Исключением являются динамические индикаторы - для них статус остается прежним, но при изменении контролируемого значения, текущее время записывается в параметр changed .

Обновлено (updated) - время последней активности по индикатору. Например, для стабильно работающего сервера, наблюдаемого с интервалом раз в час, время в updated будет (в большинстве случаев) - не более 1 часа от текущего времени, а дата-время в changed может быть год назад, когда был последний сбой.

Отключено (disabled) - если флаг Отключено установлен - система не обрабатывает индикатор. Эквивалентно простому удалению индикатора, но отключенный индикатор легко восстановить сняв этот флажок.

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

Тихий (silent) - Индикатор с флагом silent - не генерирует почтовых оповещений. Это удобно для создания более сложных и гибких индикаторов, когда индикаторы нижнего уровня (с флагом silent) отражают наблюдаемые парамеры, но не вызывают оповещений, а индикаторы высогого уровня - изменяют свой статус (и генерируют оповещения) - при соблюдении какого-то более сложного условия, например сервис не работает более 30 минут или какой-то сервис недоступен и сейчас не допустимое время для профилактических работ.

Ожидание (Expected) - ожидаемое время следующей проверки индикатора. (подробнее см. Scheduled)

Запланировано (Scheduled) - запланированное время следующих действий системы по индикатору. Для активных индикаторов, scheduled и expected выставляются в одинаковое значение. Для пассивных индикатоов - expected выставляется в ожидаемое время получения новой информации о статусе, а scheduled - несколько позднее (на время из аргумента patience). Например, если ожидается обновления информации по пассивному индикатору каждые два часа, и patience установлено в 20 минут (1200 секунд), то после получаения очередного обновления, expected будет установлено на 2 часа вперед, а scheduled на 2 часа 20 минут вперед. Через 2 часа и 1 минуту, если обновление с клиента так и не поступило - индикатору будет выставлен флажок pending (отображаемый в системе как "песочные часы"), но статус по прежнему будет OK и оповещения не будет. Статус сменится на ERR и создастся оповещение только если обновление так и не поступит до времени scheduled (через 2ч20мин). Это позволяет избежать ложных срабатываний из-за высокой загрузки серверов или сетевых задержек, но при этом видеть, когда обновления задерживаются.

Обслуживание (maintenance) - имеет пустое значение (если индикатор работает в штатном режиме) или же время начала обслуживания (если индикатор "на ремонте"). В режиме maintenance индикатор работает так же как и обычно, но не отсылает оповещения. Это позволяет проводить работу с серверами и мониторингом, делать проверки, и при этом не беспокоить команду сообщениями о проблемах, по исправлению которых уже идет работа.

Политика (policy) - политика (набор правил), по которым система ведет работу по индикатору. Подробнее - в сответствующем разделе ниже.

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

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

Активные индикаторы - для активных индикаторов система периодически запускает способ проверки (например, проверяет страничку по HTTР, проверяет открытый TCP порт, итд) и отражает успешность проверки в статусе индикатора.

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

Статические индикаторы - проверяют наблюдаемый параметр на соответствие заранее указанным значениям. Например, определенный TCP порт должен быть открыт. Страничка index.html должна выдавать статус 200. Хеш-сумма страницы должна быть равна определенному значению. Если условие не соблюдается, выставляется статус ERR. Само эталонное значение система не изменяет, кроме одного исключения - если значение не инициализировано (пустая строка), система его проинициализирует значением, полученным при первой проверке.

Динамические индикаторы - в отличие от статических, сами изменяют каждый раз эталонное значение, по результатам последней проверки. Например, динамический индикатор, отслеживающий хэш-сумму HTTP документа, при ее изменении - запишет новое значение, и при следующих проверках будет сравнивать с ним. Если новое значение отличается от предыдущего - система все равно не поменяет статус динамического индикатора, но тем не менее, вышлет оповещение, что наблюдаемый параметр изменился. Это удобно, например, чтобы один раз получать уведомления при изменении какой-то страницы, и после этого не изменять значение вручную (чтобы избежать повторных уведомлений при каждой последующей проверке).

Оповещения

Оповещения (alerts) рассылаются в следующих случаях:

  • Изменился статус индикатора (OK -> ERR или ERR -> OK)
  • Для индикаторов с динамическими методами проверки, оповещение рассылается при изменении наблюдаемого параметра (например, изменилась хэш-сумма наблюдаемой страницы)

Оповещения не отправляются пользователю в следующих случаях:

  • Индикатор находится на обслуживании (maintenance).
  • У индикатора установлен флажок silent (тихий)
  • Пользователь отписан от уведомлений на этом индикаторе.
  • Пользователь отписан от получения любых уведомлений вообще (в настройках профиля)
  • Уровень пользователя - владельца проекта, у которому относится индикатор - не разрешает отправку уведомлений, либо количество уведомлений ограничено, и равно нулю.

Проекты

Политики

Сводки

Уровни пользователей