Gatus

Open-source инструмент для автоматизированного мониторинга здоровья сервисов и создания страниц статуса с алертингом и поддержкой инцидентов, ориентированный на разработчиков.

Ссылки

Обзор

Gatus — это бесплатный self-hosted инструмент для автоматизированного мониторинга доступности сервисов и генерации страниц статуса, написанный на Go. Он выполняет активные проверки эндпоинтов по расписанию и уведомляет команду через 30+ каналов оповещения, позволяя обнаруживать сбои раньше, чем о них сообщат пользователи.

Что такое Gatus

Gatus — это лёгкое приложение на Go, которое решает одну из главных проблем традиционного мониторинга на основе метрик. Инструменты вроде Prometheus, CloudWatch или Datadog опираются на существующий пользовательский трафик и не способны обнаружить сбой, если к сервису никто не обращается. Классический пример: упал балансировщик нагрузки — метрики приложения выглядят нормально, а реальные пользователи уже не могут попасть на сайт.

Gatus действует иначе — он самостоятельно отправляет запросы к заданным эндпоинтам по расписанию и оценивает ответы по набору гибких условий. Если хотя бы одно условие нарушено, команда мгновенно получает оповещение. Одновременно Gatus автоматически формирует публичную или внутреннюю страницу статуса с историей доступности, графиками времени отклика и группировкой сервисов по категориям.

Весь проект полностью открытый, конфигурируется через YAML-файлы и развёртывается через Docker, Helm для Kubernetes или как standalone-бинарник. Демонстрационная страница статуса от автора проекта доступна по адресу status.twin.sh.

Сценарии использования

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

DevOps-команда настраивает проверку десятков микросервисов в облачной или on-premise среде. Gatus каждые 30–60 секунд опрашивает health-эндпоинты и при получении ошибки (HTTP 503, превышение времени отклика, некорректное тело ответа) мгновенно отправляет alert в PagerDuty, Slack или Telegram. Это позволяет реагировать на проблемы до появления массовых жалоб клиентов.

Публичная страница статуса для SaaS-продукта

Gatus автоматически генерирует status page с группировкой сервисов по категориям, историей доступности и графиками времени отклика. Можно встраивать бейджи (uptime, response time) в формате Shields.io в README проекта или техническую документацию для прозрачной коммуникации уровня SLA с клиентами и партнёрами.

API-мониторинг и автоматизированное тестирование

С помощью механизма Suites можно строить многошаговые workflow-тесты: логин → запрос к защищённому ресурсу → проверка данных → логаут. Каждый шаг проверяется по условиям — от HTTP-статуса до конкретных полей в JSON через JSONPath. Это фактически приёмочные тесты (UAT), работающие в автоматическом режиме.

Мониторинг SSL-сертификатов и доменов

Gatus позволяет отслеживать срок истечения SSL-сертификатов и доменных имён с заблаговременным оповещением. Условие вида [CERTIFICATE_EXPIRATION] > 48h или [DOMAIN_EXPIRATION] > 720h предотвращает инциденты, связанные с просроченными сертификатами или забытым продлением домена.

Мониторинг сервисов в приватных сетях

С помощью встроенной поддержки SSH-туннелирования Gatus может проверять сервисы, недоступные напрямую из интернета — внутренние микросервисы за jump-host, базы данных в закрытом контуре корпоративной сети, Redis и другие инфраструктурные компоненты.

Push-мониторинг через External Endpoints

Для сценариев, когда Gatus не может самостоятельно дотянуться до сервиса, предусмотрены External Endpoints — сервис сам отправляет свой статус в Gatus через API. Это полезно для мониторинга задач по cron, batch-процессов и других фоновых операций.

Особенности и ключевые возможности

Многопротокольный мониторинг

Gatus поддерживает широкий набор протоколов для активных проверок:

  • HTTP/HTTPS — для веб-сервисов, REST и GraphQL API
  • TCP/UDP/SCTP — для проверки доступности портов и сетевых сервисов
  • ICMP (ping) — для проверки сетевой доступности хостов
  • DNS — для проверки резолвинга доменов и типов записей (A, MX, CNAME и другие)
  • SSH — мониторинг через SSH-туннели для закрытых сетей
  • WebSocket — проверка WebSocket-соединений
  • STARTTLS / TLS — проверка шифрованных соединений
  • gRPC — мониторинг gRPC-сервисов

