-
Notifications
You must be signed in to change notification settings - Fork 0
Operations and Plugins
EnerOS Bot edited this page Jul 5, 2026
·
1 revision
中文 | English
维护版本:v0.51.2 | 最后更新:2026-07-06
EnerOS v0.40.0 引入生产级运维自动化(SRE 风格),v0.27.0 引入插件系统(v0.28.0 增加进程隔离)。本页为两大子系统摘要;完整配置请参阅 ADR-0008 + ADR-0003 + 主仓库 docs/deployment.md §3.5 + docs/plugin-development.md。
| 类别 | 端点 |
|---|---|
| SLO |
/api/v1/ops/slo / /api/v1/ops/slo/burn-rate
|
| AIOps |
/api/v1/ops/aiops/alerts / /api/v1/ops/aiops/topology
|
| Incident |
/api/v1/ops/incidents / /api/v1/ops/incidents/{id}/runbook
|
| Oncall |
/api/v1/ops/oncall/shifts / /api/v1/ops/oncall/overrides
|
| Runbook |
/api/v1/ops/runbooks / /api/v1/ops/runbooks/{name}/execute
|
| Capacity |
/api/v1/ops/capacity/forecast / /api/v1/ops/capacity/thresholds
|
| Autoscaler |
/api/v1/ops/autoscaler/status / /api/v1/ops/autoscaler/scale
|
| Backup |
/api/v1/ops/backup/run / /api/v1/ops/backup/restore / /api/v1/ops/backup/drill
|
| Notification | /api/v1/ops/notify |
| 守护进程 | 二进制 | 职责 |
|---|---|---|
| AutoScaler | eneros-autoscaler | 周期检查 + 决策 + 执行扩缩容 |
| Backup | eneros-backup | cron 触发备份 + 演练 + 清理 |
| Oncall | eneros-oncall | 订阅事件 + 查询排班 + 通知 + SLA 升级 |
默认禁用(OpsConfig.enabled = false),未配置时所有 ops 端点返回 501。
[ops]
enabled = true
[ops.slo.slos]
name = "scada_availability"
target = 0.999
window = "30d"
[ops.aiops]
dedup_window_secs = 60
topology_threshold = 3
[ops.incident]
p0_sla_secs = 300
p1_sla_secs = 900
p2_sla_secs = 3600
p3_sla_secs = 14400
[ops.autoscaler]
min_instances = 1
max_instances = 10
scale_up_threshold = 100
scale_down_threshold = 10
[ops.backup]
backup_dir = "/var/backups/eneros"
cron = "0 2 * * *"
retention_days = 30
drill_enabled = true
drill_cron = "0 3 * * 0"- 频率:每日凌晨 2 点,数据量大时调整为每 12 小时
- 保留:30 天(生产建议 ≥ 90 天)
- 演练:每周日凌晨 3 点隔离演练
-
路径:
/var/lib/eneros(运行时状态)+/etc/eneros(配置)+/var/log/eneros/audit(审计日志) - 校验:每个文件计算 SHA-256,恢复时自动校验完整性
- 触发器:QueueDepth / SloBurnRate / CpuUsage / MemoryUsage
- 冷却:扩容 300s / 缩容 600s(缩容更保守)
- 二次确认:缩容延迟 300s 确认,防止瞬时波动误缩容
| 类型 | trait | 权限上限 | 用途 |
|---|---|---|---|
| Protocol | ProtocolPlugin |
设备访问 | 协议适配器扩展 |
| Agent | AgentPlugin |
Operator | Agent 策略扩展 |
| Analysis | AnalysisPlugin |
只读分析 | 分析模块扩展 |
| 模式 | 启动方式 | 隔离 | 适用场景 |
|---|---|---|---|
| Inline | 同进程加载 | 无 | 开发调试 |
| Daemon | plugin-daemon 独立进程 | seccomp + cgroups | 生产部署 |
Daemon 模式下插件崩溃不影响主进程,由 plugin-daemon 重启。
生产环境插件必须经过 Ed25519 签名验证,复用 v0.22.0 OTA 签名基础设施:
# 生成密钥对
enerosctl plugin gen-keys --output /etc/eneros/keys/
# 签名插件
enerosctl plugin sign ./libmy_plugin.so /etc/eneros/keys/private.key
# 验证签名
enerosctl plugin verify ./libmy_plugin.so /etc/eneros/keys/public.pub[plugin]
name = "iec104-driver"
version = "1.2.0"
api_version = "0.28.0"
plugin_type = "Protocol"
description = "IEC 104 protocol driver"
author = "EnerOS"
[dependencies]
plugins = ["core-mbus"]
[security]
signer = "eneros-trusted"- 0.x 版本:比较次版本号(MINOR),相同即兼容
- 1.x+ 版本:比较主版本号(MAJOR),相同即兼容
- 插件清单规范
- 签名链
- 兼容性矩阵
- 在线下载与安装
- AIOps 仅告警去重和拓扑关联,未集成根因分析(RCA)
- Runbook 仅 YAML 脚本,未支持图形化编排
- 插件沙箱仅 seccomp 系统调用过滤,未支持 seccomp-bpf 字节码自定义
- 插件市场仅清单浏览,未支持付费分发
- ADR-0008 运维自动化
- ADR-0003 插件进程隔离
- 高可用与多区域 — 运维与 HA 配合
-
配置参考 —
[ops]段配置项 - 主仓库 docs/deployment.md §3.5 — 运维部署配置
- 主仓库 docs/plugin-development.md — 插件开发完整指南
- 主仓库 crates/eneros-ops/ — 运维源码
- 主仓库 crates/eneros-plugin/ — 插件源码
EnerOS Wiki | v0.51.2