ArthurMTX/sreye
GitHub: ArthurMTX/sreye
一个集主机性能监控、漏洞扫描、智能告警与 RBAC 权限管理于一体的 DevSecOps 基础设施监控平台。
Stars: 0 | Forks: 0
# SREye
**现代基础设施监控与安全洞察 —— 尽在一个简洁的面板中。**
SREye 是一个可用于生产环境的主机监控平台,结合了:
- 📊 高级系统指标
- 🔐 漏洞扫描
- 🚨 智能告警
- 👥 RBAC 与审计日志
- 🖥️ 现代 SaaS UI
- ⚙️ 支持 systemd 的强化版 agent
旨在展示真实的 DevOps、SRE 以及后端/前端工程实践。
## 为什么选择 SREye?
- **即时可见性** – 随时了解哪些机器处于健康、过载或离线状态
- **安全感知** – 持续的漏洞扫描与评分
- **生产级思维** – daemon agent、重试机制、状态持久化、systemd
- **SaaS 体验** – 身份验证、角色、审计日志、告警、暗黑模式
- **整洁扩展** – 分组、标签、指标注册表、降采样、评分
## 演示(本地)
| 服务 | URL |
|--------|------|
| Frontend | http://localhost:5173 |
| API 文档 | http://localhost:8000/docs |
| 健康检查 | http://localhost:8000/healthz |
## 核心功能
### 监控与可观测性 (Phase 1 + Phase 6)
#### 基础指标
- CPU、内存、磁盘使用率
- 在线 / 离线检测
- 历史时间序列图表
- 基于阈值的风险指标
#### 高级指标(可观测性级别)
- CPU:每核心使用率、负载平均、iowait
- 内存:已用、缓存、buffers、swap
- 磁盘:IOPS、吞吐量、延迟
- 网络:每个接口的流量、错误、丢包
- 进程:数量及占用 CPU/内存最高的进程
- systemd 服务状态
- Docker 容器(可选)
#### 指标平台
- 指标定义注册表
- agent 与后端之间的能力握手
- JSONB 标记指标
- 服务端降采样
- 预聚合汇总
- 指标探索器(搜索 + 叠加图表)
### 健康评分
- 全局机器评分(0–100)
- 分类评分(CPU、内存、磁盘、网络、安全等)
- 基于告警的惩罚机制
- 可配置的阈值
- 可解释的细分(UI 抽屉)
- 分组级别的聚合评分
### 安全
- Trivy 漏洞扫描(HIGH + CRITICAL)
- OS + 依赖检测
- 可用修复检测
- 修复提示
- 历史扫描追踪
- 集成到健康模型中的安全评分
### 告警与事件管理
- 基于规则的告警引擎
- 运算符:> >= < <= == !=
- 严重程度:info / warning / critical
- 冷静期 + 自动解决
- 电子邮件、Slack、Discord 与 Webhooks
- 完全的 RBAC 强制执行
### 身份验证与 RBAC
- JWT + refresh cookie 轮换
- 角色:Viewer / Operator / Admin / Owner
- 所有敏感操作的审计日志
### 分组与组织
- 层级分组(PRTG 风格)
- 机器隶属关系
- 分组健康概览
- 分组指标与评分
- 分组活动与审计追踪
- 基于标签的规则作用域
### Agent(生产级)
- CLI 或 daemon 模式
- 持久化的本地状态
- 指数退避
- 抖动间隔
- systemd 服务
- 强化的安装程序
- 高级采集器插件系统
## 架构
```
Agent (Python) ──► Backend (FastAPI + PostgreSQL) ──► Frontend (React)
Metrics + scans REST API + Auth SaaS UI
```
## 快速开始(开发)
### 1. 启动后端 + 前端
```
cd infra
docker-compose up -d
```
默认管理员用户:
- 邮箱:admin@example.com
- 密码:admin123
通过 `infra/.env` 覆盖:
```
SREYE_DEFAULT_ADMIN_EMAIL=you@example.com
SREYE_DEFAULT_ADMIN_PASSWORD=strong-password
```
### 2. 启动 agent(daemon 模式)
```
cd agent
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
export SREYE_API_URL=http://localhost:8000
export SREYE_INGEST_TOKEN=your-secret-token
python -m sreye_agent daemon
```
启用高级指标:
```
export SREYE_USE_ADVANCED_METRICS=true
```
### 3. 打开 UI
http://localhost:5173
## 生产环境安装(systemd)
### 快速安装
```
cd agent/packaging
sudo ./install.sh --api-url http://your-sreye-server:8000 --token your-secret-token
```
或者:
```
export SREYE_API_URL=http://your-sreye-server:8000
export SREYE_INGEST_TOKEN=your-secret-token
sudo -E ./install.sh
```
### 安装程序的作用
1. 创建系统用户 `sreye`
2. 将 agent 安装到 `/opt/sreye-agent`
3. 创建 `/etc/sreye/sreye.env`
4. 安装 systemd 服务
5. 启用并启动服务
### 安装后
```
sudo systemctl status sreye-agent
sudo journalctl -u sreye-agent -f
sudo systemctl restart sreye-agent
```
### 配置
编辑:
```
sudo nano /etc/sreye/sreye.env
```
示例:
```
SREYE_API_URL=http://your-sreye-server:8000
SREYE_INGEST_TOKEN=your-secret-token
SREYE_METRICS_INTERVAL_SECONDS=30
SREYE_SECURITY_INTERVAL_HOURS=24
SREYE_LOG_LEVEL=INFO
```
应用:
```
sudo systemctl restart sreye-agent
```
### 升级
```
cd agent/packaging
sudo ./install.sh --upgrade
```
### 强制重新安装
```
cd agent/packaging
sudo ./install.sh --force --api-url http://your-sreye-server:8000 --token your-secret-token
```
## 项目结构
```
sreye/
agent/
backend/
frontend/
infra/
docs/
```
## 路线图
- 多租户组织
- Kubernetes 支持
- 容器镜像扫描
- 容量规划
- 预测
- SLA 追踪
- 事件时间线
- 自定义采集器插件
## 安全模型
- JWT access + refresh cookies
- Token 轮换
- agent 摄入 token
- 密钥脱敏
- systemd 沙盒化
## 许可证
MIT License
标签:DevSecOps, SaaS平台, 上游代理, 主机监控, 告警系统, 测试用例, 请求拦截, 逆向工具