跳转至内容

使用 Xymon 进行系统监控/其他文档/HOWTO/Devmon SNMP

来自 Wikibooks,开放世界中的开放书籍

Devmon SNMP Hobbit 设置 HOWTO

[编辑 | 编辑源代码]

本 HOWTO 探讨将 SNMP 管理器查询功能添加到 Hobbit 服务器的过程。假设和步骤来自http://www.techagent.com/devmon_snmp_hobbit_setup.htm,并进行了一些小的编辑。

  • Hobbit 已安装并正常运行。
  • Devmon 已安装,没有明显的错误。
  • 您有一个启用了 snmp 的目标设备。
  • 您知道目标设备的 IP 地址。
  • 您知道目标设备的只读(查询)社区字符串。
  • Linux 机器上或 Linux 机器与 snmp 目标设备之间没有安装防火墙。
  • 您已在 Linux 机器上安装了net-snmp-utils(或同等软件)。
  • 此步骤以 Windows XP 机器为例 SNMP 设备。有关安装/配置各种操作系统的 SNMP 代理的说明。

初始设置和测试

[编辑 | 编辑源代码]

Ping 目标 SNMP 设备

[编辑 | 编辑源代码]

当然,从 Hobbit 服务器执行此操作。注意:在下面的示例中,snmp 目标设备将被称为winserver

[root@hob tmp]# ping winserver
PING winserver (192.168.100.105) 56(84) bytes of data.
64 bytes from winserver (192.168.100.105): icmp_seq=0 ttl=124 time=48.7 ms

这告诉我们设备已启动,并且可以通过网络访问。

如果您无法 ping snmp 设备,则必须在继续之前解决此问题。请记住,有时设备被配置为不响应 ping。

尝试从 SNMP 设备读取 sysDescr

[编辑 | 编辑源代码]

这将告诉我们我们可以通过 snmp 访问 snmp 设备,我们使用的是正确的只读(查询)社区字符串,并且我们将在未来的步骤中使用返回的信息。

[root@hob tmp]# snmpget -v2c -c public winserver 1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0 = STRING: Hardware: x86 Family 15 Model 3 Stepping 4 AT/AT COMPATIBLE - Software: Windows 2000 Version 5.0 (Build 2195 Multiprocessor Free)

如果您成功了,万岁!这是一件好事

  • 我们可以与设备进行 snmp 通话。
  • 我们使用的是正确的社区字符串。
  • 我们使用的是正确的 snmp 版本。
  • 我们现在知道设备的 sysDescr,Devmon 设置将需要知道这一点。

如果您不成功,那么必须在继续之前解决此步骤。也许尝试使用-d(调试)选项的 snmpget 以收集更多信息,并尝试使用tcpdump 监听 linux 服务器与 snmp 目标设备之间的任何通信。

将目标设备添加到您的 Hobbit 设置

[编辑 | 编辑源代码]

在您的 bb-hosts 文件中添加设备行。有关您在此处可以添加的选项的更多信息,请参阅 Devmon 文档。

192.168.100.105 winserver # DEVMON:cid(public)

添加未识别的设备和/或新的测试

[编辑 | 编辑源代码]

考虑 Devmon 的工作原理

[编辑 | 编辑源代码]

这是由eschwim(项目管理员)编写的。Devmon 的工作方式非常简单。

  1. 外部进程(很可能是使用--readbbhosts 标记运行的 devmon)会从 Hobbit 或 BigBrother bb-hosts 文件更新 Devmon 数据库。
    • 在单节点安装中,Devmon 数据库存储在hosts.db 文件中。
    • 在多节点安装中,它保存在 MySQL 数据库中。
  2. Devmon 读取其模板。
    • 单节点安装在每次轮询周期开始时从磁盘读取模板。
    • 多节点版本从数据库读取模板,但前提是自上次读取以来模板已被更新/更改。
  3. Devmon 对数据库中的所有设备执行 SNMP 查询。SNMP 查询已优化,因此如果在设备的多个测试中指定了相同的 SNMP OID,则只会查询一次。
  4. Devmon 将模板逻辑应用于返回的 SNMP 数据。这包括进行转换、应用阈值,最后渲染要发送到显示服务器的消息。
  5. Devmon 将渲染后的消息发送到显示服务器。
  6. Devmon 睡眠剩余的轮询周期时间。
  7. 通常,返回步骤 1。如果外部进程更新 devmon 数据库的间隔与轮询间隔不同,Devmon 可能会转到步骤 2。

