Баннер для сайта¶
Показывайте на своём сайте баннер, когда сервисы недоступны («2 сервиса недоступны»), на основе опубликованной страницы статуса. Когда всё в порядке, баннер скрыт, если только вы не попросите показывать его («Все системы работают»).
Три способа добавить его, от самого простого до самого управляемого. Готовые
для копирования файлы находятся в папке integrations/ репозитория.
В DumbMonit откройте настройки страницы статуса (Страницы статуса, Изменить): раздел Баннер состояния для вашего сайта в самом низу содержит готовые фрагменты HTML и PHP с кнопкой «Копировать», ссылку на эту страницу и кнопку скачивания плагина WordPress в виде .zip, готового к загрузке.
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¶
Скопируйте 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-сайта, без фреймворка:
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.