Баннер для сайта
Показывайте на своём сайте баннер, когда сервисы недоступны («2 сервиса недоступны»), на основе опубликованной страницы статуса. Когда всё в порядке, баннер скрыт, если только вы не попросите показывать его («Все системы работают»).
Три способа добавить его, от самого простого до самого управляемого. Готовые
для копирования файлы находятся в папке integrations/ репозитория.
В DumbMonit откройте настройки страницы статуса (Страницы статуса, Изменить): раздел Баннер состояния для вашего сайта в самом низу содержит готовые фрагменты HTML и PHP с кнопкой «Копировать», ссылку на эту страницу и кнопку скачивания плагина WordPress в виде .zip, готового к загрузке.
HTML-сниппет
Заголовок раздела «HTML-сниппет»Вставьте это перед </body>, указав адрес вашего сервера и адрес страницы:
<script async src="https://monit.example.com/api/public/status/my-page/banner.js" data-position="top" data-show="issues" data-lang="en"></script>| Атрибут | Значения | По умолчанию |
|---|---|---|
data-position | top, bottom | top |
data-show | issues (только при проблемах), always | issues |
data-lang | en, fr, de, es, it, pt, pt-BR, ru, zh-Hans | язык страницы, иначе en |
Скрипт не имеет зависимостей, отрисовывается внутри Shadow DOM, поэтому ваши
стили на него не влияют, учитывает светлую или тёмную тему посетителя и может
быть закрыт (до закрытия вкладки браузера). Он читает публичный JSON страницы,
который сервер разрешает загружать любому сайту (Access-Control-Allow-Origin: *,
без cookie). Таким образом открыт только публичный документ страницы статуса;
остальная часть API сохраняет свои правила.
WordPress
Заголовок раздела «WordPress»Скопируйте integrations/wordpress/dumbmonit-status-banner в
wp-content/plugins/, активируйте плагин, затем откройте Settings > DumbMonit Banner
и укажите URL страницы статуса
(https://monit.example.com/api/public/status/my-page), положение и режим
показа. Плагин получает JSON на стороне сервера, кэширует его на одну минуту и
экранирует всё, что выводит.
Сервер DumbMonit может находиться по частному (LAN) адресу: плагин запрашивает
только тот точный URL, который вы сохранили (он проверяется на соответствие
шаблону /api/public/status/<address>, перенаправления отключены). Если адрес
недопустим, страница настроек показывает ошибку и сохраняет прежнее значение.
Если страницу статуса получить не удаётся, в панели администратора WordPress (и
при сохранении) отображается предупреждение вместо молчаливого сбоя.
Текст баннера переводится (text domain dumbmonit-status-banner, шаблон в
languages/); он следует языку сайта WordPress. Публичный JSON статуса не
содержит языка, поэтому выбрать его не может.
Подключение через PHP
Заголовок раздела «Подключение через PHP»Для любого PHP-сайта, без фреймворка:
require __DIR__ . '/banner.php';dumbmonit_banner('https://monit.example.com/api/public/status/my-page', ['position' => 'top', 'show' => 'issues', 'ttl' => 60]);Помощник принимает только URL http и https, использует таймаут 3 секунды, не
следует перенаправлениям, хранит файловый кэш во временном каталоге и ничего не
выводит, если сервер недоступен (сбой записывается в журнал ошибок PHP). По
умолчанию тексты на английском; передайте 'lang' => 'fr' или массив
'strings', чтобы изменить их. Частный (LAN) адрес работает. См.
integrations/php/example.php.