Гибкая система условий

Вместо простой проверки «сервис доступен или нет» Gatus позволяет задавать сложные условия валидации ответа:

  • Статус HTTP-ответа — [STATUS] == 200
  • Время отклика — [RESPONSE_TIME] 48h
  • Срок действия домена — [DOMAIN_EXPIRATION] > 720h
  • Паттерн-матчинг и встроенные функции — len, has, pat, any для гибкого разбора ответов

Алертинг через 30+ каналов

Gatus интегрируется с широким набором сервисов оповещения:

  • Мессенджеры и чаты — Slack, Discord, Microsoft Teams, Telegram, Mattermost, Google Chat, Matrix, Rocket.Chat
  • Инцидент-менеджмент — PagerDuty, Opsgenie, ilert, incident.io, Squadcast
  • Почта и SMS — Email, Twilio, Vonage, SendGrid, AWS SES
  • Push-уведомления — Gotify, Ntfy, Pushover, Line
  • Observability-платформы — New Relic, Datadog, Splunk
  • Автоматизация и трекинг — Zapier, IFTTT, GitHub Issues, GitLab, Gitea, custom webhooks

Для каждого алерта настраиваются пороговые значения: количество неудачных попыток для срабатывания (failure-threshold), количество успешных для восстановления (success-threshold), минимальный интервал повторных уведомлений и опция отправки уведомления при восстановлении сервиса (send-on-resolved).

Веб-интерфейс и визуализация

  • Автоматическая страница статуса с тёмным режимом
  • Группировка эндпоинтов по категориям с сортировкой и фильтрами
  • История доступности с графиками uptime и response time
  • Встраиваемые бейджи в формате Shields.io для README и документации
  • Поддержка объявлений о плановом техническом обслуживании (Maintenance Announcements)

REST API и метрики

  • REST API (/api/v1) для программного доступа к данным о статусе сервисов
  • Экспорт метрик в формате Prometheus (/metrics) для интеграции с существующими стеками мониторинга

Хранение данных

  • Memory — хранение в оперативной памяти (по умолчанию, подходит для тестирования и небольших инсталляций)
  • SQLite — локальная база данных для персистентного хранения без дополнительной инфраструктуры
  • PostgreSQL — масштабируемое решение для production-окружений с большим объёмом данных

Развёртывание и безопасность

  • Docker и Docker Compose для быстрого запуска (образ ghcr.io/twin/gatus:stable)
  • Helm charts для Kubernetes
  • Terraform для инфраструктуры как кода
  • Standalone-бинарник для простых развёртываний
  • Аутентификация через Basic Auth или OIDC
  • Поддержка TLS, mTLS, OAuth2, IAP (Identity-Aware Proxy)
  • Горячая перезагрузка конфигурации (hot reload) без перезапуска приложения

Конфигурация через YAML

Вся конфигурация Gatus описывается в YAML-файлах, которые удобно хранить в системе контроля версий (GitOps-подход). Поддерживается разбиение конфигурации на несколько файлов с автоматическим мержем, а переменные окружения подставляются прямо в конфиг. Глобальные настройки алертинга можно задать один раз и переопределять на уровне отдельных эндпоинтов.

Преимущества

  • Активный мониторинг — обнаруживает проблемы независимо от наличия пользовательского трафика, в отличие от метрик-ориентированных систем
  • Лёгкий и быстрый — написан на Go, минимальное потребление CPU и оперативной памяти
  • YAML-конфигурация — идеально ложится в GitOps-подход и Infrastructure as Code
  • Синтетические тесты (Suites) — возможность строить цепочки запросов с зависимостями для полноценных workflow-тестов
  • Более 30 каналов алертинга с продвинутой логикой пороговых значений и восстановления
  • Полностью self-hosted и open-source — полный контроль над данными и инфраструктурой
  • Встроенная поддержка SSH-туннелей, mTLS, OAuth2 для мониторинга защищённых и закрытых сервисов
  • Экспорт метрик в Prometheus для бесшовной интеграции с существующим стеком observability

