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¶
-
В Jellyfin: Dashboard → API Keys (в разделе Advanced) → +, назовите ключ следующим образом. Скопируйте его.
DumbMonit -
Jellyfin не умеет ограничивать права ключа: у каждого ключа полные права на сервере. Это тем не менее единственный способ читать плановые задачи и чьё-либо воспроизведение; обычный пользователь не видит ни того, ни другого.
-
В DumbMonit введите адрес Jellyfin, например «jellyfin.lan» (порт 8096) или «https://media.example.com» за обратным прокси, и вставьте ключ.
-
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 (официальный образ).