Paperless-ngx
Продолжает ли Paperless-ngx импортировать то, что ему отправляют: здоровье его базы данных, Redis, воркеров Celery, поискового индекса, классификатора и проверки целостности, отказавшие задачи, обновления, место на диске и число документов.
DumbMonit читает REST API Paperless-ngx с помощью выделенного пользователя, который не может читать ни один документ: три права на просмотр дают ему список задач, статус системы и глобальные счётчики, и ничего больше.
Отказ, за которым стоит следить: Redis или Celery остановлены. Веб-интерфейс открывается, и документы можно читать, но ничего из того, что упало в папку приёма или получено по почте, не импортируется, пока кто-то не заметит растущую кучу. Статус системы сообщает об этом; DumbMonit оповещает.
Что отслеживается
Заголовок раздела «Что отслеживается»Все метрики с префиксом dumbmonit_paperless_.
| Метрика | Что | Метки |
|---|---|---|
version_info | значение 1 | version |
update_available | 1, когда собственная проверка версии Paperless-ngx знает о более новом релизе (отсутствует, когда проверка отключена) | latest_version |
component_status | 0 норма, 1 предупреждение, 2 ошибка, как сообщает страница статуса системы | component: database, redis, celery, index, classifier, sanity_check, llm_index (только при включении) |
unapplied_migrations | ещё не применённые миграции базы данных | |
storage_available_bytes, storage_total_bytes, storage_used_percent | диск, хранящий медиафайлы | |
tasks_failed_window, tasks_window, tasks_pending | все задачи за последние 30 дней: отказавшие, всего, и ещё ожидающие | |
tasks_failed_recent | отказавшие задачи, видимые этому пользователю, новее окна отказавших задач и не отклонённые | |
task_failed | значение 1 на каждую такую задачу (не более 32) | task, file |
documents, documents_inbox | документы в Paperless, и во входящих | |
status_readable | 0, когда у учётной записи нет права системного мониторинга | |
scrape_errors | вызовы, завершившиеся ошибкой при последней проверке |
Paperless хранит задачи каждого владельца приватными: выделенный пользователь
видит плановые задачи (проверка целостности, индекс, классификатор, почта) по
имени, а импорты других пользователей учитываются в tasks_failed_window,
которая охватывает каждую задачу.
Применяемые встроенные правила: «Очередь задач Paperless не работает», «Ошибка индекса или проверки целостности Paperless», «Ожидают миграции Paperless», «Задача Paperless не удалась», «Хранилище Paperless почти заполнено», «Доступно обновление Paperless», плюс «Монитор недоступен».
Страница монитора
Заголовок раздела «Страница монитора»Панель над графиками читает то, что сохранила проверка; открытие страницы никогда не обращается к Paperless. Сначала она сообщает, что не так (компонент в ошибке, отказавшие задачи, ожидающие миграции), затем — обновления, затем — документы, входящие, ожидающие и отказавшие задачи и место на диске, затем — каждый компонент и отказавшие задачи по имени.
Создание пользователя только для чтения в Paperless-ngx
Заголовок раздела «Создание пользователя только для чтения в Paperless-ngx»-
Создайте пользователя с именем, указанным ниже, с длинным случайным паролем, без статуса суперпользователя или персонала, и только с тремя правами на просмотр: задачи, системный мониторинг и глобальная статистика. С API и вашей собственной учётной записью две команды ниже создают его и выводят его токен.
dumbmonitcurl -u YOUR_USER -H 'Content-Type: application/json' -X POST https://paperless.example.com/api/users/ -d '{"username":"dumbmonit","password":"CHANGE-ME","user_permissions":["view_paperlesstask","view_system_monitoring","view_global_statistics"]}'curl -X POST https://paperless.example.com/api/token/ -d 'username=dumbmonit&password=CHANGE-ME' -
Либо в веб-интерфейсе: Users & Groups → Add user, затем в его правах отметьте View только в строках PaperlessTask, SystemMonitoring и GlobalStatistics. Войдите этим пользователем один раз, откройте My Profile и сгенерируйте его токен API.
-
Этот пользователь вообще не читает документы: глобальная статистика даёт счётчики, системный мониторинг — здоровье базы данных, Redis, Celery и индекса, а задачи показывают отказавшие. На Paperless-ngx 2.x, где последних двух прав не существует, здоровье и счётчики пропускаются, а остальное читается.
-
В DumbMonit введите адрес, например «paperless.lan» (порт 8000) или «https://paperless.example.com» за обратным прокси, и вставьте токен.
Замените CHANGE-ME длинным случайным паролем перед выполнением команд, и
YOUR_USER учётной записью, которой разрешено управлять пользователями (curl
запросит её пароль). Запрос статуса системы может занять несколько секунд,
пока Redis недоступен: Paperless ждёт его перед ответом.
Учётные данные
Заголовок раздела «Учётные данные»| Учётные данные | Поля |
|---|---|
| Токен API (рекомендуется) | Токен выделенного пользователя, отправляется как Authorization: Token …. |
| Имя пользователя / пароль | Сам выделенный пользователь, отправляется как базовая аутентификация HTTP. |
Адрес: имя хоста (paperless.lan), host:port, или полный URL с префиксом
пути; завершающий /api допускается. Опции: протокол (по умолчанию HTTP),
порт (8000), проверка сертификата, таймаут запроса (15 с) и окно отказавших
задач (24 часа, от 1 до 720).
Проверено на Paperless-ngx 3.2.1 (официальный образ, SQLite, Valkey).