Ограничения

  • Нет графического интерфейса для настройки — вся конфигурация выполняется через YAML-файлы, что создаёт порог входа для нетехнических пользователей
  • Нет встроенной ролевой модели доступа — все авторизованные пользователи видят весь дашборд целиком
  • Для production-использования с большими объёмами данных рекомендуется PostgreSQL, что добавляет инфраструктурную сложность
  • Меньше каналов оповещения, чем у некоторых аналогов (30+ против 90+ у Uptime Kuma), хотя покрытие основных платформ полное
  • Функциональность Suites (workflow-тесты) находится в стадии ALPHA и может меняться
  • Нет встроенного multi-location мониторинга — проверки выполняются из одной точки развёртывания

Ближайшие аналоги

Uptime Kuma

Uptime Kuma — наиболее популярная open-source альтернатива для self-hosted мониторинга доступности. Главное отличие — полноценный графический интерфейс для настройки мониторинга без редактирования конфигурационных файлов, поддержка 90+ каналов оповещений и многоязычный интерфейс. Однако Uptime Kuma уступает Gatus в гибкости условий проверки: нет поддержки JSONPath-валидации тела ответа, workflow-тестов (Suites), SSH-туннелирования и mTLS. Лучше подходит для команд, которые предпочитают GUI-настройку и не нуждаются в продвинутых сценариях проверки.

Cachet

Cachet — open-source инструмент для создания страниц статуса с акцентом на коммуникации с пользователями. Поддерживает ручное управление инцидентами, компоненты сервисов и уведомления подписчиков. В отличие от Gatus, Cachet не выполняет автоматический активный мониторинг — он требует внешнего источника данных или ручного обновления статусов. Подходит для организаций, которым важнее процесс управления инцидентами и публичная коммуникация, чем автоматический health checking.

Checkly

Checkly — облачная платформа для мониторинга API и браузерных проверок с поддержкой статус-страниц. Предлагает мониторинг из множества географических локаций, Playwright-тесты для браузерных сценариев и интеграцию с CI/CD. Ключевое отличие от Gatus — облачная модель (SaaS), многолокационные проверки и платные тарифы. Не подходит для тех, кому критичен полный self-hosted контроль.

Prometheus + Grafana

Стек Prometheus + Grafana — стандарт де-факто для мониторинга метрик приложений (CPU, память, latency, custom metrics). Это принципиально другой подход: Prometheus собирает метрики через pull-модель, а Grafana визуализирует. Ни один из компонентов не ориентирован на активный мониторинг доступности (alive/dead). Для задачи «жив сервис или нет» Gatus подходит значительно лучше, тогда как Prometheus + Grafana — для глубокой observability и анализа производительности.

OneUptime

OneUptime — open-source платформа «всё-в-одном» для мониторинга, управления инцидентами, статус-страниц и on-call расписания. Предлагает более широкий набор функций, включая журнал ошибок и APM, но значительно тяжелее по ресурсам и сложнее в развёртывании и поддержке. Подходит для крупных команд, которым нужна единая платформа вместо набора отдельных инструментов.

Аналоги и альтернативы для Gatus

Gatus - похожие продукты (инструменты, решения, сервисы)

Сценарии использования (Use Cases)

Платформы

, ,

Особенности

, , , ,

Тип продукта

Grafana

Grafana это решение для анализа и мониторинга с открытым исходным кодом

Grafana

Prometheus

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

Prometheus

Zabbix

Zabbix — свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования, написанная Алексеем Владышевым. Для хранения данных используется MySQL, PostgreSQL, SQLite или Oracle Database, веб-интерфейс написан на PHP

Zabbix

Uptime Kuma

Uptime Kuma — бесплатный самохостинговый мониторинг доступности с удобными статус‑страницами, гибкими уведомлениями и быстрым развёртыванием через Docker.

Uptime Kuma

Scout Monitoring

Scout APM — это сервис для мониторинга производительности приложений (APM), отслеживания ошибок и управления логами, созданный для разработчиков. Оптимизируйте код, находите узкие места и решайте проблемы до того, как их заметят пользователи.

Scout Monitoring

Отзывы (0)

Отзывы

Отзывов пока нет.

Будьте первым, кто оставил отзыв на «Gatus»

Ваш адрес email не будет опубликован. Обязательные поля помечены *