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) | |
|---|---|
| Платформы | |
| Особенности | API, OpenSource, SaaS, Self-Hosted, Web |
| Тип продукта |

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