Cover Image for Мониторинг веб сайта и сервисов с использованием статус страницы Gatus и алертами в Телеграм

Мониторинг веб сайта и сервисов с использованием статус страницы Gatus и алертами в Телеграм

12 марта 2026

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

Что такое Gatus?

Gatus — это автоматизированная платформа мониторинга состояния сервисов (health dashboard), написанная на языке Go. Проект активно развивается на GitHub и имеет тысячи звёзд от разработчиков по всему миру. Gatus позволяет в режиме реального времени отслеживать доступность ваших HTTP/HTTPS-эндпоинтов, TCP/UDP-портов, DNS-записей и ICMP (ping), а также гибко настраивать условия проверок.

Ключевые возможности Gatus

  • Мониторинг HTTP/HTTPS — проверка статус-кодов, времени отклика, содержимого тела ответа и SSL-сертификатов.
  • Поддержка TCP, UDP, ICMP и DNS — не только веб-сервисы, но и любые сетевые сервисы.
  • Гибкая система условий — вы сами определяете, что считать успехом или провалом проверки (например, статус 200, время ответа менее 300 мс, наличие определённой строки в ответе).
  • Множество каналов уведомлений — Telegram, Slack, Discord, Twilio, Microsoft Teams, email (SMTP), Opsgenie, Mattermost, Pushover и многие другие.
  • Красивый веб-дашборд — встроенный интерфейс для визуального отображения статуса всех сервисов, истории проверок и времени безотказной работы (uptime).
  • Поддержка badges — генерация SVG-бейджей со статусом uptime для встраивания в README или на сайт.
  • Внешнее хранилище данных — поддержка SQLite и PostgreSQL для хранения истории проверок.
  • Kubernetes-интеграция — автоматическое обнаружение сервисов в кластере Kubernetes.
  • Простая конфигурация через YAML — вся настройка осуществляется через понятный конфигурационный файл.

Как это работает?

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

Пример конфигурации

endpoints:
  - name: My WordPress Site
    url: "https://wpcraft.ru"
    interval: 10m
    conditions:
      - "[STATUS] == 200"
      - "[RESPONSE_TIME] < 500"
      - "[CERTIFICATE_EXPIRATION] > 48h"
    alerts:
      - type: telegram
        description: "Сайт недоступен!"
        send-on-resolved: true

Этот пример проверяет WordPress-сайт каждую минуту: убеждается, что он отвечает статусом 200, время ответа не превышает 500 миллисекунд, а SSL-сертификат действителен ещё как минимум 48 часов. При проблеме придёт уведомление в Telegram, а когда сервис восстановится — ещё одно сообщение.

Установка и запуск через Docker

Самый простой способ развернуть Gatus — использовать Docker:

docker run -p 8080:8080 --mount type=bind,source="$(pwd)/config",target=/config \
  twinproduction/gatus

После запуска веб-интерфейс будет доступен по адресу http://localhost:8080. Также доступны готовые Helm-чарты для развёртывания в Kubernetes.

В моем случае использовался Docker Compose + Coolify:

services:
  gatus:
    image: ghcr.io/twin/gatus:stable # или twinproduction/gatus:stable
    container_name: gatus
    # ports:
      # - "8080:8080"
    volumes:
      - type: bind
        source: ./config
        target: /config
        is_directory: true
      - type: bind
        source: ./data
        target: /data
        is_directory: true
    environment:
      - GATUS_CONFIG_PATH=/config
    restart: on-failure:3

version: "3.8"

Зачем Gatus владельцам WordPress и WooCommerce сайтов?

Для владельцев интернет-магазинов на WooCommerce или контентных сайтов на WordPress постоянный мониторинг критически важен. Каждая минута простоя — это потерянные клиенты и деньги. Gatus позволяет:

  • Мгновенно узнавать о падении сайта, не дожидаясь жалоб от покупателей.
  • Заблаговременно узнавать что заканчивается срок домена и продлевать заранее без рисков потерять критически ценный ресурс
  • Контролировать время отклика и выявлять замедления до того, как они станут критичными.
  • Следить за сроком действия SSL-сертификата и избежать блокировки браузерами.
  • Мониторить доступность API платёжных шлюзов, служб доставки и других внешних интеграций WooCommerce.
  • Публично демонстрировать uptime своего сайта клиентам через встроенный статус-дашборд.

Доступ и авторизация через OIDC WordPress

Можно быстро поднять авторизацию в Gatus, используя существующий WordPress как OIDC-сервер. Для этого подойдёт плагин OpenID Connect Server (от Automattic или его форки/обновления, например, с wpcraft).

Коротко схема:

  • WordPress выдаёт токены → Gatus подключается к нему как OIDC-клиент.
  • Пользователи логинятся через wp-login.php → получают доступ к дашборду Gatus.

Пример конфигурации Gatus (config.yaml)

security:
  oidc:
    issuer-url: "<https://your-wordpress-site/>"               # обязательно с завершающим слешем
    redirect-url: "<https://your-gatus-domain/authorization-code/callback>"
    client-id: "gatus-client"                               # любое уникальное имя
    client-secret: "super-long-random-secret-40-plus-chars" # генерируй сильный секрет
    scopes:
      - "openid"                                            # минимум это
      # - "profile"                                         # опционально: имя, аватар
      # - "email"                                           # опционально: email в токене
    # allowed-subjects: ["admin", "user1"]                  # если хочешь ограничить по wp-логину
    session-ttl: 8h                                         # время жизни сессии (по умолчанию 8h)

Что нужно сделать на стороне WordPress (кратко)

  1. Установить и активировать плагин OpenID Connect Server.
  2. Зарегистрировать клиента (обычно через код в functions.php или mu-plugin):
add_filter('oidc_registered_clients', function($clients) {
    $clients['gatus'] = [
        'client_id'     => 'gatus-client',
        'client_secret' => 'super-long-random-secret-40-plus-chars',
        'redirect_uris' => ['<https://your-gatus-domain/authorization-code/callback>'],
        'scopes'        => ['openid', 'profile'],
        'skip_consent'  => true,  // без экрана согласия
    ];
    return $clients;
});
  1. Задать RSA-ключи в wp-config.php (генерируй 2048+ бит):
define('OIDC_RSA_PRIVATE_KEY', '-----BEGIN PRIVATE KEY-----...');
define('OIDC_RSA_PUBLIC_KEY',  '-----BEGIN PUBLIC KEY-----...');
  1. Проверить discovery: https://your-wordpress-site/.well-known/openid-configuration — должен отдавать JSON.

Готово — Gatus теперь защищён логином от WordPress.

Подробный разбор плагина и настройки (на русском): https://wpcraft.ru/blog/oidc

Итог

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

Открытый исходный код, простая конфигурация через YAML, богатый набор интеграций и красивый дашборд делают его достойной альтернативой платным SaaS-решениям.

Если вы ещё не настроили мониторинг своего WordPress или WooCommerce сайта — Gatus станет отличной отправной точкой.