为设备创建模板

[编辑 | 编辑源代码]

现在我们对 Devmon 有了基本的了解。我们可以通过 snmp 与目标设备通信,我们知道 sysDescr,并且已将设备输入到 bb-hosts 文件中。由于设备(Windows 2000 服务器)不是提供的模板之一,因此下一步是使用现有的模板作为指南来创建一个新模板。

  1. 在 templates 目录中,为新设备创建一个新目录。
  2. 将另一个设备目录中的 specs 文件复制到此处作为指南。
  3. 编辑 specs 文件
    • 将 Vendor 更改为您要使用的供应商名称。
    • 将 model 更改为您要使用的型号。
    • 将 snmpver 更改为设备的 snmpver(您在之前步骤中确认了版本)。
    • 最重要的是,将 sysdesc 更改为与您之前从设备接收到的 sysDescr 相匹配。
[root@hob win2000server]# more specs
vendor : Microsoft
model : Win2000
snmpver : 2
sysdesc : Hardware: x86 Family 15 Model 3 Stepping 4 AT/AT COMPATIBLE - Software : Windows 2000 Version 5.0

在本例中,使用了完整的 sysDescr,但您可以使用更短的内容,例如"软件 : Windows 2000 版本 5.0" 甚至 "Windows 2000",只要它匹配即可。这取决于您希望细化到什么程度(例如,将 x86 和 x64 设备区别对待)。

暂时不要担心像其他所有设备一样的测试目录。我们只是想确保 Devmon 将与 hobbit 协同工作。

确认模板匹配

[编辑 | 编辑源代码]

使用 --readbbhosts -vvv 标志运行 devmon。当我们这样做时,devmon 进程将读取 bb-hosts 文件以查找 DEVMON 标记。当它找到一个时,它将查询设备以获取 sysDescr,并尝试在 templates 目录的 specs 文件中找到匹配的设备。如果找到匹配项,则将设备添加到 Devmon hosts.db。如果 devmon 未找到匹配项,则将忽略该设备。

[root@hob devmon]# ./devmon --readbbhosts -vvv
[07-01-31@04:42:07] SNMP querying all hosts in bb-hosts file, please wait...
[07-01-31@04:42:07] Querying pre-existing hosts
[07-01-31@04:42:08] Querying new hosts /w custom cids using snmp v2
[07-01-31@04:42:08] Discovered winserver as a Microsoft Win2000

如果发现不成功(即没有 Discovered 行),您需要仔细检查 sysDescr 与 specs 文件中的 sysdesc。尝试复制/粘贴以避免任何转录错误。

为设备决定一个测试

[编辑 | 编辑源代码]

现在我们知道 devmon 已成功识别目标设备并将其输入到 hosts.db 中。我们的下一步是添加一个测试。您应该从设备的 MIB 中选择一个您希望 hobbit 检查的值。在我的测试设备上,我已加载了来自 http://www.snmp-informant.com/ 的免费标准版 snmp 包。此包允许我使用此 oid(对象标识符).1.3.6.1.4.1.9600.1.1.1.1.5.2.67.58 检查机器的可用磁盘空间。因此,我的测试将是检查可用磁盘空间。让我们先用 snmpget 测试以确认这是一个好的 oid

[root@hob win2000server]# snmpget -v2c -c public winserver .1.3.6.1.4.1.9600.1.1.1.1.5.2.67.58
SNMPv2-SMI::enterprises.9600.1.1.1.1.5.2.67.58 = Gauge32: 71

如您所见,成功检索到了一个值,因此这将成为测试的基础。创建它的目录。

[root@hob win2000server]# mkdir disk
[root@hob win2000server]# cd disk
[root@hob disk]#

创建测试:文件

[编辑 | 编辑源代码]

现在是我们关注之前在创建的新目录中跳过的其他文件的时候了。有 5 个文件被使用,唯一必需的文件是oidsmessagethresholds。其他文件很有用,您最终可能会使用它们,但我们的目标只是开始。

  • oids : 此文件包含要执行的测试的 OID。请注意,我只是在第一个字段中编造了一个名称,此名称将在其他文件中使用,因此您希望使它唯一。Devmon 附带的文档非常适合这些文件,因此我不会详细介绍。
