Nginx Proxy Manager
Менеджер прокси: хосты, конфигурацию которых nginx отверг, отключённые хосты и сертификаты, которые предъявляют хосты, — до того, как сбой продления Let’s Encrypt превратится в сайт с истёкшим сертификатом.
DumbMonit входит в REST API Nginx Proxy Manager (/api, на порту его веб-интерфейса,
81) под отдельным пользователем, затем читает прокси-хосты, хосты перенаправления,
хосты 404 (в API они называются dead hosts) и стримы. Для каждого хоста указано,
включён ли он и принял ли nginx его конфигурацию. Хост, отвергнутый nginx, не
обслуживается, а веб-интерфейс показывает это лишь красной точкой.
Сертификаты из API не читаются. /api/nginx/certificates отдаёт закрытый ключ
импортированных сертификатов и учётные данные DNS-проверки любому пользователю,
которому разрешён просмотр сертификатов. Вместо этого DumbMonit читает каждый
сертификат там, где он используется: TLS-рукопожатием на порту 443 Nginx Proxy
Manager, с именем хоста, который его использует. Так измеряется и тот сертификат,
который реально получают посетители.
Что отслеживается
Заголовок раздела «Что отслеживается»Все метрики имеют префикс dumbmonit_npm_.
| Метрика | Что | Метки |
|---|---|---|
version_info | значение 1 | version |
hosts, hosts_enabled, hosts_disabled | хосты каждого типа | type: proxy, redirection, dead (хосты 404), stream |
hosts_offline | включённые хосты, конфигурацию которых nginx отверг | type |
host_online | для каждого включённого хоста: 0, если nginx отверг его конфигурацию | type, proxy_host |
host_error_info | значение 1, для хоста, отвергнутого nginx: первая строка ошибки nginx | type, proxy_host, error |
certificates_checked, certificates_read | сертификаты, привязанные к включённому хосту, и те из них, что прочитаны на порту HTTPS | |
cert_expiry_days | дней до истечения сертификата, который предъявляет хост | proxy_host |
proxy_host — это первое доменное имя хоста или port 9000 для стрима.
Отключённые хосты учитываются, но не описываются: отключение хоста — осознанное
действие, и его оповещение, если оно было, закрывается. Хосты описываются по
одному, до 500, а за одну проверку читается не более 100 сертификатов.
Применяются следующие встроенные правила: Nginx Proxy Manager host offline, Proxy certificate not renewed, а также Monitor unreachable.
Страница монитора
Заголовок раздела «Страница монитора»Панель над графиками читает то, что сохранил зонд; открытие страницы никогда не обращается к Nginx Proxy Manager. Она одним предложением сообщает, что не так (хосты, отвергнутые nginx, с причиной, сертификаты, близкие к истечению, сертификаты, которые не удалось прочитать), затем перечисляет прокси-хосты, перенаправления, хосты 404, стримы и отключённые хосты, а затем сертификаты, начиная с тех, срок которых истекает раньше.
Создание пользователя Nginx Proxy Manager только для просмотра
Заголовок раздела «Создание пользователя Nginx Proxy Manager только для просмотра»-
В Nginx Proxy Manager откройте Users и добавьте пользователя для DumbMonit с отдельным адресом электронной почты, например dumbmonit@example.com. Не отмечайте ни одной роли.
-
В меню этого пользователя откройте Permissions: Item Visibility All Items; Proxy Hosts, Redirection Hosts, 404 Hosts и Streams View Only; Access Lists и SSL Certificates Hidden. Затем задайте пароль через Change Password в том же меню.
-
SSL Certificates намеренно остаются Hidden: Nginx Proxy Manager отдаёт закрытый ключ импортированных сертификатов и учётные данные DNS-проверки любому пользователю, которому разрешён их просмотр. Вместо этого DumbMonit читает каждый сертификат там, где он используется, TLS-рукопожатием на порту 443 для каждого хоста, у которого он есть.
-
В DumbMonit укажите хост Nginx Proxy Manager с портом его веб-интерфейса, например «npm.lan:81», а также адрес электронной почты и пароль этого пользователя. Если хосты обслуживаются по HTTPS на порту, отличном от 443, задайте HTTPS port ниже.
Item Visibility All Items важно: при Created Items пользователь видит только хосты, созданные им самим, то есть ни одного. Пользователю без Proxy Hosts View Only будет отказано; тот, у кого нет Streams, Redirection Hosts или 404 Hosts, просто не сообщает о них.
DumbMonit сохраняет токен, выданный Nginx Proxy Manager при входе (действителен сутки), и входит снова, когда он истекает, а не при каждой проверке.
Учётные данные
Заголовок раздела «Учётные данные»| Учётные данные | Поля |
|---|---|
| Email и пароль пользователя | Адрес электронной почты и пароль пользователя, созданного выше. |
Адрес: имя хоста или IP с портом веб-интерфейса (npm.lan:81) либо полный URL.
Параметры: протокол (по умолчанию HTTP), порт веб-интерфейса (81), Check the
certificates (включено), HTTPS port (443), проверка сертификата API и таймаут
запроса (10 с).
Проверка сертификатов подключается к хост-части адреса: если веб-интерфейс доступен через другой прокси, укажите адрес самого Nginx Proxy Manager или снимите отметку Check the certificates и отслеживайте каждый сайт с помощью проверки TLS-сертификата. Wildcard-сертификаты читаются через первый хост, который их использует.