跳轉至內容

使用 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: support@onstor.com
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 設定中。請注意,如果這不是“多圖表”型別,您在普通列中只會獲得一個圖表,但在趨勢列中可以顯示多個圖表。

參考資料

[編輯 | 編輯原始碼]
華夏公益教科書