2026-03-30 15:26:16 +08:00
|
|
|
|
package models
|
|
|
|
|
|
|
|
|
|
|
|
import "time"
|
|
|
|
|
|
|
2026-03-30 18:03:40 +08:00
|
|
|
|
// TrapRule 表示一条 SNMP Trap 规则,用于匹配并触发告警策略。
|
2026-03-30 15:26:16 +08:00
|
|
|
|
type TrapRule struct {
|
2026-03-30 18:03:40 +08:00
|
|
|
|
// ID 是数据库主键。
|
|
|
|
|
|
ID uint `gorm:"primaryKey" json:"id"`
|
|
|
|
|
|
// CreatedAt 记录创建时间(GORM 自动维护)。
|
|
|
|
|
|
CreatedAt time.Time `json:"created_at"`
|
|
|
|
|
|
// UpdatedAt 记录更新时间(GORM 自动维护)。
|
|
|
|
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
|
|
|
|
// Name 规则名称,用于展示/标识。
|
|
|
|
|
|
Name string `gorm:"size:256" json:"name"`
|
|
|
|
|
|
// Enabled 表示该规则是否启用。
|
|
|
|
|
|
Enabled bool `gorm:"default:true" json:"enabled"`
|
|
|
|
|
|
// Priority 表示匹配优先级(数值越高/低需以业务约定为准)。
|
|
|
|
|
|
Priority int `gorm:"index" json:"priority"`
|
|
|
|
|
|
// OIDPrefix 表示匹配的 OID 前缀。
|
|
|
|
|
|
OIDPrefix string `gorm:"size:512" json:"oid_prefix"`
|
|
|
|
|
|
// VarbindMatchRegex 表示对 varbind 内容的正则匹配条件。
|
|
|
|
|
|
VarbindMatchRegex string `gorm:"size:512" json:"varbind_match_regex"`
|
|
|
|
|
|
// AlertName 表示告警名称。
|
|
|
|
|
|
AlertName string `gorm:"size:256" json:"alert_name"`
|
|
|
|
|
|
// SeverityCode 表示严重级别编码。
|
|
|
|
|
|
SeverityCode string `gorm:"size:32" json:"severity_code"`
|
|
|
|
|
|
// PolicyID 表示关联的告警/处理策略 ID。
|
|
|
|
|
|
PolicyID uint `json:"policy_id"`
|
2026-03-30 15:26:16 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (TrapRule) TableName() string {
|
|
|
|
|
|
return "logs_trap_rules"
|
|
|
|
|
|
}
|