Files
aiops/backend/seed/snmp_seed.go
T
LoganandClaude 471353e3d7 feat: 监控告警体系统一重构 + 自动化任务调度引擎 + 监控大屏拆分
告警中心
- 新增统一告警(alert_unified)、监控告警规则(monitor_alert_rule)、指标目录(alert_metric_catalog)
- 通知策略与消息分发(alert_notify_policy/dispatch/message)、静默规则
- 告警引擎按阈值/SNMP 拆分(alert_engine_monitor/snmp)

监控采集
- SNMP 常量/模板与历史指标(snmp templates/constants、snmp_metrics_history、snmp_collect)
- 中间件监控 Redis 采集与种子(middleware_monitor_redis/seed)
- 站点探测 pkg(siteprobe) + 站点视图(site_view)

自动化任务
- cron 调度器(cronscheduler)、脚本运行器(scriptrunner)、系统任务(systask)及运行记录(cron_job_run、system_task)

审计与凭证
- 审计设置(audit_setting) + 历史清理(auditcleaner)

前端
- 监控页面(host/middleware/site/snmp)拆分为子模块并大屏化
- 告警中心多 Tab(规则/指标目录/通知策略/静默)、任务管理组件重构、Agent CLI Markdown 渲染
- 移除旧脚本卡片/详情/日志组件,统一为 ScriptTable/ScriptCodeEditor/TerminalOutput

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-01 23:44:45 +08:00

42 lines
1.1 KiB
Go

package seed
import (
snmppkg "ezops/pkg/snmp"
"ezops/model"
"go.uber.org/zap"
"gorm.io/gorm"
)
// SeedSNMPTemplates 种子 H3C/华为等内置 OID 模板 // Logan.Li
func SeedSNMPTemplates(db *gorm.DB) {
for _, bt := range snmppkg.BuiltinTemplates() {
var exist model.SNMPTemplate
db.Where("name = ? AND is_system = ?", bt.Name, true).First(&exist)
if exist.ID > 0 {
continue
}
tpl := model.SNMPTemplate{
Name: bt.Name, Description: bt.Description,
DeviceType: bt.DeviceType, Vendor: bt.Vendor,
IsDefault: bt.Vendor == "H3C" && bt.DeviceType == "switch",
IsSystem: true, Status: 1,
}
if err := db.Create(&tpl).Error; err != nil {
zap.L().Warn("seed snmp template failed", zap.String("name", bt.Name), zap.Error(err))
continue
}
for _, o := range bt.OIDs {
oid := model.SNMPTemplateOID{
TemplateID: tpl.ID, Name: o.Name, OID: o.OID,
Description: o.Description, DataType: o.DataType,
Unit: o.Unit, SortOrder: o.SortOrder,
}
if o.IsTable {
oid.Conversion = "table"
}
db.Create(&oid)
}
zap.L().Info("seeded snmp template", zap.String("name", bt.Name), zap.Int("oids", len(bt.OIDs)))
}
}