使用 Xymon 進行系統監控/其他文件/HOWTO/Devmon SNMP
此文件不受 Devmon 開發人員支援。它已經過時。它不會由開發人員更新,與 Devmon 附帶的文件不同。 請參考 Devmon 提供的文件。由於人們似乎現在無法閱讀文字檔案,因此以下是 svn 中文件檔案的連結。但是,您在 devmon 中收到的文件可能更適合您執行的版本。 如果您需要透過 SNMP 監控模板壓縮包中或svn 中的可用模板不支援的某些內容,那麼您可能需要考慮建立一個新的模板 如果您建立了一個新的模板,請考慮將其貢獻到模板集合中,以便其他使用者可以從您的工作中受益,就像您從其他貢獻模板的人的工作中受益一樣。 對於任何支援問題(文件錯誤、devmon 中的錯誤、功能請求、貢獻,請參閱支援頁面 另請參閱devmon wiki,其中將新增超出 INSTALLATION/USING/GRAPHING/TEMPLATES 內容的更多文件。您也可以在其中新增/改進文件。 |
本 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 代理的說明。
當然,從 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 訪問 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 目標裝置之間的任何通訊。
在您的 bb-hosts 檔案中新增裝置行。有關您在此處可以新增的選項的更多資訊,請參閱 Devmon 文件。
192.168.100.105 winserver # DEVMON:cid(public)
這是由eschwim(專案管理員)編寫的。Devmon 的工作方式非常簡單。
- 外部程序(很可能是使用--readbbhosts 標記執行的 devmon)會從 Hobbit 或 BigBrother bb-hosts 檔案更新 Devmon 資料庫。
- 在單節點安裝中,Devmon 資料庫儲存在hosts.db 檔案中。
- 在多節點安裝中,它儲存在 MySQL 資料庫中。
- Devmon 讀取其模板。
- 單節點安裝在每次輪詢週期開始時從磁碟讀取模板。
- 多節點版本從資料庫讀取模板,但前提是自上次讀取以來模板已被更新/更改。
- Devmon 對資料庫中的所有裝置執行 SNMP 查詢。SNMP 查詢已最佳化,因此如果在裝置的多個測試中指定了相同的 SNMP OID,則只會查詢一次。
- Devmon 將模板邏輯應用於返回的 SNMP 資料。這包括進行轉換、應用閾值,最後渲染要傳送到顯示伺服器的訊息。
- Devmon 將渲染後的訊息傳送到顯示伺服器。
- Devmon 睡眠剩餘的輪詢週期時間。
- 通常,返回步驟 1。如果外部程序更新 devmon 資料庫的間隔與輪詢間隔不同,Devmon 可能會轉到步驟 2。
現在我們對 Devmon 有了基本的瞭解。我們可以透過 snmp 與目標裝置通訊,我們知道 sysDescr,並且已將裝置輸入到 bb-hosts 檔案中。由於裝置(Windows 2000 伺服器)不是提供的模板之一,因此下一步是使用現有的模板作為指南來建立一個新模板。
- 在 templates 目錄中,為新裝置建立一個新目錄。
- 將另一個裝置目錄中的 specs 檔案複製到此處作為指南。
- 編輯 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 個檔案被使用,唯一必需的檔案是oids、message、thresholds。其他檔案很有用,您最終可能會使用它們,但我們的目標只是開始。
- 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)”)。
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 裝置的系統描述。
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$
- 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]#
[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
- 檢查是否已安裝 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 只能使用兩個資料集,它們必須分別命名為 ds0 和 ds1。
請注意,如果您添加了一個包含多行的表格,則應將 --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 設定中。請注意,如果這不是“多圖表”型別,您在普通列中只會獲得一個圖表,但在趨勢列中可以顯示多個圖表。