☰
Zabbix 监控 Infotecs ViPNet IDS:ViPNet IDS SNMPv2 模板部署、发现规则与告警调参全指南
2026/10/15 3:40:16 网站建设 项目流程

【免费下载链接】community-templates

Zabbix Community Templates repository

项目地址:https://gitcode.com/gh_mirrors/co/community-templates
点击查看免费下载

本文围绕社区模板仓库中面向 Infotecs ViPNet IDS 入侵检测系统的官方模板「ViPNet IDS SNMPv2」展开,系统讲解其基于 SNMPv2 的采集架构:从 35 个监控项的 OID 分组、7 条 LLD 低级别自动发现规则、6 个可调宏参数到 11 个告警触发器,并给出 Zabbix 5.0/5.4/6.0 三套格式文件的导入方法与实战调参建议。读完本文,你可以独立完成 ViPNet IDS 传感器的接入、按业务安全水位调整攻击告警阈值,并利用模板自带的饼图与接口状态监控快速定位入侵事件。

模板是什么:适用范围与仓库结构

「ViPNet IDS SNMPv2」是 Zabbix Community Templates 仓库中用于监控俄罗斯 Infotecs 公司 ViPNet IDS(入侵检测系统)的官方模板,作者为 Antik89。它通过 SNMPv2 agent 方式轮询 ViPNet IDS 传感器,覆盖了入侵检测场景下最核心的几类数据:

  • 攻击统计:按日 / 月 / 年三个时间窗口,以及 information(信息)、low(低)、medium(中)、high(高)四个严重度分别统计攻击数量,外加数据库中的累计攻击总数;
  • 系统健康度:CPU 负载、RAM 使用率、系统分区使用率与剩余空间、数据库剩余空间;
  • 服务状态:IDS 主服务、Sensor 服务、Loader 服务的运行状态;
  • 授权与版本:许可证到期日期、剩余天数、检测规则库日期、软件版本(主 / 次 / 补丁 / 构建号)、硬件平台与序列号;
  • 攻击事件明细:通过 LLD 自动发现过去 24 小时的事件名称、严重度、计数、URL,以及被攻击 IP 与攻击者 IP。

仓库中该模板按 Zabbix 版本提供三套导出文件(见 Applications/Firewall/template_vipnet_ids_snmpv2):

Zabbix 版本文件格式
5.05.0/template_vipnet_ids_snmpv2.xmlXML
5.45.4/template_vipnet_ids_snmpv2.yamlYAML
6.06.0/template_vipnet_ids_snmpv2.yamlYAML

三份文件内容一致,仅导出格式与触发器表达式写法不同(5.0 使用{change()}、{avg(5m)}等旧式语法,6.0 使用/主机/监控项函数式写法)。本文以 6.0 版本为主展开讲解。

模板导入与主机接入

导入模板

在 Zabbix Web 界面中按「数据采集 → 模板 → 导入」进入导入页面,选择与你 Zabbix 主版本匹配的导出文件(例如 Zabbix 6.0 导入 6.0/template_vipnet_ids_snmpv2.yaml),保持默认规则点击「导入」即可。导入成功后模板列表中会出现ViPNet IDS SNMPv2,其所属组为Templates。

主机配置要点

将模板链接到 ViPNet IDS 传感器所在主机后,需要保证 Zabbix server/proxy 能通过 SNMPv2 访问传感器:

  1. 在主机上配置 SNMP community 与端口(默认public/161,按 ViPNet IDS 实际配置填写);
  2. 确认传感器已启用 SNMP agent 数据导出,且允许 Zabbix 所在网段轮询;
  3. 模板本身没有链接其他模板(README 中明确 "There are no template links in this template"),因此无需额外导入依赖;
  4. 必须修改{$SENSOR.ID}宏为当前传感器的真实 Sensor ID,否则「Last day attacks」系列发现规则无法命中正确的 OID 子树(详见下文宏章节)。

网络层连通性自检

接入后可使用如下命令快速验证传感器是否可达、模板中的关键 OID 是否有返回值(以 Linux 下snmpget为例):

