群晖用户福音:这个工具让 Docker 容器监控变得简单

简介

什么是 Lantern ?

Lantern 是一个用 Go 构建的轻量级状态仪表盘和监控服务器。它提供单页应用(SPA)界面,带有暗色/浅色主题,原生 Docker 容器发现,基于推送的“心跳” API,以及可选的实时主动检测服务运行、停机和维护窗口等功能。

主要特点

  • 原生 Docker 发现:挂载 Docker 套接字后,Lantern 会自动发现并轮询主机上的所有容器,无需手动配置,新容器会自动出现在仪表板上
  • 实时心跳条:每个服务卡片显示最近 30 次检查的滑动条,通过 WebSocket 实时更新,支持鼠标悬停查看详细信息
  • 延迟监控:每次状态检查都会记录延迟时间,支持 Docker 轮询、主动监控和被动推送三种来源
  • 可嵌入 SVG 状态徽章:通过 GET /api/badge/{service}.svg 为任意服务生成可嵌入的 shields 风格徽章
  • 防抖动告警:连续两次 down 检查才会触发通知,避免因单次检查失败产生大量告警
  • SSL 证书过期跟踪HTTPS 主动监控会捕获证书过期日期,在 14 天内发出警告
  • 非阻塞 Webhook 推送:支持 DiscordTelegramGotify 和通用 Webhook,通过有界工作池异步发送
  • 配置导出与导入:支持将所有服务、探针、分组、告警路由和 Webhook 导出为 JSON
  • 开源免费:基于 MIT 协议开源,可免费使用和修改

应用场景

  • 家庭服务器监控:监控 NAS、媒体服务器、智能家居等家庭服务的运行状态
  • 开发环境监控:开发人员可以快速搭建测试环境,监控微服务健康状态
  • 运维告警:通过 Webhook 将服务异常通知推送到 DiscordTelegram 等平台
  • 服务状态页:使用嵌入式 SVG 徽章为 README 或文档展示服务实时状态

Lantern 仪表板界面

Lantern 是一个功能完整的服务健康监控解决方案,适合家庭和小型团队使用。

安装

在群晖上以 Docker 方式安装。

本文写作时, latest 版本比 v0.62.2 更新,应该是 v0.62.3

提示:由于镜像托管在 ghcr.io,群晖 Docker 套件无法直接搜索,需要通过命令行拉取镜像。

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 新建文件夹 lantern 和 子目录
mkdir -p /volume1/docker/lantern/data

# 进入 lantern 目录
cd /volume1/docker/lantern

# 一键启动
docker run -d \
--name=lantern \
--restart=unless-stopped \
-p 7654:7654 \
-v $(pwd)/data:/data \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-e LANTERN_AUTH_TOKEN=your_secret_token \
ghcr.io/manasvinyadav/lantern:latest

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
version: '3.8'

services:
lantern:
image: ghcr.io/manasvinyadav/lantern:latest
container_name: lantern
restart: unless-stopped
ports:
- "7654:7654"
volumes:
- ./data:/data # 数据存储
- /var/run/docker.sock:/var/run/docker.sock:ro # Docker 套接字(只读)
environment:
- LANTERN_AUTH_TOKEN=your_secret_token # API 认证令牌
# - LANTERN_WEBHOOK_DISCORD=https://discord.com/api/webhooks/... # Discord 通知
# - LANTERN_WEBHOOK_TELEGRAM=https://api.telegram.org/bot<token>/sendMessage?chat_id=<id> # Telegram 通知
# - LANTERN_WEBHOOK_GOTIFY=https://gotify.example.com/message?token=<appToken> # Gotify 通知
# - LANTERN_WEBHOOK_GENERIC=https://your-domain.com/webhook # 通用 Webhook

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 lantern 和 子目录
mkdir -p /volume1/docker/lantern/data

# 进入 lantern 目录
cd /volume1/docker/lantern

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中访问 http://<群晖IP>:7654 即可进入 Web 界面,Lantern 会自动发现并显示所有运行中的 Docker 容器

点击 Details

可以看到容器的详情

而顶部的 Diagnostics 可以看到活动日志

如果有开发集成的要求,可以参考官方文档: https://github.com/ManasvinYadav/lantern/blob/master/docs/API.md

注意事项

  1. Docker 套接字安全:挂载 /var/run/docker.sock 等同于授予主机 root 权限,建议使用 Socket Proxy 方式替代
  2. 数据持久化:建议将数据存储在 /volume1/docker/lantern/data 目录,便于备份
  3. 网络要求:确保端口 7654 未被占用
  4. 认证配置:生产环境建议设置 LANTERN_AUTH_TOKEN 或用户名密码进行身份验证
  5. 告警配置:建议配置通知,及时获取服务异常信息

参考文档

ManasvinYadav/lantern: Self-hosted service health dashboard in Go
地址:https://github.com/ManasvinYadav/lantern

lantern - ghcr.io
地址:https://ghcr.io/manasvinyadav/lantern

Lantern API Reference
地址:https://github.com/ManasvinYadav/lantern/blob/master/docs/API.md

Lantern Configuration Guide
地址:https://github.com/ManasvinYadav/lantern/blob/master/docs/CONFIG.md