root@hob disk]# more oids
win2000model :                 .1.3.6.1.2.1.1.1.0                  :leaf
win2000uptime :                .1.3.6.1.2.1.1.3.0                  :leaf
win2000freespace :           .1.3.6.1.4.1.9600.1.1.1.1.5.2.67.58   :leaf
root@hob disk]# 
  • message: 用于构建将发送到 hobbit 服务器的消息。它使用您在oids文件中编造的名称。win2000uptime_m 是在transforms文件中创建的变量。同样,文档也适用于此文件。
[root@hob disk]# more message
{win2000model.errors}
{win2000uptime.errors}
{win2000freespace.errors}

Disk Free Space

Model {win2000model}
System up time {win2000uptime_m} minutes
Free Space {win2000freespace}%
  • thresholds: 此文件设置您对正在观察的值的所需阈值。这是非常不言自明的。参见文档。
[root@hob disk]# more thresholds
win2000freespace :     red                : <=10 : free space is very low
win2000freespace :     yellow             : <=20 : free space is low
[root@hob disk]# 

可选文件

  • transforms: 此文件使您能够对从 snmp 目标检索到的值进行一些操作。我只是用它来除以启动时间以获得分钟,但它似乎非常强大。参见文档。
[root@hob disk]# more transforms
win2000uptime_s :       MATH     : {win2000uptime} / 100
win2000uptime_m :       MATH     : {win2000uptime} / 100 / 60
win2000uptime_h :       MATH     : {win2000uptime} / 100 / 60 / 60
[root@hob disk]# 
  • exceptions: 此文件目前超出本指南的范围。抱歉!参见文档。

测试!

[编辑 | 编辑源代码]

使用-f -p -vvvvvvvvv选项运行 devmon,这将

  • 将 devmon 保持在前台
  • 不会将消息发送到 hobbit 服务器
  • 并且非常详细
[root@hob disk]# ../../../devmon -f -p -vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
[07-01-31@06:45:29] Nodename autodetected as hob
[07-01-31@06:45:29] ---Initilizing devmon...
[07-01-31@06:45:29] Verbosity level: 30
[07-01-31@06:45:29] Logging to /var/log/devmon.log
[07-01-31@06:45:29] Node 0 reporting to localhost
[07-01-31@06:45:29] Running under process id: 29301
[07-01-31@06:45:29] Entering poll loop
[07-01-31@06:45:30] Starting snmp queries
[07-01-31@06:45:30] Querying winserver for tests disk
[07-01-31@06:45:31] Performing test logic
[07-01-31@06:45:31] Done with test logic
[07-01-31@06:45:31] Sending messages to display server
status winserver.disk green Wed Jan 31 06:45:31 2007


Disk Free Space

Model Hardware: x86 Family 15 Model 3 Stepping 4 AT/AT COMPATIBLE - Software: Windows 2000 Version 5.0 (Build 2195 Multiprocessor Free)
System up time 1293.99 minutes
Free Space 71%


Devmon version 0.2.2 running on hob
status hob.dm green Wed Jan 31 06:45:31 2007

devmon, version 0.2.2

Node name: hob
Node number: 0
Process ID: 29301

Cycle time: 60
Dead time: 180

Polled devices: 1
Polled tests: 1
Avg tests/node: n/a
# clear msgs: 0

SNMP test time: 1
Test logic time: 0
BB msg xfer time: 0
This poll period: 1

Avg poll time: wait

[07-01-31@06:45:31] Sleeping for 59 seconds.

成功,devmon 正在运行,snmp 设备正在响应。现在只需遵循文档在 cron 中设置 devmon 即可。

调试示例

[编辑 | 编辑源代码]

成功匹配

[编辑 | 编辑源代码]
  • sysdesc 是“SunOS snmpsolaris10 5.10 Generic_118833-36 sun4u”。
  • 从 compaq-server 创建的 Solaris 10 的 devmon spec 文件。
    • "cp -rp templates/compaq-server templates/Solaris-5.10"
    • 注意:Solaris-5.10/specs 文件中的 sysdesc 字段需要为 5.10 或 SunOS。否则,devmon 将无法匹配它。
    • 注意:raid 目录需要存在,否则匹配将失败。
    • 修改 Solaris-5.10/spec 如下
bash-3.00$ cat Solaris-5.10/specs
vendor  : Solaris
model   : 5.10
snmpver : 2
sysdesc : 5.10
bash-3.00$
  • 匹配日志
