Перейти к содержанию

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

  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» за обратным прокси, и вставьте токен.

Warning

Когда Redis или Celery останавливаются, Paperless продолжает отдавать страницы и документы, но ничего нового не импортируется — ни из папки приёма, ни по почте — пока кто-то не посмотрит. DumbMonit оповещает об обоих случаях.

Замените 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).