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

Jellyfin

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

DumbMonit читает API Jellyfin с помощью ключа API, созданного в панели управления. Он никогда не запускает задачу, никогда не останавливает воспроизведение и никогда не меняет настройку.

Отказ, за которым стоит следить: сканирование библиотеки, которое не удаётся каждую ночь. Отмонтированная сетевая папка, заполненный диск — и новые фильмы и эпизоды перестают появляться; сам Jellyfin продолжает играть то, что уже знает, и единственный след — строка в Scheduled Tasks.

Что отслеживается

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

Метрика Что Метки
version_info значение 1 version
pending_restart 1, когда Jellyfin ждёт перезапуска (после установки или обновления плагина)
shutting_down 1 во время завершения работы Jellyfin
scheduled_tasks_failed, scheduled_tasks_running задачи, чей последний запуск завершился ошибкой или был прерван; задачи, выполняющиеся сейчас
scheduled_task_failed значение 1 на каждую отказавшую задачу (не более 32) task, error (первая строка сообщения)
library_scan_last_ok, library_scan_age_seconds последний запуск «Scan Media Library»: успешен или нет, и сколько времени прошло с его окончания
plugins, plugins_broken установленные плагины; те, что не загрузились или не поддерживают эту версию
plugin_broken значение 1 на каждый неисправный плагин plugin, status
sessions, streams, streams_paused, transcodes клиентские сессии; те, что что-то воспроизводят, на паузе, и с перекодированием
scrape_errors вызовы, завершившиеся ошибкой при последней проверке

Jellyfin не проверяет собственные обновления сам (это делает пакет или образ), поэтому метрики обновления нет.

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

Страница монитора

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

Создание ключа API в Jellyfin

  1. В Jellyfin: Dashboard → API Keys (в разделе Advanced) → +, назовите ключ следующим образом. Скопируйте его.

    DumbMonit
    
  2. Jellyfin не умеет ограничивать права ключа: у каждого ключа полные права на сервере. Это тем не менее единственный способ читать плановые задачи и чьё-либо воспроизведение; обычный пользователь не видит ни того, ни другого.

  3. В DumbMonit введите адрес Jellyfin, например «jellyfin.lan» (порт 8096) или «https://media.example.com» за обратным прокси, и вставьте ключ.

  4. DumbMonit читает только /System/Info, /ScheduledTasks, /Sessions и /Plugins. Он никогда не запускает задачу, никогда не останавливает воспроизведение и никогда не меняет настройку.

Warning

Поскольку ключ несёт все права, держите его в сети, которой доверяете, и разместите Jellyfin за HTTPS в интернете. Если он когда-нибудь утечёт, отзовите его на той же странице: больше его никто не использует.

Учётные данные

Учётные данные Поля
Ключ API Отправляется в заголовке Authorization: MediaBrowser … Token="…", в форме, которую Jellyfin 10.11 и новее принимают по умолчанию.

Адрес: имя хоста (jellyfin.lan), host:port, или полный URL с префиксом пути (https://example.com/jellyfin); завершающий /web допускается. Опции: протокол (по умолчанию HTTP), порт (8096), проверка сертификата и таймаут запроса (15 с).

Проверено на Jellyfin 12.1.0 (официальный образ).