bash-3.00$ ./devmon --readbbhosts -vvvvvvvv  --debug
[07-08-12@06:41:26] Saw 9 vendors, 25 models, 25 sysdescs & 75 templates
[07-08-12@06:41:26] SNMP querying all hosts in bb-hosts file, please wait...
[07-08-12@06:41:26] Querying pre-existing hosts
[07-08-12@06:41:26] DEBUG SNMP: Dethawing data for snmpsolaris10
[07-08-12@06:41:26] snmpsolaris10 sysdesc = ::: SunOS snmpsolaris10 5.10 Generic_118833-36 sun4u :::
[07-08-12@06:41:26] snmpsolaris10 did not match apc : 9609 : MN: AP9606
[07-08-12@06:41:26] snmpsolaris10 did not match apc : 9205 : Mod: AP9205
[07-08-12@06:41:26] snmpsolaris10 did not match apc : 9619 : MN:AP9619
[07-08-12@06:41:26] snmpsolaris10 did not match f5 : bigip : bigip
[07-08-12@06:41:26] snmpsolaris10 did not match compaq : server : linux|Linux
[07-08-12@06:41:26] Discovered snmpsolaris10 as a Solaris   5.10
bash-3.00$

不匹配

[编辑 | 编辑源代码]
  • 从 sourceforge 安装的模板,其中包含一些 cisco、apc、powerware 和 netap 模板文件。
  • 以下是在 Solaris 10 上的 snmp 代理缺少/错误的模板文件的示例。
bash-3.00$ ../../devmon --readbbhosts -vvv --debug
[07-08-11@08:50:05] Saw 8 vendors, 24 models, 24 sysdescs & 72 templates
[07-08-11@08:50:05] SNMP querying all hosts in bb-hosts file, please wait...
[07-08-11@08:50:06] Querying new hosts /w custom cids using snmp v2
[07-08-11@08:50:06] DEBUG SNMP: Dethawing data for snmpsolaris10.mydomain.com
[07-08-11@08:50:06] snmpsolaris10.mydomain.com sysdesc = ::: SunOS snmpsolaris10 5.10 Generic_118833-36 sun4u :::
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match apc : 9609 : MN: AP9606
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match apc : 9205 : Mod: AP9205
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match apc : 9619 : MN:AP9619
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match f5 : bigip : bigip
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match compaq : server : linux|Linux
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match cisco : 3725 : C3725
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match cisco : 2970 : C2970
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match cisco : 1700 : C1700
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match cisco : 3550 : C3550
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match cisco : 2900 : C2900
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match cisco : 1841 : C1841
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match cisco : 6509 : c6sup|s72033_rp|s222_rp
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match cisco : 3750 : C3750
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match cisco : 2801 : C2801
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match cisco : 2600 : C2600
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match cisco : 2960 : C2960
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match cisco : 7206 : 7200
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match cisco : 2950 : C2950
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match cisco : 3500 : C3500
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match powerware : xups : ConnectUPS
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match powerware : 9170 : BestLink
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match powerware : bestlink : BestLink
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match aruba : 5000 : Aruba5000
[07-08-11@08:50:06] snmpsolaris10.mydomain.com did not match Network Appliances : NetApp v1.0 : NetApp
[07-08-11@08:50:06] No matching templates for device: snmpsolaris10.mydomain.com
[07-08-11@08:50:06] Querying new hosts using cid 'public' and snmp v2
[07-08-11@08:50:06] Querying new hosts using cid 'private' and snmp v2
[07-08-11@08:50:06] Querying new hosts /w custom cids using snmp v1
[07-08-11@08:50:06] Querying new hosts using cid 'public' and snmp v1
[07-08-11@08:50:06] Querying new hosts using cid 'private' and snmp v1
bash-3.00$
  • templates 目录下 snmpsolaris10 的不正确 specs 文件
bash-3.00$ cat specs
vendor  : Sun
model   : Ultra60
snmpver : 2
sysdesc : SunOS snmpsolaris10 5.10 Generic_118833-36 sun4u
bash-3.00$

如何覆盖不匹配或无匹配

[编辑 | 编辑源代码]

可以使用 bb-hosts 中的 model 标记覆盖检测到的 specs。例如,可以使用 DEVMON:model(dell;poweredge) 为运行 Microsoft Windows 的 Dell PowerEdge 服务器(仅针对 Microsoft Windows Server 2003 报告“Hardware: x86 Family 15 Model 4 Stepping 3 AT/AT COMPATIBLE - Software: Windows Version 5.2 (Build 3790 Multiprocessor Free)”)。

