Gatus: автоматизированная страница статуса для мониторинга сервисов
Gatus — это автоматизированная страница статуса для разработчиков с поддержкой оповещений и инцидентов. Проект позволяет мониторить состояние сервисов через HTTP, ICMP, TCP и DNS-запросы, а также настраивать оповещения в Slack, Teams, PagerDuty и других системах.
Он нацелен на тех, кто хочет получить гибкий инструмент для наблюдения за здоровьем своих приложений, без необходимости использовать громоздкие решения. Gatus подойдет как для локальной разработки, так и для развертывания в облаке или Kubernetes. Запустить его довольно просто: всего лишь одна команда Docker:
```console
docker run -p 8080:8080 --name gatus ghcr.io/twin/gatus:stable
```
Обрати внимание, что проект в основном подходит для разработчиков и требует определенных технических навыков для настройки. Также не упоминается совместимость с Windows, что может ограничить пользователей. Если ищешь готовое решение, есть и управляемая версия на gatus.io.
Проект Gatus представляет собой панель мониторинга здоровья для разработчиков, которая позволяет следить за состоянием различных сервисов через HTTP, ICMP, TCP и DNS-запросы. Он также позволяет задавать условия для оценки результатов проверок, такие как код состояния, время ответа, срок действия сертификата и другие. Gatus предлагает интеграцию с множеством сервисов оповещения, таких как Slack, Teams, PagerDuty, Discord, Twilio и многие другие.
Установка и запуск
Для локального запуска Gatus с помощью Docker используй следующую команду:
docker run -p 8080:8080 --name gatus ghcr.io/twin/gatus:stable
Если хочешь использовать свой файл конфигурации, создай файл, например, config.yaml, и запусти следующий команду:
docker run -p 8080:8080 --mount type=bind,source="$(pwd)"/config.yaml,target=/config/config.yaml --name gatus ghcr.io/twin/gatus:stable
Дополнительно доступны примеры развертывания через Helm в репозитории проекта, а также с использованием Terraform для Kubernetes.
Функциональные возможности
- Гибкое управление условиями проверки состояния.
- Поддержка алертов через многочисленные сервисы (Slack, Teams, Email и т.д.).
- Поддержка мониторинга через DNS-запросы, SSH, ICMP, а также gRPC.
- Совместимость с Prometheus для сбора метрик.
- Возможность определения временных промежутков для проверки состояния.
Gatus также позволяет настроить конфигурацию с работающим режимом обслуживания, чтобы избежать сбоев при развертывании или обновлении сервисов.
Конфигурация
Файл конфигурации по умолчанию ожидается по пути config/config.yaml. Можно передавать параметры через переменные окружения. Например, ты можешь указать путь к конфигурации через переменную GATUS_CONFIG_PATH.
Для настройки условия проверки endpoints, можно использовать:
url: URL для запроса.method: HTTP метод (GET/POST и т.д.).interval: Интервал между проверками.conditions: Условия для проверки состояния.
Также доступны настройки для предупреждений и метрик, а также параметр concurrency для контроля количества одновременно выполняемых проверок.
Ограничения
Gatus ограничивает максимальное количество одновременно выполняемых проверок до 3 по умолчанию. Можно настроить его через параметр concurrency.
Также стоит отметить, что на время задержки выполнения могут влиять длительные проверки, поэтому рекомендуется использовать адекватный интервал между проверками.
Кроме того, стоит следить за точки проверки, чтобы не превышать лимиты и избегать превышения значений таймаута. По умолчанию таймаут составляет 10 секунд для HTTP, TCP, ICMP и т.д.
Если у тебя возникнут вопросы или потребуется помощь, можно создать обсуждение на странице проекта Gatus на GitHub.
Открыть на GitHub: TwiN/gatus →
RepoRadar