有几种方法可以做到这一点。
1)传统方式
首先,它有助于理解 OpenNMS 如何在 RRD 文件中存储数据。通常它们存储在一个开始的目录结构中/opt/opennms/share/rrd/snmp
。下一个目录通常是设备的 nodeid。任何“节点”级别的值(即每个设备只出现一次)都存储在那里。接口级数据存储在由接口描述及其 MAC 地址组成的子目录中。通用资源类型(如您创建的资源类型)存储在以资源类型名称开头的子目录中。
OpenNMS 在 snmp-graph.properties.d 中的文件中定义图形。本讨论感兴趣的两个值是“类型”和“列”。“type”告诉 OpenNMS 在哪里寻找 RRD 文件:nodeSnmp 是 nodeid 目录,interfaceSnmp 是接口目录,“resourceType”是通用资源的名称。“columns”值告诉 OpenNMS 查找具有该名称的文件。
例如,如果我有:
report.name.type=nodeSnmp
report.name.columns=columnA,columnB
然后 OpenNMS 在设备的节点目录中寻找两个文件,分别称为columnA.rrd
和columnB.rrd
。如果它们存在,它将尝试运行报告。
因此,一个问题是您可以创建符号链接,然后使用这些名称来创建 RRD 报告。
我通常只为已知或重要的值这样做。例如,假设我有三个对等点:纽约、芝加哥和旧金山。然后,我可以转到特定节点目录并将 NYC 路由器的 ifHCInOctets.rrd 文件符号链接到 NYC-in.rrd,并将该路由器的 ifHCOutOctets.rrd 符号链接到 NYC-out.rrd。冲洗并重复 ORD 和 SFO。然后,您只需创建一个类型为“nodeSnmp”以及 NYC-in、NYC-out、ORD-in、ORD-out、SFO-in 和 SFO-out 列的报告。
正如我所提到的,它是一个 kludge,这就是为什么你可以使用:
2) Grafana 方法
OpenNMS 是 Grafana 数据可视化工具的第一个第三方插件。如果您设置 Grafana 并将其绑定到您的 OpenNMS 实例,您可以创建一个模板来做您想做的事。这里有一篇关于如何做到这一点的好帖子:http: //www.jessewhite.ca/opennms/grafana/2016/04/15/opennms-grafana-template-queries.html