不同设备上 SNMP 系统信息的示例

[编辑 | 编辑源代码]

Linksys BEFSX41

[编辑 | 编辑源代码]
bash-3.00# /opt/bin/snmpwalk  -v1 -c public  192gw system 
SNMPv2-MIB::sysDescr.0 = STRING: BEFSX41
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.3955.1.1
SNMPv2-MIB::sysUpTime.0 = Timeticks: (638239) 1:46:22.39
SNMPv2-MIB::sysContact.0 = STRING: Linksys
SNMPv2-MIB::sysName.0 = STRING: none
SNMPv2-MIB::sysLocation.0 = STRING:
SNMPv2-MIB::sysServices.0 = INTEGER: 4
bash-3.00#

ONStor 2260

[编辑 | 编辑源代码]

以下是 onstor 2260 设备的系统描述。

bash-3.00$ /opt/bin/snmpwalk  -v 2c -c mysecret  onstor_ip  system
SNMPv2-MIB::sysDescr.0 = STRING: ONStor 2260 NAS Gateway
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.10110.1.1.2.1
SNMPv2-MIB::sysUpTime.0 = Timeticks: (6976921) 19:22:49.21
SNMPv2-MIB::sysContact.0 = STRING: [email protected]
SNMPv2-MIB::sysName.0 = STRING: onstor_name
SNMPv2-MIB::sysLocation.0 = STRING: OnStor
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (28) 0:00:00.28
bash-3.00$

已启用 snmp 代理的 Cisco 2950

[编辑 | 编辑源代码]
  • 2950 关于 snmp 的手册
  • 通过 telnet/ssh 登录到 cisco 2950,在 cisco 2950 上启用 snmp。
    • enable
    • configure terminal
    • snmp-server community public ro
    • end
    • show running-config
    • copy running-config startup-config
myswitch.net switch

User Access Verification

Password:
Switch>enable
Password:
Switch#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#
  • 使用 snmpget 命令获取 sysDescr
[root@rh9 root]# snmpget -v2c -c public 192.168.1.32 1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0 = STRING: Cisco Internetwork Operating System Software
IOS (tm) C2950 Software (C2950-I6K2L2Q4-M), Version 12.1(22)EA6, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2005 by cisco Systems, Inc.
Compiled Fri 21-Oct-05 02:22 by yenanh
[root@rh9 root]#

Solaris 9

[编辑 | 编辑源代码]
[root@rh9 root]# snmpwalk  -v 1 -c public 192.168.1.149 system
SNMPv2-MIB::sysDescr.0 = STRING: Sun SNMP Agent, Sun-Blade-100
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.42.2.1.1
SNMPv2-MIB::sysUpTime.0 = Timeticks: (624162552) 72 days, 5:47:05.52
SNMPv2-MIB::sysContact.0 = STRING: System administrator
SNMPv2-MIB::sysName.0 = STRING: oss
SNMPv2-MIB::sysLocation.0 = STRING: System administrators office
SNMPv2-MIB::sysServices.0 = INTEGER: 72
[root@rh9 root]#

Solaris 10

[编辑 | 编辑源代码]
  • Solaris 10
    • 检查是否已安装 snmp 软件包。
bash-3.00# pkginfo |egrep 'SUNWsacom|SUNWsasnm|SUNWsadmi|SUNWmibii'
system      SUNWmibii                    Solstice Enterprise Agents 1.0.3 SNMP daemon
system      SUNWsacom                    Solstice Enterprise Agents 1.0.3 files for root file system
system      SUNWsadmi                    Solstice Enterprise Agents 1.0.3 Desktop Management Interface
system      SUNWsasnm                    Solstice Enterprise Agents 1.0.3 Simple Network Management Protocol
bash-3.00#
  • 配置 snmp conf 文件。
  • 启动/停止 snmp 代理。
  • 正在运行的进程
bash-3.00# ps -eaf |egrep -i 'snmp|dmi'
    root   224     1   0   Aug 02 ?           0:00 /usr/lib/dmi/dmispd
    root    77     1   0   Aug 02 ?           0:57 /usr/sfw/sbin/snmpd
    root    95     1   0   Aug 02 ?           0:00 /usr/lib/snmp/snmpdx -y -c /etc/snmp/conf
    root   232     1   0   Aug 02 ?           0:00 /usr/lib/dmi/snmpXdmid -s snmpsolaris10
