数据源准备
Prometheus、Alertmanager、Grafana 与 snmp_exporter 的准备工作:只读账号、标签约定、厂商识别、设备台账抓取任务和规则写回。
网关连接客户已有的 Prometheus 和 Alertmanager,Grafana 可选。地址和认证在安装时填写,或登录后在 设置 > 数据源连接 中填写,保存前必须 测试连接 通过。
Prometheus
- 网关只读调用 HTTP API:
/api/v1/query、query_range、series、labels、metadata、targets、rules、status/*。前面有反向代理做认证时,给网关一个只读账号(Basic 或 Bearer)。 - 私有 CA:把 CA 证书放进安装目录的
./certs,.env设置RST_PROMETHEUS_CA_CERT=/certs/ca.pem。不要关闭证书校验。
标签约定
内置的网络内容包(指标字典、告警规则包、运维手册)按下面的约定编写:
- snmp 采集任务的
job以snmp开头。 - blackbox 探测和 snmp 采集对同一台设备使用同一个
instance。 site、role、vendor作为 target 标签可选,有的话会带进记录规则和告警,分诊按它们排优先级。
厂商识别
按 sysObjectID 的企业号前缀识别厂商。华为、H3C、Cisco、锐捷、Juniper、Fortinet、深信服等使用私有 MIB;识别不出的设备使用 IF-MIB、ENTITY-MIB、ENTITY-SENSOR-MIB、HOST-RESOURCES-MIB 兜底。
设备台账抓取任务
网络规则包依赖台账导出的三个 rst_* 指标:接口告警口径、防火墙会话上限和 HA 标记,由网关在 /metrics/inventory 暴露。在客户 Prometheus 的 prometheus.yml 中加一个抓取任务,地址换成网关的访问地址;设置了 RST_METRICS_TOKEN 时带上 authorization:
- job_name: rst-inventory
honor_labels: true
metrics_path: /metrics/inventory
scrape_interval: 60s
scheme: https
# authorization:
# credentials: <RST_METRICS_TOKEN>
static_configs:
- targets: ["copilot.example.com:443"]不加这个任务时,接口 down 只按默认口径(ifAlias 非空的接口)告警,防火墙不报接近会话上限,HA 异常不报。
告警规则写回(可选)
告警规则审批通过后,网关把规则写进自己的规则文件目录 RST_PROM_RULES_DIR。Prometheus 需要加载这个目录(rule_files: [<目录>/*.yml]),并以 --web.enable-lifecycle 启动,网关才能热加载。不配置时规则可以生成和审批,但不能写回。
snmp_exporter
网络内容包的指标名和标签按交付包中的 deploy/snmp_exporter/snmp.yml 编写,模块由官方 generator 基于公开 MIB 生成。客户的 snmp_exporter 直接使用这份配置,团体字或 SNMPv3 凭据另建 auths.yml,按设备类型选择模块。需要加厂商 MIB 时,在客户环境重新生成。
深信服 AF 没有公开 MIB,交付包中的深信服模块是未核实的占位,需要从 AF 导出 MIB 后重新生成。步骤见交付包中的 deploy/snmp_exporter/README.md。
Alertmanager
- 网关读
/api/v2/alerts、/api/v2/status,读写/api/v2/silences(建与撤静默,全部写审计)。 - 告警路由不变:分组、抑制、发给值班的通知仍由 Alertmanager 自己的
route和receivers负责。网关的通知只投递 AI 产出,不会重复发告警。
Grafana(可选)
GRAFANA_URL 填浏览器能打开的地址,GRAFANA_DATASOURCE_UID 填 Grafana 中 Prometheus 数据源的 UID。配置后,告警和查询结果上会出现 在 Grafana 打开。网关不调用 Grafana 的 API,跳转后使用运维人员自己的 Grafana 登录态。