snmpget -v2c -c public <IDS_IP> 1.3.6.1.4.1.10812.3.1.1.0 # Sensor ID snmpget -v2c -c public <IDS_IP> 1.3.6.1.4.1.10812.3.1.8.5.0 # CPU load snmpwalk -v2c -c public <IDS_IP> 1.3.6.1.4.1.10812.3.1.9 # 攻击计数子树

宏体系:6 个可调参数与默认值

模板的全部阈值均通过宏暴露,便于在不修改触发器表达式的前提下按环境调优。下表来自 6.0/README.md,与 6.0/template_vipnet_ids_snmpv2.yaml 中的macros段完全一致:

宏名说明默认值
{$ATCKS.HIGH}触发高严重度攻击数量告警的增量阈值25
{$ATCKS.MED}触发中严重度攻击数量告警的增量阈值125
{$CPU.LOAD}CPU 负载告警阈值(%)75
{$LIC.DAYS}许可证剩余天数告警阈值(天)30
{$RAM.USAGE}RAM 使用率告警阈值(%)75
{$SENSOR.ID}传感器 ID,必须替换为实际值357810809

宏的生效层级与使用建议

Zabbix 宏遵循「模板级 → 主机级 → 宏值」的覆盖规则。建议:

  • {$SENSOR.ID}在主机级设置:每个 ViPNet IDS 传感器 ID 不同(可通过sensor.ID监控项读到实际值),放在主机级便于多传感器批量部署;
  • {$ATCKS.HIGH}/{$ATCKS.MED}建议在模板级按安全策略统一调整:注意模板默认值存在一个反直觉设定——高严重度告警阈值25反而低于中严重度阈值125,即高严重度攻击更容易触发告警,这符合「严重度越高越敏感」的安全运营习惯;
  • 观察实际攻击量后,若高严重度事件长期刷屏,可上调{$ATCKS.HIGH};反之若漏报,可下调。

监控项体系:35 个采集项与 OID 分组

模板共采集 35 个常规监控项(不含 LLD 原型),全部为SNMP agent类型,统一带Application: ViPNet IDS标签。从 6.0/template_vipnet_ids_snmpv2.yaml 可以提取出完整的 OID 定义。所有 OID 均位于 Infotecs 企业号1.3.6.1.4.1.10812之下,且呈现清晰的分组结构,可推断如下:

  • 3.1.1:Sensor ID
  • 3.1.4:数据库累计攻击总数
  • 3.1.5.x:许可证 / 序列号 / 规则库日期
  • 3.1.6.x:服务状态
  • 3.1.7.x:软件版本各分段
  • 3.1.8.x:系统资源(CPU / RAM / 分区 / 数据库空间)
  • 3.1.9.x.y:攻击计数(x=1 日 / 2 月 / 3 年,y=1 总数 / 2 高 / 3 中 / 4 低 / 5 信息)

攻击统计(12 项 + 3 项总计)

监控项名KeyOID更新周期单位
Attacks count for day periodattacks.day1.3.6.1.4.1.10812.3.1.9.1.1.01h-
Attacks count for day period (high severity)attacks.high.day1.3.6.1.4.1.10812.3.1.9.1.2.05m-
Attacks count for day period (medium severity)attacks.medium.day1.3.6.1.4.1.10812.3.1.9.1.3.01h-
Attacks count for day period (low severity)attacks.low.day1.3.6.1.4.1.10812.3.1.9.1.4.01h-
Attacks count for day period (information severity)attacks.information.day1.3.6.1.4.1.10812.3.1.9.1.5.01h-
Attacks count for month periodattacks.month1.3.6.1.4.1.10812.3.1.9.2.1.01d-
Attacks count for month period (high severity)attacks.high.month1.3.6.1.4.1.10812.3.1.9.2.2.01h-
Attacks count for month period (medium severity)attacks.medium.month1.3.6.1.4.1.10812.3.1.9.2.3.01h-
Attacks count for month period (low severity)attacks.low.month1.3.6.1.4.1.10812.3.1.9.2.4.01h-
Attacks count for month period (information severity)attacks.information.month1.3.6.1.4.1.10812.3.1.9.2.5.01h-
Attacks count for year periodattacks.year1.3.6.1.4.1.10812.3.1.9.3.1.01d-
Attacks count for year period (high severity)attacks.high.year1.3.6.1.4.1.10812.3.1.9.3.2.01h-
Attacks count for year period (medium severity)attacks.medium.year1.3.6.1.4.1.10812.3.1.9.3.3.01h-
Attacks count for year period (low severity)attacks.low.year1.3.6.1.4.1.10812.3.1.9.3.4.01h-
Attacks count for year period (information severity)attacks.information.year1.3.6.1.4.1.10812.3.1.9.3.5.01h-
Total attackstotal.attacks1.3.6.1.4.1.10812.3.1.4.015m-

