Особенности и функции okerr

Зачем нужен okerr?

Для менеджеров проекта

Okerr позволяет сократить потери от технических проблем.

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

  • Свершившиеся проблемы (сервер недоступен, страничка выдает ошибку, итд) обнаруживаются быстро, может быть даже быстрее, чем пользователи их заметят.

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

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

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

Для программистов и админов

  • Okerr помогает отлаживать сложные и непонятные проблемы. Легко создать собственную проверку, которая будет периодически выполняться и быстро оповестит, чтобы увидеть проблему, пока она еще не «ушла».

  • Открытая архитектура позволяет легко интегрировать в собственное ПО, а простой HTTP API позволяет легко управляться даже с большим количеством индикаторов. Все в открытом коде, как мы любим.

Легко попробовать!

Не нужно устанаваливать серверное ПО, можно использовать наш сервер okerr. Даже не требуется регистрироваться, можно использовать демонстрационную учетную запись.

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

Сервис

Можно все ПО поставить у себя и использовать для своих проектов. Можно предоставлять сервис мониторинга вашим пользователям.

Командная работа

Над проектами можно работать одному или с другими участниками команды

Типы проверок

Сетевые проверки

  • Срок действия SSL сертификата (для вебсайтов, почтовые серверов, итд)

  • Ping (проверка, что хост онлайн)

  • TCP Port (TCP порт открыт, сервис слушает порт)

  • Код статуса HTTP(s) (например, должен быть 200 (OK), а не 404 (Not found) или 500 (Internal Server Error))

  • Текст страницы HTTP(s) (например, должен иметь определенный текст, и не иметь текста“PHP Error“)

  • Контент странцы HTTP(s) (sha1 хеш). Предупреждает, если содержимое страницы изменилось

  • DNS имя

  • WHOIS (срок действия доменного имени)

  • Antispam проверки по 50+ черным спискам (DNSBL)

Возможно указывать конкретный сенсор для сетевой проверки (например, делать ее из Парижа, Франция). В случае обнаружения проблемы при проверке может быть выполнена перепроверка с другого сенсора.

Локальные проверки

Для локальный проверок okerr предоставляет следующие типы индикаторов:

Heartbeat (сердебиение)

Простейший тип индикатора, либо OK либо ERR. Автоматические переключается в состояние ERR (устанавливает ошибку, высылает оповещение) через указанное время если состояние OK не будет своевременно подтверждено. Heartbeat полезны в случаях, когда вся логика реализована на клиентской части (клиент выполняет проверку, принимает решение, посылает OK или ERR).

Numerical (числовой)

Устанавливает ошибку, если число с локального сервера «нехорошее» (нарушает установленный максимальный/минимальный лимит или отличие от предыдущего значения слишком велико)

String (строковый)

Устанавливает ошибку если новое строковое значение с сервера отличается от предыдущего

Эти три типа позволяют сделать множество разных проверок, которые выполняются утилитой okerrmod из пакета okerrupdate pages.

Встроенные в okerrmod проверки включают в себя (не полный список):

  • Наличие свежих файлов бэкапов

  • Список открытых TCP портов (обнаруживает, например, что сетевой сервис остановлен/упал или запущен новый)

  • Объем свободного места на дисках

  • Загрузка сервера (load average)

  • Аптайм сервера (оповещает при перезагрузке)

  • Слежение за размером каталогов (оповестит, например, если размер пользовательского веб-сайта стал большим)

  • Слежение за журналами ошибок приложений (оповестит, если файл имеет ненулевую длину)

  • Слежение за размером лог-файлов и аномально быстрым ростом (если почтовый сервер взломан и используется для рассылки спама; если есть какая-то проблема и сообщения о проблеме записываются каждые несколько секунд)

  • Слежение за аномалиями в SQL базе данных. (Сообщит и о том, что сервер недоступен, и о том, что «обычно у нас оформляется 100 покупок за час, а сейчас только 10, вероятно, что-то не так и нужно проверить»)

Полный список встроенных проверок.

Логические индикаторы (lambda)

Логические индикаторы позволяют отслеживать сложныe логические условия на основе обычных индикаторов. Например:

  • Сервер X может выключаться для регламентных работ с 3:00 до 5:00 утра

  • Можно иметь до 2 выключенных(поломанных) серверов, если еще как минимум 3 сервера работают

Telegram

Okerr имеет телеграм-бот для мобильного интерфейса. Можно мгновенно посмотреть состояние проектов и перепроверить проблемные индикаторы из любого места.

Бесплатно

Okerr - беслатное ПО с открытыми исходными кодами, распространяется по лицензии AGPL. Клиентские модули используют еще более свободную лицензию MIT.

Низкое потребление ресурсов

Клиентский модуль (на языке Python) занимает менее 50Kb. (требует python3 и некоторые другие пакеты, большая часть из которых уже установлена на типичном сервере)

Так как работает из cron (обычно - каждые 20 минут), то имеет НУЛЕВОЕ постоянное потребление памяти.

Открытый код, открытый API

Все (клиент, библиотеки, сервер) поставляется с открытым кодом. Взаимодействие выполняется по стандартным протоколам, так что можно легко интегрировать собственное ПО с okerr, создавать собственные модули проверок и клиенты. Можно даже обновлять индикаторы через curl.

Если ваше ПО написано на Python или Shell скрипты, вы можете использовать okerrupdate. Так же можно использовать любую HTTP библиотеку для любого языка программирования.

Модули проверок (для okerrmod) используют очень простой интерфейс и могут быть написаны на любом языке программирования. Большинство нестандартных проверок можно написать в виде shell команд или скриптов.