Ubuntu 下监控 Jellyfin 的可行方案
一 快速巡检与日志定位
- 服务状态与自启
- 查看状态:sudo systemctl status jellyfin
- 启动/停止/重启:sudo systemctl start|stop|restart jellyfin
- 开机自启:sudo systemctl enable jellyfin
- 实时资源占用
- 安装 htop:sudo apt update && sudo apt install htop -y
- 运行:htop,按 F3 搜索关键词 jellyfin 定位进程,观察 CPU%、MEM%
- 日志查看
- systemd 日志:journalctl -u jellyfin.service -f(实时跟踪)
- 配置文件目录日志:Jellyfin 配置通常位于 /config,可用 cat /path/to/jellyfin/config/*.log 查看
- 系统日志:tail -n 50 /var/log/syslog
- Docker 场景
- 容器日志:docker logs -f <container_id>(实时跟踪)
- 说明
- 默认访问端口为 8096(如 http://服务器IP:8096)
二 系统级监控工具
- Glances(跨平台、功能全)
- 安装:sudo apt install glances -y
- 运行:glances;常用热键:c(按 CPU 排序)、m(按内存)、d(磁盘 I/O)、n(网络)、s(温度)、q(退出)
- 远程监控:服务端 glances -s -B 0.0.0.0 -p 61209,客户端 glances -c <服务器IP>(可加 -P 密码 做访问控制)
- 其他可选
- indicator-SysMonitor(面板显示 CPU/RAM)、Conky、GKrellM、Monitorix(轻量可视化)
- 磁盘与 I/O
- 安装 sysstat:sudo apt install sysstat -y
- 查看 I/O:iostat(如 iostat -c 仅 CPU,iostat 查看整体 I/O)
三 面向 Jellyfin 的指标监控 Prometheus Grafana
- 前置条件
- Jellyfin 10.8.0+ 内置 Prometheus 指标支持
- 启用指标接口
- 管理界面:控制台 → 高级 → 网络,勾选 启用指标收集,重启 Jellyfin
- 验证:访问 http://<JELLYFIN_IP>:8096/metrics,应返回指标文本
- 部署 Prometheus
- Docker 快速启动:
- docker run -d --name prometheus -p 9090:9090 -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
- 配置示例 prometheus.yml:
- scrape_configs:
- job_name: ‘jellyfin’
scrape_interval: 15s
static_configs:
- targets: [‘<JELLYFIN_IP>:8096’]
- 部署 Grafana
- Docker 快速启动:
- docker run -d --name grafana -p 3000:3000 -v grafana-data:/var/lib/grafana grafana/grafana
- 添加数据源:URL 填 http://prometheus:9090(容器网络)或 http://<服务器IP>:9090
- 导入仪表板:使用 ID 14832(Jellyfin 社区面板),选择刚创建的数据源完成导入
- 关键指标示例
- jellyfin_active_streams(当前活跃流)、jellyfin_transcoding_sessions(转码会话数)
- 系统资源可用 node_cpu_seconds_total、node_memory_used_bytes、node_disk_io_time_seconds_total 等配合展示
四 进程守护与告警
- Monit(轻量进程监控与自愈)
- 安装:sudo apt install monit -y
- 配置示例(/etc/monit/monitrc 片段):
- check process jellyfin with pidfile /var/run/jellyfin.pid
start program = “/usr/bin/systemctl start jellyfin”
stop program = “/usr/bin/systemctl stop jellyfin”
if memory > 200 MB for 5 cycles then alert
- 启用与检查:sudo systemctl enable --now monit && sudo monit status
- 建议的告警规则
- Jellyfin 进程宕机(服务未运行)
- 内存使用持续过高(如超过 200 MB 持续 5 个周期)
- 磁盘可用空间低于阈值(如 20%)
- 活跃转码会话异常增多 或 播放错误率上升(结合指标或日志)