系统资源(6 项)

监控项名KeyOID更新周期单位
CPU loadCPU.load1.3.6.1.4.1.10812.3.1.8.5.030s%
RAM usageRAM.usage1.3.6.1.4.1.10812.3.1.8.6.030s%
System partition usagesystempartition.usage1.3.6.1.4.1.10812.3.1.8.8.01h%
System partition free spacesystempartition.freespace1.3.6.1.4.1.10812.3.1.8.9.01hGb
Database free spaceDB.space1.3.6.1.4.1.10812.3.1.8.10.01hGb
Uptimesystem.uptime[sysUpTime.0]1.3.6.1.2.1.1.3.030suptime

其中Uptime使用标准 SNMPv2-MIB 的sysUpTime.0,原始单位为百分之一秒,模板通过预处理步骤MULTIPLIER 0.01将其转换为秒,再由uptime单位渲染为人类可读格式——这是模板中唯一使用预处理器的监控项。

服务状态(3 项)

监控项名KeyOID更新周期
Services statusservices.status1.3.6.1.4.1.10812.3.1.6.3.0120s
Loader service statusloader.status1.3.6.1.4.1.10812.3.1.6.4.0120s
Sensor service statussensor.status1.3.6.1.4.1.10812.3.1.6.5.0120s

三项均关联值映射ViPNet IDS services state:0 → down,1 → up,原始数值会被映射为可读状态。

许可证、版本与资产信息(8 项)

监控项名KeyOID更新周期类型
License expiration datelicense.expdate1.3.6.1.4.1.10812.3.1.5.1.01dTEXT
Serial numberserial.number1.3.6.1.4.1.10812.3.1.5.2.01dTEXT
Detection rules daterules.date1.3.6.1.4.1.10812.3.1.5.3.01dTEXT
License days before expirationlicense.expdays1.3.6.1.4.1.10812.3.1.5.5.01ddays
Software versionsoftware.version1.3.6.1.4.1.10812.3.1.7.1.01dTEXT
Hardware versionhardware.version1.3.6.1.4.1.10812.3.1.7.2.01dTEXT
Software version majorsoftware.major1.3.6.1.4.1.10812.3.1.7.3.01d-
Software version minorsoftware.minor1.3.6.1.4.1.10812.3.1.7.4.01d-
Software version hotfixsoftware.hotfix1.3.6.1.4.1.10812.3.1.7.5.01d-
Software version buildsoftware.build1.3.6.1.4.1.10812.3.1.7.6.01d-
Sensor IDsensor.ID1.3.6.1.4.1.10812.3.1.1.01h-

版本分段项(major / minor / hotfix / build)均为数字型且关闭趋势存储,供「软件版本变更」触发器比对使用;版本 / 硬件 / 序列号 / 许可日期 / 规则日期等 TEXT 类型项同样关闭趋势存储,只保留历史值,可有效控制数据库占用。

低级别自动发现(LLD):7 条发现规则详解

