Перейти к содержимому

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значение 1version
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: первая строка ошибки nginxtype, 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 только для просмотра»
  1. В Nginx Proxy Manager откройте Users и добавьте пользователя для DumbMonit с отдельным адресом электронной почты, например [email protected]. Не отмечайте ни одной роли.

  2. В меню этого пользователя откройте Permissions: Item Visibility All Items; Proxy Hosts, Redirection Hosts, 404 Hosts и Streams View Only; Access Lists и SSL Certificates Hidden. Затем задайте пароль через Change Password в том же меню.

  3. SSL Certificates намеренно остаются Hidden: Nginx Proxy Manager отдаёт закрытый ключ импортированных сертификатов и учётные данные DNS-проверки любому пользователю, которому разрешён их просмотр. Вместо этого DumbMonit читает каждый сертификат там, где он используется, TLS-рукопожатием на порту 443 для каждого хоста, у которого он есть.

  4. В 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-сертификаты читаются через первый хост, который их использует.