一个用于监控 MikroTik RouterOS DHCP 客户端在线状态的工具,支持通过飞书机器人推送状态变更通知。
| 变量名 | 说明 | 默认值 |
|---|---|---|
DATA_DIR | 数据目录(存储日志和配置) | . |
WEB_HOST | Web 服务监听地址 | 0.0.0.0 |
WEB_PORT | Web 服务监听端口 | 8000 |
LOGIN_KEY | 登录密钥 | admin123 |
LOG_LEVEL | 日志级别(DEBUG/INFO/WARNING/ERROR/CRITICAL) | INFO |
git clone <repository-url>
cd mikrotik-client-watcher
uv pip install --system .
cp .env.example .env
# 编辑 .env 文件,修改配置
python main.py
http://your-server-ip:8000services:
mikrotik-watcher:
image: brantwang/mikrotik-client-watcher:v0.0.6
container_name: mikrotik-watcher
restart: unless-stopped
ports:
- "8000:8000"
volumes:
- ./data:/data
environment:
- LOGIN_KEY=${LOGIN_KEY:-admin123}
- WEB_HOST=0.0.0.0
- WEB_PORT=8000
- DATA_DIR=/data
- LOG_LEVEL=${LOG_LEVEL:-INFO}
docker run -d \
--name mikrotik-watcher \
-p 8000:8000 \
-v ./data:/data \
-e LOGIN_KEY=your-secret-key \
--restart unless-stopped \
brantwang/mikrotik-client-watcher:v0.0.6
使用配置的 LOGIN_KEY 登录系统。
在"飞书配置"选项卡中配置飞书机器人的 Webhook URL,可以发送测试消息验证配置。
在"ROS 路由器管理"选项卡中:
在路由器卡片上点击"添加客户端":
在"状态"选项卡中可以查看所有客户端的实时状态,包括:
点击"刷新"按钮可以手动触发状态刷新和消息推送。
自定义消息模板时可以使用以下占位符:
| 占位符 | 说明 |
|---|---|
{router_name} | 路由器名称 |
{client_name} | 客户端名称 |
{event_type} | 事件类型(上线/下线/存活) |
{address} | IP 地址 |
{mac_address} | MAC 地址 |
{hostname} | 主机名 |
{timestamp} | 时间戳 |
mikrotik-client-watcher/
├── .github/
│ └── workflows/
│ └── release.yml # GitHub Actions 发布流程
├── html/
│ ├── static/ # 静态文件
│ └── templates/ # HTML 模板
├── config.py # 配置管理
├── feishu_notifier.py # 飞书通知模块
├── main.py # 主程序入口
├── mikrotik_client.py # MikroTik API 客户端
├── models.py # 数据模型
├── monitor.py # 监控逻辑
├── scheduler.py # 定时任务调度
├── Dockerfile # Docker 镜像构建文件
├── docker-compose.yml # Docker Compose 配置
├── pyproject.toml # 项目配置
└── uv.lock # 依赖锁定文件
MIT License
Content type
Image
Digest
sha256:64bda3266…
Size
93.6 MB
Last updated
7 months ago
docker pull brantwang/mikrotik-client-watcher