模板的核心亮点在于用 LLD 自动展开「过去 24 小时攻击事件」与「检测接口」两类动态数据。全部规则均使用 SNMP 动态索引发现语法discovery[{#SNMPVALUE},<OID前缀>],即以子树下的首个叶子值作为宏{#SNMPVALUE}、以完整子 OID 作为{#SNMPINDEX},更新周期 15m(接口发现为 1h),被发现条目保留生命周期1h(接口为 1h,事件类统一 lifetime 1h)。

1. Detection interface(检测接口发现)

  • Key:detection.interface,SNMP OID:discovery[{#SNMPVALUE},.1.3.6.1.4.1.10812.3.10.1.2],更新 1h
  • 生成 3 个原型监控项:
原型名KeyOID
Detection interface name {#SNMPVALUE}detection.interface.name.[{#SNMPVALUE}]1.3.6.1.4.1.10812.3.10.1.2.{#SNMPINDEX}
Detection interface state {#SNMPVALUE}detection.interface.state.[{#SNMPVALUE}]1.3.6.1.4.1.10812.3.10.1.3.{#SNMPINDEX}
Detection interface state discription {#SNMPVALUE}detection.interface.state.discription.[{#SNMPVALUE}]1.3.6.1.4.1.10812.3.10.1.4.{#SNMPINDEX}

接口状态项(state)关联值映射ViPNet IDS detection interface state:0 → up,2 → down,并内置高优先级(HIGH)触发器原型;名称与状态描述项为 TEXT 型、关闭趋势、更新 2m。注意模板作者对 "description" 一词的拼写沿用了原 README 中的discription,Key 需按模板原样使用。

2. Last day attacks(昨日攻击事件四元组发现)

四条规则分别发现事件名称、严重度、计数与 URL,共用{$SENSOR.ID}宏定位传感器子树:

发现规则Key发现 OID原型项
Last day attacks (events name)lastday.attacks.events.namediscovery[{#SNMPVALUE},.1.3.6.1.4.1.10812.3.4.1.4.{$SENSOR.ID}]lastdayevents.events.name[{#SNMPINDEX}](TEXT)
Last day attacks (events severity)lastday.attacks.events.severitydiscovery[{#SNMPVALUE},.1.3.6.1.4.1.10812.3.4.1.5.{$SENSOR.ID}]无原型
Last day attacks (events count)lastday.attacks.events.countdiscovery[{#SNMPVALUE},.1.3.6.1.4.1.10812.3.4.1.6.{$SENSOR.ID}]lastday.attacks.events.count[{#SNMPINDEX}]
Last day attacks (events URL)lastday.attacks.events.urldiscovery[{#SNMPVALUE},.1.3.6.1.4.1.10812.3.4.1.7.{$SENSOR.ID}]lastday.attacks.events.url[{#SNMPINDEX}](TEXT)

其中 events count 规则还设置了过滤条件evaltype: OR;events severity 规则仅用于发现但不产生原型项,可结合其他事件项交叉分析严重度分布。

3. Last day attacks(攻击者与被攻击 IP 发现)

发现规则Key发现 OID原型项
Last day attacks (attacker ip addresses)lastday.attacks.attacker.ipdiscovery[{#SNMPVALUE},.1.3.6.1.4.1.10812.3.6.1.2.{$SENSOR.ID}]lastday.attacks.attacker.ip[{#SNMPINDEX}](TEXT)
Last day attacks (attacked ip addresses)lastday.attacks.attacked.ipdiscovery[{#SNMPVALUE},.1.3.6.1.4.1.10812.3.5.1.2.{$SENSOR.ID}]lastday.attacks.attacked.ip[{#SNMPINDEX}](TEXT)

这两条规则都配置了正则过滤器,仅保留{#SNMPINDEX}匹配^(?:[1-9]|0[1-9]|10)$的条目,即只采集前 10 个索引对应的 IP 地址,避免攻击面过大时产生海量原型导致数据库膨胀。若需要查看更多攻击者,可在规则过滤器中调整该正则。

触发器体系:11 个告警规则与表达式解读

常规触发器(非 LLD)

触发器名表达式(6.0 语法)优先级手动关闭
{HOST.NAME} high growth of high severity attacks (>{$ATCKS.HIGH} events from last time)change(/ViPNet IDS SNMPv2/attacks.high.day)>={$ATCKS.HIGH}WARNING是
{HOST.NAME} high growth of medium severity attacks (>{$ATCKS.MED} events from last time)change(/ViPNet IDS SNMPv2/attacks.medium.day)>={$ATCKS.MED}WARNING是
{HOST.NAME} high CPU load (over {$CPU.LOAD}% for 5 min)avg(/ViPNet IDS SNMPv2/CPU.load,5m)>={$CPU.LOAD}WARNING否
{HOST.NAME} high RAM usage (over {$RAM.USAGE}% for 5 min)avg(/ViPNet IDS SNMPv2/RAM.usage,5m)>={$RAM.USAGE}WARNING否
{HOST.NAME} high system partition usage (over {$CPU.LOAD}%)last(/ViPNet IDS SNMPv2/systempartition.usage)>={$CPU.LOAD}WARNING否
{HOST.NAME} license expire soon ({#SNMPVALUE} days left)last(/ViPNet IDS SNMPv2/license.expdays)<={$LIC.DAYS}WARNING是
{HOST.NAME} services downchange(/ViPNet IDS SNMPv2/services.status)=-1WARNING是
{HOST.NAME} Sensor service status changed to downchange(/ViPNet IDS SNMPv2/sensor.status)=-1WARNING是
{HOST.NAME} has been restarted (uptime < 10m)last(/ViPNet IDS SNMPv2/system.uptime[sysUpTime.0])<10mWARNING是
{HOST.NAME} software version changed(last(/ViPNet IDS SNMPv2/software.build,#1)<>last(/ViPNet IDS SNMPv2/software.build,#2))=1 or (last(/ViPNet IDS SNMPv2/software.hotfix,#1)<>last(/ViPNet IDS SNMPv2/software.hotfix,#2))=1 or (last(/ViPNet IDS SNMPv2/software.major,#1)<>last(/ViPNet IDS SNMPv2/software.major,#2))=1 or (last(/ViPNet IDS SNMPv2/software.minor,#1)<>last(/ViPNet IDS SNMPv2/software.minor,#2))=1INFO是

触发器设计要点

  • 攻击突增判定:高 / 中严重度告警使用change()函数判断「与上一次取值的差值」,即检测的是攻击量的突增而非绝对值,可有效避免常态流量导致的误报;
  • 服务状态判定:change(...)=-1仅在状态值从1(up)变为0(down)时触发,配合值映射语义清晰;
  • 版本变更检测:通过last(...#1)与last(...#2)比较最近两次采集值的差异,任一版本分段(build / hotfix / major / minor)变化即告警,用于感知 IDS 软件升级或降级;
  • 系统分区告警复用宏:systempartition.usage的告警阈值直接复用{$CPU.LOAD}(默认 75%),如需独立调整分区阈值,建议在主机级覆盖或新建宏。

LLD 触发器原型

检测接口发现规则内置一个高优先级(HIGH)触发器原型:

{HOST.NAME} {#SNMPVALUE} detection interface state changed to down 表达式:change(/ViPNet IDS SNMPv2/detection.interface.state.[{#SNMPVALUE}])>0

结合值映射(0=up、2=down),当任一检测接口状态发生改变且新值大于旧值时即触发。README 中该触发器出现两次(常规与 LLD 条目),实际模板内以触发器原型形式存在于发现规则中,随 LLD 展开为每个接口的独立告警。

图形与可视化:4 张内置图表

模板预置 4 张图形,开箱即用:

图形名类型数据源
CPU load填充区域图(FILLED_REGION,绿色)CPU.load
Day attacks count3D 饼图attacks.high.day(F63100)、attacks.medium.day(FF8000)、attacks.low.day(80FF00)、attacks.information.day(2774A4)
Month attacks count3D 饼图attacks.high.month(FF4000)、attacks.medium.month(F7941D)、attacks.low.month(80FF00)、attacks.information.month(00BFFF)
Year attacks count3D 饼图attacks.high.year(FF0000)、attacks.medium.year(FF8000)、attacks.low.year(80FF00)、attacks.information.year(00BFFF)

三个攻击饼图均以严重度为扇区维度、calc_fnc: LAST取最新值,可直观呈现某时间窗口内各严重度攻击的构成比例;show_work_period: NO表示不按工作时间段着色。结合 LLD 生成的「Last day attacks」系列监控项,可在仪表盘中同时看到攻击总量、严重度构成与具体攻击者 / 被攻击目标 IP。

从导出文件看实现细节:OID 布局与值映射

通过 6.0/template_vipnet_ids_snmpv2.yaml 可以确认模板的几处底层设计:

  1. 企业 OID 分组:所有数据集中在1.3.6.1.4.1.10812.3下,.1为传感器资产与状态、.4/.5/.6为事件明细与许可、.8为资源、.9为分严重度计数、.10为检测接口,分组规整,便于自行扩展或排查;
  2. 值映射:模板定义了两个值映射——ViPNet IDS services state(0=down,1=up)用于三项服务状态监控项,ViPNet IDS detection interface state(0=up,2=down)用于接口状态原型;注意两个映射对 0 的语义相反(服务状态中 0 表示 down,接口状态中 0 表示 up),解读数据时需区分所属监控项;
  3. 标签体系:所有监控项与原型统一携带Application: ViPNet IDS标签,便于在 Zabbix 中按标签过滤与聚合;
  4. 版本差异:对比 5.0/template_vipnet_ids_snmpv2.xml 与 6.0 版本可见,监控项、发现规则与值映射完全一致,仅触发器表达式从旧式{change()}/{avg(5m)}/{last()}语法迁移为 6.0 的/主机/监控项函数语法——升级 Zabbix 版本时可直接重新导入对应格式文件,无需重做配置。

实战调参与运维建议

  1. 上线三步走:导入对应版本模板 → 主机接入并验证 SNMP 连通 → 将{$SENSOR.ID}替换为实际 Sensor ID(可从sensor.ID监控项读取)后观察 15~30 分钟,确认「Last day attacks」系列原型项正常生成;
  2. 阈值调优:初始阶段可保持宏默认值({$ATCKS.HIGH}=25、{$ATCKS.MED}=125、{$CPU.LOAD}=75、{$RAM.USAGE}=75、{$LIC.DAYS}=30),运行一周后根据告警频率与误报情况在主机级微调;许可证类告警建议至少提前 30 天预警,预留采购审批时间;
  3. 关注生命周期:LLD 条目 lifetime 为 1h,事件类原型随攻击窗口滚动自动过期清理,无需手动维护;若需长期保留某次重大攻击事件,可手动将对应原型改为常规监控项或导出历史数据;
  4. 升级路径:Zabbix 从 5.x 升级到 6.0 时,模板无需手工迁移——重新导入 6.0/template_vipnet_ids_snmpv2.yaml 即可获得新语法触发器,历史数据不受影响;
  5. 安全联动:将高严重度攻击告警(HIGH 优先级接口告警、WARNING 级攻击突增告警)接入 Zabbix 的 action 与媒体类型(如邮件、企业微信、Telegram),可第一时间感知 ViPNet IDS 检测到的入侵行为,与防火墙 / 态势感知平台形成联动闭环。

参考资源

  • 模板说明文档:Applications/Firewall/template_vipnet_ids_snmpv2/6.0/README.md
  • 6.0 导出定义(本文 OID 与表达式出处):Applications/Firewall/template_vipnet_ids_snmpv2/6.0/template_vipnet_ids_snmpv2.yaml
  • 5.4 版本导出:Applications/Firewall/template_vipnet_ids_snmpv2/5.4/template_vipnet_ids_snmpv2.yaml
  • 5.0 版本导出:Applications/Firewall/template_vipnet_ids_snmpv2/5.0/template_vipnet_ids_snmpv2.xml

【免费下载链接】community-templates

Zabbix Community Templates repository

项目地址:https://gitcode.com/gh_mirrors/co/community-templates
点击查看免费下载
上一篇:Apache Airflow 仓库 AGENTS.md 开发者协作规范与工程指南解读
下一篇:ToolJet 快速上手:使用 Docker 一键部署与自定义端口运行指南(2.50.0-LTS)

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询