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

Paperless-ngx

Продолжает ли Paperless-ngx импортировать то, что ему отправляют: здоровье его базы данных, Redis, воркеров Celery, поискового индекса, классификатора и проверки целостности, отказавшие задачи, обновления, место на диске и число документов.

DumbMonit читает REST API Paperless-ngx с помощью выделенного пользователя, который не может читать ни один документ: три права на просмотр дают ему список задач, статус системы и глобальные счётчики, и ничего больше.

Отказ, за которым стоит следить: Redis или Celery остановлены. Веб-интерфейс открывается, и документы можно читать, но ничего из того, что упало в папку приёма или получено по почте, не импортируется, пока кто-то не заметит растущую кучу. Статус системы сообщает об этом; DumbMonit оповещает.

Все метрики с префиксом dumbmonit_paperless_.

МетрикаЧтоМетки
version_infoзначение 1version
update_available1, когда собственная проверка версии Paperless-ngx знает о более новом релизе (отсутствует, когда проверка отключена)latest_version
component_status0 норма, 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_readable0, когда у учётной записи нет права системного мониторинга
scrape_errorsвызовы, завершившиеся ошибкой при последней проверке

Paperless хранит задачи каждого владельца приватными: выделенный пользователь видит плановые задачи (проверка целостности, индекс, классификатор, почта) по имени, а импорты других пользователей учитываются в tasks_failed_window, которая охватывает каждую задачу.

Применяемые встроенные правила: «Очередь задач Paperless не работает», «Ошибка индекса или проверки целостности Paperless», «Ожидают миграции Paperless», «Задача Paperless не удалась», «Хранилище Paperless почти заполнено», «Доступно обновление Paperless», плюс «Монитор недоступен».

Панель над графиками читает то, что сохранила проверка; открытие страницы никогда не обращается к Paperless. Сначала она сообщает, что не так (компонент в ошибке, отказавшие задачи, ожидающие миграции), затем — обновления, затем — документы, входящие, ожидающие и отказавшие задачи и место на диске, затем — каждый компонент и отказавшие задачи по имени.

Создание пользователя только для чтения в Paperless-ngx

Заголовок раздела «Создание пользователя только для чтения в Paperless-ngx»
  1. Создайте пользователя с именем, указанным ниже, с длинным случайным паролем, без статуса суперпользователя или персонала, и только с тремя правами на просмотр: задачи, системный мониторинг и глобальная статистика. С API и вашей собственной учётной записью две команды ниже создают его и выводят его токен.

    dumbmonit
    curl -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'
  2. Либо в веб-интерфейсе: Users & Groups → Add user, затем в его правах отметьте View только в строках PaperlessTask, SystemMonitoring и GlobalStatistics. Войдите этим пользователем один раз, откройте My Profile и сгенерируйте его токен API.

  3. Этот пользователь вообще не читает документы: глобальная статистика даёт счётчики, системный мониторинг — здоровье базы данных, Redis, Celery и индекса, а задачи показывают отказавшие. На Paperless-ngx 2.x, где последних двух прав не существует, здоровье и счётчики пропускаются, а остальное читается.

  4. В 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).