bash-3.00#

docs/GRAPHING 文件中提供了一些关于图表绘制的文档。从 Devmon 数据生成图表通常有两种方法。如果您从 SNMP 分支收集数据,则应使用“图表绘制表格”的说明。如果您从 SNMP 叶收集数据,则应使用“图表绘制一个或多个值”的说明。

图表绘制表格

[编辑 | 编辑源代码]

在消息文件中,可以将 RRD 定义添加到表格定义中。如果 OID 是分支,建议使用此方法。文档中给出的示例是

TABLE:rrd(DS:ds0:ifInOctets:COUNTER; DS:ds1:ifOutOctets:COUNTER)

此 rrd 标签不应单独放在一行,而应放在定义要跟踪的表格的那一行之后。这将向生成的 HTML 页面添加注释,其中包含的信息可以由您 devmon 安装目录下的 extras 目录中的 devmon-rrd.pl 脚本解析。该脚本将开始为表格生成 .rrd 文件。

要解析 .rrd 文件以生成图表,您必须在 Xymon 安装目录中的 hobbitgraph.cfg 文件中创建图表定义。

然后将 ,=devmon 设置添加到 hobbitserver.cfg 中的 TEST2RRD 变量中。

请注意,旧版本的 Devmon 只能使用两个数据集,它们必须分别命名为 ds0ds1

请注意,如果您添加了一个包含多行的表格,则应将 --multigraphs 设置添加到 CGI_SVC_OPTS 中;有关详细信息,请参阅 常见问题解答(为什么我的自定义图表只显示在趋势列中,而不显示在其自己的列中?)。如果您不这样做,图表只会显示在趋势列中,而不会显示在预期的列中。

图表绘制一个或多个值

[编辑 | 编辑源代码]

可以将消息文件格式化为 hobbitd_rrd 的“ncv”模块可以识别的格式。如果 OID 是叶,建议使用此方法。NCV 代表“名称冒号值”,并且“ncv”模块将解析生成的 HTML 页面以获取此数据。在 devmon 模板的消息文件中,当您添加一行以显示 UPS 的温度时,您将添加

Temperature: {tempVar}

这将显示网页上的值,还会为“ncv”模块提供要解析的内容。它将设置一个名为“Temperature”的变量,该变量等于 {tempVar} 的值,并将其添加到 .rrd 文件中,DS 名称为“Temperature”。在开始生成 .rrd 文件后,您可以在 hobbitgraph.cfg 文件中添加一个定义,该定义将读取 .rrd 文件并在页面上显示图表。

要开始生成 .rrd 文件,您可以在 hobbitserver.cfg 中为 APC UPS 指定一个 NCV 设置,如下所示:

NCV_env="Temperature:GAUGE"

如果您预计会添加或删除值,则最好使用 SPLITNCV 而不是 NCV,同样对于 APC UPS:

SPLITNCV_power="RuntimeRemaining:GAUGE,BatteryCapacity:GAUGE,UPSLoad:GAUGE,Voltageactual:GAUGE,Voltagein:GAUGE,Voltageout:GAUGE,Timeonbattery:GAUGE"

在这两种情况下,将 ,=ncv 设置添加到 hobbitserver.cfg 中的 TEST2RRD 变量中。在 TEST2RRD 变量中只使用 =ncv,不要使用 =splitncv。有关更多信息,请参阅 hobbitd_rrd 文档。

确认数据是否可用于图表

[编辑 | 编辑源代码]

hobbitd_rrd 守护程序只在初始化时读取这些值,因此如果 Xymon 正在运行,您需要终止守护程序或重新启动 Xymon。一旦这两个守护程序中的任何一个开始使用,请等待几分钟以获取新数据,然后检查 rrd 目录中是否有通常的数据文件。

从数据输出图表

[编辑 | 编辑源代码]

如果一个或多个 rrd 文件可用,请将相应的代码添加到 hobbitgraph.cfg 中。然后将 , 设置添加到 hobbitserver.cfg 中的 GRAPHS 变量中。

如果有多个图表,请将 ,:|列 1|列 2 或类似内容添加到 bb-hosts 中每个主机的所有 TRENDS 设置中。请注意,如果这不是“多图表”类型,您在普通列中只会获得一个图表,但在趋势列中可以显示多个图表。

参考资料

[编辑 | 编辑源代码]
华夏公益教科书