Skip to content

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

运维自动化(eneros-ops)

25 个 Ops 端点

类别 端点
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

3 个独立守护进程

守护进程 二进制 职责
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 确认,防止瞬时波动误缩容

插件系统(eneros-plugin)

三类插件

类型 trait 权限上限 用途
Protocol ProtocolPlugin 设备访问 协议适配器扩展
Agent AgentPlugin Operator Agent 策略扩展
Analysis AnalysisPlugin 只读分析 分析模块扩展

进程隔离(v0.28.0+)

模式 启动方式 隔离 适用场景
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

插件清单(manifest.toml)

[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),相同即兼容

插件市场(v0.37.0+)

  • 插件清单规范
  • 签名链
  • 兼容性矩阵
  • 在线下载与安装

已知限制(v0.51.2)

  • AIOps 仅告警去重和拓扑关联,未集成根因分析(RCA)
  • Runbook 仅 YAML 脚本,未支持图形化编排
  • 插件沙箱仅 seccomp 系统调用过滤,未支持 seccomp-bpf 字节码自定义
  • 插件市场仅清单浏览,未支持付费分发

相关文档

Clone this wiki locally