http://www.oidview.com/mibs/0/IF-MIB.html
count32
ifInOctets 1.3.6.1.2.1.2.2.1.10
ifOutOctets 1.3.6.1.2.1.2.2.1.16
count64
ifHCOutOctets 1.3.6.1.2.1.31.1.1.1.10
ifHCInOctets 1.3.6.1.2.1.31.1.1.1.6
2018年9月22日 星期六
2017年6月22日 星期四
使用 netdata 監控 SNMP 設備試作
使用 netdata 監控 SNMP 設備試作
在 netdata 試裝 ( http://xrcd2.blogspot.tw/2017/06/netdata_21.html ) 後
,接著試透過 netdata 來做一般的 snmp monitor ,
其實大多數的網管軟體都提供這樣的基本功能,但以 netdata 來說,
還是需要一些 snmp 的基礎觀念.故整理一下之前所寫的一些基礎,
供需求的人參考之.
SNMP 基礎
(1) http://xrcd2.blogspot.tw/2012/10/snmp-oids-zabbix.html
[ 利用SNMP OIDs 加入 Zabbix 監控 ]
(2) http://xrcd2.blogspot.tw/2012/10/snmp-oid.html
[ 再論 SNMP OIDs ]
(3) http://xrcd2.blogspot.tw/2016/11/snmp-oids.html
[ 三論 SNMP OIDs ]
(4) http://xrcd2.blogspot.tw/2017/04/snmp-oids.html
[ 四論 SNMP OIDs ]
其它補充
(2) http://xrcd2.blogspot.tw/2012/11/cisco-router-interface-reliability.html
[ Cisco Router Interface Reliability Status Monitor ( DIY cacti template ) ]
本文開始
參考設定
https://github.com/firehol/netdata/blob/master/conf.d/node.d/snmp.conf.md
SNMP Data Collector
example:
{
"enable_autodetect": false,
"update_every": 5,
"max_request_size": 100,
"servers": [
{
"hostname": "10.11.12.8",
"community": "public",
"update_every": 10,
"max_request_size": 50,
"options": { "timeout": 10000 },
"charts": {
"snmp_switch.bandwidth_port1": {
"title": "Switch Bandwidth for port 1",
"units": "kilobits/s",
"type": "area",
"priority": 1,
"family": "ports",
"dimensions": {
"in": {
"oid": "1.3.6.1.2.1.2.2.1.10.1",
"algorithm": "incremental",
"multiplier": 8,
"divisor": 1024,
"offset": 0
},
"out": {
"oid": "1.3.6.1.2.1.2.2.1.16.1",
"algorithm": "incremental",
"multiplier": -8,
"divisor": 1024,
"offset": 0
}
}
},
"snmp_switch.bandwidth_port2": {
"title": "Switch Bandwidth for port 2",
"units": "kilobits/s",
"type": "area",
"priority": 1,
"family": "ports",
"dimensions": {
"in": {
"oid": "1.3.6.1.2.1.2.2.1.10.2",
"algorithm": "incremental",
"multiplier": 8,
"divisor": 1024,
"offset": 0
},
"out": {
"oid": "1.3.6.1.2.1.2.2.1.16.2",
"algorithm": "incremental",
"multiplier": -8,
"divisor": 1024,
"offset": 0
}
}
}
}
}
]
}
依據上述的範例,得知 netdata snmp data collector 的方式為 OIDs ,
以 Interface Traffic 來說,可以用 1.3.6.1.2.1.2.2.1.10.ifName ( Inbound )
用 1.3.6.1.2.1.2.2.1.10.ifName (Outgoing )取得流量使用資訊.
這時可以使用 snmpwalk + snmpget 來確定如何設定正確的 snmp.conf
以 Cisco 2960S Switch 為例
[root@centos73 ~]# snmpwalk -Os -c cisco -v 2c 192.168.111.198 system | more
sysDescr.0 = STRING: Cisco IOS Software, C2960S Software (C2960S-UNIVERSALK9-M),
Version 15.2(1)E, RELEASE SOFTWARE (fc3)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2013 by Cisco Systems, Inc.
Compiled Tue 27-Aug-13 11:59 by prod_rel_team
sysObjectID.0 = OID: enterprises.9.1.1208
sysUpTimeInstance = Timeticks: (758822632) 87 days, 19:50:26.32
sysContact.0 = STRING:
sysName.0 = STRING: Switch
sysLocation.0 = STRING:
sysServices.0 = INTEGER: 6
sysORLastChange.0 = Timeticks: (0) 0:00:00.00
sysORID.1 = OID: enterprises.9.7.129
sysORID.2 = OID: enterprises.9.7.115
.....
.....
.....
.....
[root@centos73 ~]# snmpwalk -Os -c cisco -v 2c 192.168.111.198 1.3.6.1.2.1.31.1.1.1.1
ifName.1 = STRING: Vl1
ifName.5137 = STRING: StackPort1
ifName.10101 = STRING: Gi1/0/1
ifName.10102 = STRING: Gi1/0/2
ifName.10103 = STRING: Gi1/0/3
ifName.10104 = STRING: Gi1/0/4
ifName.10105 = STRING: Gi1/0/5
ifName.10106 = STRING: Gi1/0/6
ifName.10107 = STRING: Gi1/0/7
ifName.10108 = STRING: Gi1/0/8
ifName.10109 = STRING: Gi1/0/9
ifName.10110 = STRING: Gi1/0/10
ifName.10111 = STRING: Gi1/0/11
ifName.10112 = STRING: Gi1/0/12
ifName.10113 = STRING: Gi1/0/13
ifName.10114 = STRING: Gi1/0/14
ifName.10115 = STRING: Gi1/0/15
ifName.10116 = STRING: Gi1/0/16
ifName.10117 = STRING: Gi1/0/17
ifName.10118 = STRING: Gi1/0/18
ifName.10119 = STRING: Gi1/0/19
ifName.10120 = STRING: Gi1/0/20
ifName.10121 = STRING: Gi1/0/21
ifName.10122 = STRING: Gi1/0/22
ifName.10123 = STRING: Gi1/0/23
ifName.10124 = STRING: Gi1/0/24
ifName.10125 = STRING: Gi1/0/25
ifName.10126 = STRING: Gi1/0/26
ifName.10127 = STRING: Gi1/0/27
ifName.10128 = STRING: Gi1/0/28
ifName.10129 = STRING: Gi1/0/29
ifName.10130 = STRING: Gi1/0/30
ifName.10131 = STRING: Gi1/0/31
ifName.10132 = STRING: Gi1/0/32
ifName.10133 = STRING: Gi1/0/33
ifName.10134 = STRING: Gi1/0/34
ifName.10135 = STRING: Gi1/0/35
ifName.10136 = STRING: Gi1/0/36
ifName.10137 = STRING: Gi1/0/37
ifName.10138 = STRING: Gi1/0/38
ifName.10139 = STRING: Gi1/0/39
ifName.10140 = STRING: Gi1/0/40
ifName.10141 = STRING: Gi1/0/41
ifName.10142 = STRING: Gi1/0/42
ifName.10143 = STRING: Gi1/0/43
ifName.10144 = STRING: Gi1/0/44
ifName.10145 = STRING: Gi1/0/45
ifName.10146 = STRING: Gi1/0/46
ifName.10147 = STRING: Gi1/0/47
ifName.10148 = STRING: Gi1/0/48
ifName.10149 = STRING: Gi1/0/49
ifName.10150 = STRING: Gi1/0/50
ifName.10151 = STRING: Gi1/0/51
ifName.10152 = STRING: Gi1/0/52
ifName.12001 = STRING: Nu0
ifName.12002 = STRING: Fa0
[root@centos73 ~]#
取得該 Switch Port Gi1/0/11 的流量資訊 (ifName.10111 = STRING: Gi1/0/11)
In
[root@centos73 ~]# snmpget -v2c -c cisco 192.168.111.198 1.3.6.1.2.1.2.2.1.10.10111
IF-MIB::ifInOctets.10111 = Counter32: 2637654576
Out
[root@centos73 ~]# snmpget -v2c -c cisco 192.168.111.198 1.3.6.1.2.1.2.2.1.16.10111
IF-MIB::ifOutOctets.10111 = Counter32: 1963738193
[root@centos73 ~]#
=================
[root@centos73 node.d]# pwd
/etc/netdata/node.d
抄改上面的 example:
[root@centos73 node.d]# vi snmp.conf [圖一]
{
"enable_autodetect": false,
"update_every": 5,
"max_request_size": 100,
"servers": [
{
"hostname": "192.168.111.198",
"community": "cisco",
"update_every": 10,
"max_request_size": 50,
"options": { "timeout": 10000 , "version": 1 },
"charts": {
"snmp_switch.bandwidth_port1": {
"title": "Switch Bandwidth for port 1",
"units": "kilobits/s",
"type": "area",
"priority": 1,
"family": "ports",
"dimensions": {
"in": {
"oid": "1.3.6.1.2.1.2.2.1.10.10101",
"algorithm": "incremental",
"multiplier": 8,
"divisor": 1024,
"offset": 0
},
"out": {
"oid": "1.3.6.1.2.1.2.2.1.16.10101",
"algorithm": "incremental",
"multiplier": -8,
"divisor": 1024,
"offset": 0
}
}
},
"snmp_switch.bandwidth_port11": {
"title": "Switch Bandwidth for port 11",
"units": "kilobits/s",
"type": "area",
"priority": 1,
"family": "ports",
"dimensions": {
"in": {
"oid": "1.3.6.1.2.1.2.2.1.10.10111",
"algorithm": "incremental",
"multiplier": 8,
"divisor": 1024,
"offset": 0
},
"out": {
"oid": "1.3.6.1.2.1.2.2.1.16.10111",
"algorithm": "incremental",
"multiplier": -8,
"divisor": 1024,
"offset": 0
}
}
}
}
}
]
}
========
修改自另一個範例 multiply_range
[root@centos73 node.d]# cat snmp.conf [圖二]
{
"enable_autodetect": false,
"update_every": 60,
"servers": [
{
"hostname": "192.168.111.198",
"community": "cisco",
"update_every": 60,
"options": { "timeout": 20000, "version": 1 },
"charts": {
"snmp_switch.bandwidth_port": {
"title": "Switch Bandwidth for port ",
"units": "kilobits/s",
"type": "area",
"priority": 1,
"family": "ports",
"multiply_range": [ 10101, 10152 ],
"dimensions": {
"in": {
"oid": "1.3.6.1.2.1.2.2.1.10.",
"algorithm": "incremental",
"multiplier": 8,
"divisor": 1024,
"offset": 0
},
"out": {
"oid": "1.3.6.1.2.1.2.2.1.16.",
"algorithm": "incremental",
"multiplier": -8,
"divisor": 1024,
"offset": 0
}
}
}
}
}
]
}
===================
驗證 snmp plugin
( 可參考 https://github.com/firehol/netdata/blob/master/conf.d/node.d/snmp.conf.md
[ Testing the configuration ] 這一段的方式 )
[root@centos73 node.d]# /usr/libexec/netdata/plugins.d/node.d.plugin 1 snmp
/usr/libexec/netdata/plugins.d/node.d.plugin: line 2: exec: ERROR node.js IS NOT AVAILABLE IN THIS SYSTEM: not found
出現上述這訊息即為,未安裝 nodejs 套件
解法
#yum install epel-release
#yum install nodejs
驗證 nodejs
[root@centos73 node.d]# node --version
v6.10.3
裝好後再測試一次
[root@centos73 node.d]# /usr/libexec/netdata/plugins.d/node.d.plugin 1 snmp
2017-06-22 11:07:00: node.d.plugin: ERROR: snmp: 192.168.111.198: Received error = TypeError: snmp.varbindError is not a function
at Object.responseCb (/usr/libexec/netdata/node.d/snmp.node.js:267:89)
at Object.feedCb (/usr/libexec/netdata/node.d/node_modules/net-snmp.js:646:8)
at Object.Session.onSimpleGetResponse [as onResponse] (/usr/libexec/netdata/node.d/node_modules/net-snmp.js:960:7)
at Session.onMsg (/usr/libexec/netdata/node.d/node_modules/net-snmp.js:929:9)
at emitTwo (events.js:106:13)
at Socket.emit (events.js:191:7)
at UDP.onMessage (dgram.js:549:8) varbinds = undefined
DISABLE
出現上述訊息則為 snmp.conf 設定錯誤,請利用 snmpwalk + snmpget 來確認 snmp 相關資訊的配置.
過關無誤則會出現以下資訊
[root@centos73 node.d]# /usr/libexec/netdata/plugins.d/node.d.plugin 1 snmp
CHART "snmp_switch.bandwidth_port1" "snmp_switch.bandwidth_port1" "Switch Bandwidth for port 1" "kilobits/s" "ports" "" "area" 50001 10
DIMENSION "in" "in" "incremental" 8 1024
DIMENSION "out" "out" "incremental" -8 1024
BEGIN snmp_switch.bandwidth_port1
SET in = 1167620306
SET out = 220094275
END
CHART "snmp_switch.bandwidth_port11" "snmp_switch.bandwidth_port11" "Switch Bandwidth for port 11" "kilobits/s" "ports" "" "area" 50001 10
DIMENSION "in" "in" "incremental" 8 1024
DIMENSION "out" "out" "incremental" -8 1024
BEGIN snmp_switch.bandwidth_port11
SET in = 2509704807
SET out = 1913107763
END
BEGIN snmp_switch.bandwidth_port1 3548000
SET in = 1167620306
SET out = 220107600
END
BEGIN snmp_switch.bandwidth_port11 3548000
SET in = 2509816273
SET out = 1913162904
END
BEGIN snmp_switch.bandwidth_port1 10040000
SET in = 1167620306
SET out = 220133355
END
BEGIN snmp_switch.bandwidth_port11 10040000
SET in = 2510106481
SET out = 1913238854
END
.....
新增圖示可參考如下 URL
https://github.com/firehol/netdata/wiki/Add-more-charts-to-netdata#network
Add more charts to netdata
configuring plugins
Most plugins come with auto-detection, configured to work out-of-the-box on popular
operating systems with the default settings.
However, there are cases that auto-detection fails. Usually the reason is that the
applications to be monitored do not allow netdata to connect. In most of the cases,
allowing the user netdata from localhost to connect and collect metrics, will
automatically enable data collection for the application in question
(it will require a netdata restart).
You can verify netdata plugins are able to collect metrics, following this procedure:
# become user netdata
sudo su -s /bin/bash netdata
# execute the plugin in debug mode, for a specific module.
# example for the python plugin, mysql module:
/usr/libexec/netdata/plugins.d/python.d.plugin 1 debug mysql
其它參考資訊
General Info node.d
https://github.com/firehol/netdata/wiki/General-Info---node.d
Demo
2 interface [圖一]
All Interface [圖二]
2017年4月20日 星期四
四論 SNMP OIDs
基礎入門
(1)利用SNMP OIDs 加入 Zabbix 監控
http://xrcd2.blogspot.tw/2012/10/snmp-oids-zabbix.html
(2)再論 SNMP OIDs
http://xrcd2.blogspot.tw/2012/10/snmp-oid.html
(3)三論 SNMP OIDs
http://xrcd2.blogspot.tw/2016/11/snmp-oids.html
(4)四論 SNMP OIDs
本文開始
縁起於 http://www.netadmin.com.tw/article_content.aspx?sn=1702080002
網管人-技術專欄
2017/2/15
透過SNMP Query Index協助管理 資源流量圖表自動產出
Cacti監控報表圖多不愁 批次抓取設備資料繪製
丁光立
因為想多學一點 Cacti 的技巧,所以參考了上述文章,一些觀念,寫成這個小筆記供需要
的人參考,但本文會著重於 Linux (CentOS) 的 snmp 實用指令簡介及運用與
snmp.conf 的撰寫參考等等.建議在閱讀本文之前,可看參考上述基本門,強化
snmp 基本觀念.
(1) linux ( CentOS ) snmpd.conf
詳細設定可參考
http://net-snmp.sourceforge.net/docs/man/snmpd.conf.html
為方便使用可參考如下設定,請抄改成個人的使用環境配置.
[root@bbb /]# cat /etc/snmp/snmpd.conf
rocommunity public
#這一行是宣告 MIB 檔的目錄.
#MIBDIRS /usr/share/snmp/mibs:/usr/share/snmp/private-mibs
#這一行是宣告載入所有的 MIB 檔
#MIBS all
#宣告使用 CHECK-R77-MIB及CISCO-QOS-PIB-MIB
mibs +CHECK-R77-MIB:CISCO-QOS-PIB-MIB
#宣告使用 CISCO-MEMORY-POOL-MIB
mibs +CISCO-MEMORY-POOL-MIB
#另一種宣告方式
mibfile /usr/share/snmp/mibs/CHECK-R77-MIB.txt
#其它資訊
sysLocation vlab
sysContact wwww.vlab.com.tw
sysName Cacti
# 其它參考資訊如下 URL
# http://www.net-snmp.org/FAQ.html#How_do_I_add_a_MIB_
# 系統預設的 mibs 的目錄為 /usr/share/snmp/mibs 可將自行下載的 mib 檔放置於此目錄內.
測試一下 本機 liunx 的系統資訊
[root@bbb /]# snmpwalk -v2c -c public localhost system
SNMPv2-MIB::sysDescr.0 = STRING: Linux www.vlab.com.tw 2.6.32-642.11.1.el6.x86_64 #1 SMP Fri Nov 18 19:25:05 UTC 2016 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (11265) 0:01:52.65
SNMPv2-MIB::sysContact.0 = STRING: wwww.vlab.com.tw
SNMPv2-MIB::sysName.0 = STRING: Cacti
SNMPv2-MIB::sysLocation.0 = STRING: vlab
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.2 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (3) 0:00:00.03
[root@bbb /]#
===================================================
Cisco 設備啟用 snmp 服務
Router#sh run
.....
.....
!
!
snmp-server community public RO
!
!
....
.....
Router#sh ver
Cisco IOS XE Software, Version 03.10.02.S - Extended Support Release
Cisco IOS Software, CSR1000V Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 15.3(3)S2, RELEASE SOFTWARE (fc3)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2014 by Cisco Systems, Inc.
Compiled Fri 31-Jan-14 20:10 by mcpre
.....
Router#show memory
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 7F4216AD6010 2232382384 195274364 2037108020 2036934440 1332474908
lsmpi_io 7F41C34CE1A8 6295128 6294304 824 824 412
=================================================
測試一下 Cisco 設備的系統資訊
[root@bbb /]# snmpwalk -v2c -c public 192.168.111.158 system
SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, CSR1000V Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 15.3(3)S2, RELEASE SOFTWARE (fc3)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2014 by Cisco Systems, Inc.
Compiled Fri 31-Jan-14 20:10 by mcpre
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.1.1537
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (10206994) 1 day, 4:21:09.94
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: Router
SNMPv2-MIB::sysLocation.0 = STRING:
SNMPv2-MIB::sysServices.0 = INTEGER: 78
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
(2)使用 export MIBS , 以 CISCO-MEMORY-POOL-MIB 為例
[root@bbb /]# MIBS=+CISCO-MEMORY-POOL-MIB
[root@bbb /]# export MIBS
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 .1.3.6.1.4.1.9.9.48
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.1 = STRING: Processor
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.14 = STRING: lsmpi_io
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.1 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.14 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.1 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.14 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.1 = Gauge32: 195206240 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.14 = Gauge32: 6294296 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.1 = Gauge32: 2037176144 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.14 = Gauge32: 832 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.1 = Gauge32: 1332474908 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.14 = Gauge32: 412 bytes
(3) 未使用 CISCO-MEMORY-POOL-MIB
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 .1.3.6.1.4.1.9.9.48
SNMPv2-SMI::enterprises.9.9.48.1.1.1.2.1 = STRING: "Processor"
SNMPv2-SMI::enterprises.9.9.48.1.1.1.2.14 = STRING: "lsmpi_io"
SNMPv2-SMI::enterprises.9.9.48.1.1.1.3.1 = INTEGER: 0
SNMPv2-SMI::enterprises.9.9.48.1.1.1.3.14 = INTEGER: 0
SNMPv2-SMI::enterprises.9.9.48.1.1.1.4.1 = INTEGER: 1
SNMPv2-SMI::enterprises.9.9.48.1.1.1.4.14 = INTEGER: 1
SNMPv2-SMI::enterprises.9.9.48.1.1.1.5.1 = Gauge32: 195206240
SNMPv2-SMI::enterprises.9.9.48.1.1.1.5.14 = Gauge32: 6294296
SNMPv2-SMI::enterprises.9.9.48.1.1.1.6.1 = Gauge32: 2037176144
SNMPv2-SMI::enterprises.9.9.48.1.1.1.6.14 = Gauge32: 832
SNMPv2-SMI::enterprises.9.9.48.1.1.1.7.1 = Gauge32: 1332474908
SNMPv2-SMI::enterprises.9.9.48.1.1.1.7.14 = Gauge32: 412
一般而言,有導入使用 MIB 檔會比較方便閱讀與理解.
(4)透過 load mib 參數
[root@bbb/]# snmpwalk -c public -v2c 192.168.111.158 CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolMIB
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.1 = STRING: Processor
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.14 = STRING: lsmpi_io
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.1 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.14 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.1 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.14 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.1 = Gauge32: 195216024 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.14 = Gauge32: 6294296 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.1 = Gauge32: 2037166360 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.14 = Gauge32: 832 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.1 = Gauge32: 1332474908 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.14 = Gauge32: 412 bytes
或
[root@bbb /]# snmpwalk -c public -v2c -m CISCO-MEMORY-POOL-MIB 192.168.111.158 .1.3.6.1.4.1.9.9.48
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.1 = STRING: Processor
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.14 = STRING: lsmpi_io
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.1 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.14 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.1 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.14 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.1 = Gauge32: 195216016 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.14 = Gauge32: 6294296 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.1 = Gauge32: 2037166368 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.14 = Gauge32: 832 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.1 = Gauge32: 1332474908 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.14 = Gauge32: 412 bytes
(5) OIDs 表示法
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 .iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoMemoryPoolMIB
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.1 = STRING: Processor
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.14 = STRING: lsmpi_io
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.1 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.14 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.1 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.14 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.1 = Gauge32: 195210248 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.14 = Gauge32: 6294296 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.1 = Gauge32: 2037172136 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.14 = Gauge32: 832 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.1 = Gauge32: 1332474908 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.14 = Gauge32: 412 bytes
[root@bbb /]#
如未載入 CISCO-MEMORY-POOL-MIB
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 .iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoMemoryPoolMIB
No log handling enabled - turning on stderr logging
.iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoMemoryPoolMIB: Unknown Object Identifier (Sub-id not found: enterprises -> cisco)
[root@bbb /]#
改用數字
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 .1.3.6.1.4.1.9.9.48
SNMPv2-SMI::enterprises.9.9.48.1.1.1.2.1 = STRING: "Processor"
SNMPv2-SMI::enterprises.9.9.48.1.1.1.2.14 = STRING: "lsmpi_io "
SNMPv2-SMI::enterprises.9.9.48.1.1.1.3.1 = INTEGER: 0
SNMPv2-SMI::enterprises.9.9.48.1.1.1.3.14 = INTEGER: 0
SNMPv2-SMI::enterprises.9.9.48.1.1.1.4.1 = INTEGER: 1
SNMPv2-SMI::enterprises.9.9.48.1.1.1.4.14 = INTEGER: 1
SNMPv2-SMI::enterprises.9.9.48.1.1.1.5.1 = Gauge32: 195210248
SNMPv2-SMI::enterprises.9.9.48.1.1.1.5.14 = Gauge32: 6294296
SNMPv2-SMI::enterprises.9.9.48.1.1.1.6.1 = Gauge32: 2037172136
SNMPv2-SMI::enterprises.9.9.48.1.1.1.6.14 = Gauge32: 832
SNMPv2-SMI::enterprises.9.9.48.1.1.1.7.1 = Gauge32: 1332474908
SNMPv2-SMI::enterprises.9.9.48.1.1.1.7.14 = Gauge32: 412
[root@bbb snmp]#
(6) snmptranslate
可參考 http://net-snmp.sourceforge.net/tutorial/tutorial-5/commands/mib-options.html
[root@bbb /]# snmptranslate 1.3.6.1.4.1.9.9.48
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolMIB
[root@bbb /]#
未載入 CISCO-MEMORY-POOL-MIB
[root@bbb /]# snmptranslate 1.3.6.1.4.1.9.9.48
SNMPv2-SMI::enterprises.9.9.48
[root@bbb /]# snmptranslate -IR -On ciscoMemoryPoolMIB
Unknown object identifier: ciscoMemoryPoolMIB
[root@bbb /]#
指定載入 CISCO-MEMORY-POOL-MIB
[root@bbb /]# snmptranslate -m CISCO-MEMORY-POOL-MIB -IR -Onf ciscoMemoryPoolMIB
.iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoMemoryPoolMIB
或預設載入 CISCO-MEMORY-POOL-MIB
[root@bbb /]# snmptranslate -IR -On ciscoMemoryPoolMIB
.1.3.6.1.4.1.9.9.48
[root@bbb /]# snmptranslate .1.3.6.1.4.1.9.9.48
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolMIB
[root@bbb /]#
OIDs 的二種表示法
[root@bbb /]# snmptranslate -IR -Onf ciscoMemoryPoolMIB
.iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoMemoryPoolMIB
[root@bbb /]# snmptranslate -IR -On ciscoMemoryPoolMIB
.1.3.6.1.4.1.9.9.48
[root@bbb /]#
(7)SNMP OIDs Tree [ CISCO-MEMORY-POOL-MIB ]
[root@bbb /]# snmptranslate -Tp -m CISCO-MEMORY-POOL-MIB
+--iso(1)
|
+--org(3)
|
+--dod(6)
|
+--internet(1)
|
+--directory(1)
|
+--mgmt(2)
| |
| +--mib-2(1)
| |
| +--transmission(10)
|
+--experimental(3)
|
+--private(4)
| |
| +--enterprises(1)
| |
| +--cisco(9)
| +--ciscoProducts(1)
| +--local(2)
| +--temporary(3)
| +--pakmon(4)
| +--workgroup(5)
| +--otherEnterprises(6)
| | +--ciscoSB(1)
| | +--ciscoSMB(2)
| |
| +--ciscoAgentCapability(7)
| +--ciscoConfig(8)
| +--ciscoMgmt(9)
| | +--ciscoMemoryPoolMIB(48)
| | |
| | +--ciscoMemoryPoolObjects(1)
| | | |
| | | +--ciscoMemoryPoolTable(1)
| | | | |
| | | | +--ciscoMemoryPoolEntry(1)
| | | | | Index: ciscoMemoryPoolType
| | | | |
| | | | +-- ---- Integer32 ciscoMemoryPoolType(1)
| | | | | Textual Convention: CiscoMemoryPoolTypes
| | | | | Range: 1..65535
| | | | +-- -R-- String ciscoMemoryPoolName(2)
| | | | | Textual Convention: DisplayString
| | | | | Size: 0..255
| | | | +-- -R-- Integer32 ciscoMemoryPoolAlternate(3)
| | | | | Range: 0..65535
| | | | +-- -R-- EnumVal ciscoMemoryPoolValid(4)
| | | | | Textual Convention: TruthValue
| | | | | Values: true(1), false(2)
| | | | +-- -R-- Gauge ciscoMemoryPoolUsed(5)
| | | | +-- -R-- Gauge ciscoMemoryPoolFree(6)
| | | | +-- -R-- Gauge ciscoMemoryPoolLargestFree(7)
| | | |
| | | +--ciscoMemoryPoolUtilizationTable(2)
| | | |
| | | +--ciscoMemoryPoolUtilizationEntry(1)
| | | |
| | | +-- -R-- INTEGER ciscoMemoryPoolUtilization1Min(1)
| | | | Textual Convention: Percent
| | | | Range: 0..100
| | | +-- -R-- INTEGER ciscoMemoryPoolUtilization5Min(2)
| | | | Textual Convention: Percent
| | | | Range: 0..100
| | | +-- -R-- INTEGER ciscoMemoryPoolUtilization10Min(3)
| | | Textual Convention: Percent
| | | Range: 0..100
| | |
| | +--ciscoMemoryPoolNotifications(2)
| | |
| | +--ciscoMemoryPoolConformance(3)
| | |
| | +--ciscoMemoryPoolCompliances(1)
| | | |
| | | +--ciscoMemoryPoolCompliance(1)
| | | +--ciscoMemoryPoolComplianceRev1(2)
| | |
| | +--ciscoMemoryPoolGroups(2)
| | |
| | +--ciscoMemoryPoolGroup(1)
| | +--ciscoMemoryPoolUtilizationGroup(2)
| |
| +--ciscoExperiment(10)
| +--ciscoAdmin(11)
| | +--ciscoProxy(1)
| | | |
| | | +--ciscoPartyProxy(1)
| | | |
| | | +--ciscoContextProxy(2)
| | |
| | +--ciscoRptrGroupObjectID(2)
| | | +--ciscoUnknownRptrGroup(1)
| | | +--cisco2505RptrGroup(2)
| | | +--cisco2507RptrGroup(3)
| | | +--cisco2516RptrGroup(4)
| | | +--ciscoWsx5020RptrGroup(5)
| | |
| | +--ciscoChipSets(3)
| | +--ciscoChipSetSaint1(1)
| | +--ciscoChipSetSaint2(2)
| | +--ciscoChipSetSaint3(3)
| | +--ciscoChipSetSaint4(4)
.............................
.............................
(8) 實戰透過 snmpwalk 取得 ciscoMemoryPool 資訊
可參考http://www.oidview.com/mibs/9/CISCO-MEMORY-POOL-MIB.html
以 Processor Memory Pool 及 lsmpi_io Memory Pool 為例
[root@bbb /]# snmptranslate -IR -Onf ciscoMemoryPoolName
.iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoMemoryPoolMIB.ciscoMemoryPoolObjects.ciscoMemoryPoolTable.ciscoMemoryPoolEntry.ciscoMemoryPoolName
或
[root@bbb /]# snmptranslate -m CISCO-MEMORY-POOL-MIB -IR -Onf ciscoMemoryPoolName
.iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoMemoryPoolMIB.ciscoMemoryPoolObjects.ciscoMemoryPoolTable.ciscoMemoryPoolEntry.ciscoMemoryPoolName
[root@bbb /]# snmptranslate -m CISCO-MEMORY-POOL-MIB -IR -On ciscoMemoryPoolName
.1.3.6.1.4.1.9.9.48.1.1.1.2
[root@bbb /]#
或
[root@bbb ~]# snmpwalk -c public -v2c 192.168.111.158 1.3.6.1.4.1.9.9.48
SNMPv2-SMI::enterprises.9.9.48.1.1.1.2.1 = STRING: "Processor"
SNMPv2-SMI::enterprises.9.9.48.1.1.1.2.14 = STRING: "lsmpi_io"
SNMPv2-SMI::enterprises.9.9.48.1.1.1.3.1 = INTEGER: 0
SNMPv2-SMI::enterprises.9.9.48.1.1.1.3.14 = INTEGER: 0
SNMPv2-SMI::enterprises.9.9.48.1.1.1.4.1 = INTEGER: 1
SNMPv2-SMI::enterprises.9.9.48.1.1.1.4.14 = INTEGER: 1
SNMPv2-SMI::enterprises.9.9.48.1.1.1.5.1 = Gauge32: 195206240
SNMPv2-SMI::enterprises.9.9.48.1.1.1.5.14 = Gauge32: 6294296
SNMPv2-SMI::enterprises.9.9.48.1.1.1.6.1 = Gauge32: 2037176144
SNMPv2-SMI::enterprises.9.9.48.1.1.1.6.14 = Gauge32: 832
SNMPv2-SMI::enterprises.9.9.48.1.1.1.7.1 = Gauge32: 1332474908
SNMPv2-SMI::enterprises.9.9.48.1.1.1.7.14 = Gauge32: 412
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 .1.3.6.1.4.1.9.9.48
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.1 = STRING: Processor
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.14 = STRING: lsmpi_io
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.1 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.14 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.1 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.14 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.1 = Gauge32: 195210248 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.14 = Gauge32: 6294296 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.1 = Gauge32: 2037172136 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.14 = Gauge32: 832 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.1 = Gauge32: 1332474908 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.14 = Gauge32: 412 bytes
[root@bbb /]#
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 1.3.6.1.4.1.9.9.48.1.1.1.2
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.1 = STRING: Processor
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.14 = STRING: lsmpi_io
Processor MemoryPool
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 1.3.6.1.4.1.9.9.48.1.1.1.5.1
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.1 = Gauge32: 195206240 bytes
[root@bbb log]#
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 1.3.6.1.4.1.9.9.48.1.1.1.6.1
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.1 = Gauge32: 2037176144 bytes
lsmpi_io MemoryPool
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 1.3.6.1.4.1.9.9.48.1.1.1.5.14
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.14 = Gauge32: 6294296 bytes
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 1.3.6.1.4.1.9.9.48.1.1.1.6.14
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.14 = Gauge32: 832 bytes
對照 Cicso 設備下指令顯示的資訊,看到的資訊應該跟 snmpget 到的資訊差不多才是
Router#show memory
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 7F4216AD6010 2232382384 195274364 2037108020 2036934440 1332474908
lsmpi_io 7F41C34CE1A8 6295128 6294304 824 824 412
....
....
---End
Cacti Demo
加碼 Demo
FortiGate SNMP OIDs
fgSysDiskUsage 1.3.6.1.4.1.12356.101.4.1.6
fgSysDiskCapacity 1.3.6.1.4.1.12356.101.4.1.7
FortiGate CLI
FortiGateCMD#dia sys logdisk usage
http://www.oidview.com/mibs/12356/FORTINET-FORTIGATE-MIB.html
[root@bbb mibs]# snmptranslate -m FORTINET-FORTIGATE-MIB -IR -Onf fgSysDiskUsage
.iso.org.dod.internet.private.enterprises.fortinet.fnFortiGateMib.fgSystem.fgSystemInfo.fgSysDiskUsage
[root@bbb mibs]# snmptranslate -m FORTINET-FORTIGATE-MIB -IR -On fgSysDiskUsage
.1.3.6.1.4.1.12356.101.4.1.6
[root@bbb mibs]#
[root@bbb mibs]# snmptranslate -m FORTINET-FORTIGATE-MIB -IR -Onf fgSysDiskCapacity
.iso.org.dod.internet.private.enterprises.fortinet.fnFortiGateMib.fgSystem.fgSystemInfo.fgSysDiskCapacity
[root@bbb mibs]# snmptranslate -m FORTINET-FORTIGATE-MIB -IR -On fgSysDiskCapacity
.1.3.6.1.4.1.12356.101.4.1.7
[root@bbb mibs]#
FortiGate
FortiGate
Cacti
(1)利用SNMP OIDs 加入 Zabbix 監控
http://xrcd2.blogspot.tw/2012/10/snmp-oids-zabbix.html
(2)再論 SNMP OIDs
http://xrcd2.blogspot.tw/2012/10/snmp-oid.html
(3)三論 SNMP OIDs
http://xrcd2.blogspot.tw/2016/11/snmp-oids.html
(4)四論 SNMP OIDs
本文開始
縁起於 http://www.netadmin.com.tw/article_content.aspx?sn=1702080002
網管人-技術專欄
2017/2/15
透過SNMP Query Index協助管理 資源流量圖表自動產出
Cacti監控報表圖多不愁 批次抓取設備資料繪製
丁光立
因為想多學一點 Cacti 的技巧,所以參考了上述文章,一些觀念,寫成這個小筆記供需要
的人參考,但本文會著重於 Linux (CentOS) 的 snmp 實用指令簡介及運用與
snmp.conf 的撰寫參考等等.建議在閱讀本文之前,可看參考上述基本門,強化
snmp 基本觀念.
(1) linux ( CentOS ) snmpd.conf
詳細設定可參考
http://net-snmp.sourceforge.net/docs/man/snmpd.conf.html
為方便使用可參考如下設定,請抄改成個人的使用環境配置.
[root@bbb /]# cat /etc/snmp/snmpd.conf
rocommunity public
#這一行是宣告 MIB 檔的目錄.
#MIBDIRS /usr/share/snmp/mibs:/usr/share/snmp/private-mibs
#這一行是宣告載入所有的 MIB 檔
#MIBS all
#宣告使用 CHECK-R77-MIB及CISCO-QOS-PIB-MIB
mibs +CHECK-R77-MIB:CISCO-QOS-PIB-MIB
#宣告使用 CISCO-MEMORY-POOL-MIB
mibs +CISCO-MEMORY-POOL-MIB
#另一種宣告方式
mibfile /usr/share/snmp/mibs/CHECK-R77-MIB.txt
#其它資訊
sysLocation vlab
sysContact wwww.vlab.com.tw
sysName Cacti
# 其它參考資訊如下 URL
# http://www.net-snmp.org/FAQ.html#How_do_I_add_a_MIB_
# 系統預設的 mibs 的目錄為 /usr/share/snmp/mibs 可將自行下載的 mib 檔放置於此目錄內.
測試一下 本機 liunx 的系統資訊
[root@bbb /]# snmpwalk -v2c -c public localhost system
SNMPv2-MIB::sysDescr.0 = STRING: Linux www.vlab.com.tw 2.6.32-642.11.1.el6.x86_64 #1 SMP Fri Nov 18 19:25:05 UTC 2016 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (11265) 0:01:52.65
SNMPv2-MIB::sysContact.0 = STRING: wwww.vlab.com.tw
SNMPv2-MIB::sysName.0 = STRING: Cacti
SNMPv2-MIB::sysLocation.0 = STRING: vlab
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.2 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (3) 0:00:00.03
[root@bbb /]#
===================================================
Cisco 設備啟用 snmp 服務
Router#sh run
.....
.....
!
!
snmp-server community public RO
!
!
....
.....
Router#sh ver
Cisco IOS XE Software, Version 03.10.02.S - Extended Support Release
Cisco IOS Software, CSR1000V Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 15.3(3)S2, RELEASE SOFTWARE (fc3)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2014 by Cisco Systems, Inc.
Compiled Fri 31-Jan-14 20:10 by mcpre
.....
Router#show memory
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 7F4216AD6010 2232382384 195274364 2037108020 2036934440 1332474908
lsmpi_io 7F41C34CE1A8 6295128 6294304 824 824 412
=================================================
測試一下 Cisco 設備的系統資訊
[root@bbb /]# snmpwalk -v2c -c public 192.168.111.158 system
SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, CSR1000V Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 15.3(3)S2, RELEASE SOFTWARE (fc3)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2014 by Cisco Systems, Inc.
Compiled Fri 31-Jan-14 20:10 by mcpre
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.1.1537
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (10206994) 1 day, 4:21:09.94
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: Router
SNMPv2-MIB::sysLocation.0 = STRING:
SNMPv2-MIB::sysServices.0 = INTEGER: 78
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
(2)使用 export MIBS , 以 CISCO-MEMORY-POOL-MIB 為例
[root@bbb /]# MIBS=+CISCO-MEMORY-POOL-MIB
[root@bbb /]# export MIBS
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 .1.3.6.1.4.1.9.9.48
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.1 = STRING: Processor
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.14 = STRING: lsmpi_io
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.1 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.14 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.1 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.14 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.1 = Gauge32: 195206240 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.14 = Gauge32: 6294296 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.1 = Gauge32: 2037176144 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.14 = Gauge32: 832 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.1 = Gauge32: 1332474908 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.14 = Gauge32: 412 bytes
(3) 未使用 CISCO-MEMORY-POOL-MIB
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 .1.3.6.1.4.1.9.9.48
SNMPv2-SMI::enterprises.9.9.48.1.1.1.2.1 = STRING: "Processor"
SNMPv2-SMI::enterprises.9.9.48.1.1.1.2.14 = STRING: "lsmpi_io"
SNMPv2-SMI::enterprises.9.9.48.1.1.1.3.1 = INTEGER: 0
SNMPv2-SMI::enterprises.9.9.48.1.1.1.3.14 = INTEGER: 0
SNMPv2-SMI::enterprises.9.9.48.1.1.1.4.1 = INTEGER: 1
SNMPv2-SMI::enterprises.9.9.48.1.1.1.4.14 = INTEGER: 1
SNMPv2-SMI::enterprises.9.9.48.1.1.1.5.1 = Gauge32: 195206240
SNMPv2-SMI::enterprises.9.9.48.1.1.1.5.14 = Gauge32: 6294296
SNMPv2-SMI::enterprises.9.9.48.1.1.1.6.1 = Gauge32: 2037176144
SNMPv2-SMI::enterprises.9.9.48.1.1.1.6.14 = Gauge32: 832
SNMPv2-SMI::enterprises.9.9.48.1.1.1.7.1 = Gauge32: 1332474908
SNMPv2-SMI::enterprises.9.9.48.1.1.1.7.14 = Gauge32: 412
一般而言,有導入使用 MIB 檔會比較方便閱讀與理解.
(4)透過 load mib 參數
[root@bbb/]# snmpwalk -c public -v2c 192.168.111.158 CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolMIB
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.1 = STRING: Processor
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.14 = STRING: lsmpi_io
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.1 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.14 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.1 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.14 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.1 = Gauge32: 195216024 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.14 = Gauge32: 6294296 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.1 = Gauge32: 2037166360 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.14 = Gauge32: 832 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.1 = Gauge32: 1332474908 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.14 = Gauge32: 412 bytes
或
[root@bbb /]# snmpwalk -c public -v2c -m CISCO-MEMORY-POOL-MIB 192.168.111.158 .1.3.6.1.4.1.9.9.48
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.1 = STRING: Processor
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.14 = STRING: lsmpi_io
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.1 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.14 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.1 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.14 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.1 = Gauge32: 195216016 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.14 = Gauge32: 6294296 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.1 = Gauge32: 2037166368 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.14 = Gauge32: 832 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.1 = Gauge32: 1332474908 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.14 = Gauge32: 412 bytes
(5) OIDs 表示法
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 .iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoMemoryPoolMIB
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.1 = STRING: Processor
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.14 = STRING: lsmpi_io
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.1 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.14 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.1 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.14 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.1 = Gauge32: 195210248 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.14 = Gauge32: 6294296 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.1 = Gauge32: 2037172136 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.14 = Gauge32: 832 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.1 = Gauge32: 1332474908 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.14 = Gauge32: 412 bytes
[root@bbb /]#
如未載入 CISCO-MEMORY-POOL-MIB
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 .iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoMemoryPoolMIB
No log handling enabled - turning on stderr logging
.iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoMemoryPoolMIB: Unknown Object Identifier (Sub-id not found: enterprises -> cisco)
[root@bbb /]#
改用數字
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 .1.3.6.1.4.1.9.9.48
SNMPv2-SMI::enterprises.9.9.48.1.1.1.2.1 = STRING: "Processor"
SNMPv2-SMI::enterprises.9.9.48.1.1.1.2.14 = STRING: "lsmpi_io "
SNMPv2-SMI::enterprises.9.9.48.1.1.1.3.1 = INTEGER: 0
SNMPv2-SMI::enterprises.9.9.48.1.1.1.3.14 = INTEGER: 0
SNMPv2-SMI::enterprises.9.9.48.1.1.1.4.1 = INTEGER: 1
SNMPv2-SMI::enterprises.9.9.48.1.1.1.4.14 = INTEGER: 1
SNMPv2-SMI::enterprises.9.9.48.1.1.1.5.1 = Gauge32: 195210248
SNMPv2-SMI::enterprises.9.9.48.1.1.1.5.14 = Gauge32: 6294296
SNMPv2-SMI::enterprises.9.9.48.1.1.1.6.1 = Gauge32: 2037172136
SNMPv2-SMI::enterprises.9.9.48.1.1.1.6.14 = Gauge32: 832
SNMPv2-SMI::enterprises.9.9.48.1.1.1.7.1 = Gauge32: 1332474908
SNMPv2-SMI::enterprises.9.9.48.1.1.1.7.14 = Gauge32: 412
[root@bbb snmp]#
(6) snmptranslate
可參考 http://net-snmp.sourceforge.net/tutorial/tutorial-5/commands/mib-options.html
[root@bbb /]# snmptranslate 1.3.6.1.4.1.9.9.48
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolMIB
[root@bbb /]#
未載入 CISCO-MEMORY-POOL-MIB
[root@bbb /]# snmptranslate 1.3.6.1.4.1.9.9.48
SNMPv2-SMI::enterprises.9.9.48
[root@bbb /]# snmptranslate -IR -On ciscoMemoryPoolMIB
Unknown object identifier: ciscoMemoryPoolMIB
[root@bbb /]#
指定載入 CISCO-MEMORY-POOL-MIB
[root@bbb /]# snmptranslate -m CISCO-MEMORY-POOL-MIB -IR -Onf ciscoMemoryPoolMIB
.iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoMemoryPoolMIB
或預設載入 CISCO-MEMORY-POOL-MIB
[root@bbb /]# snmptranslate -IR -On ciscoMemoryPoolMIB
.1.3.6.1.4.1.9.9.48
[root@bbb /]# snmptranslate .1.3.6.1.4.1.9.9.48
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolMIB
[root@bbb /]#
OIDs 的二種表示法
[root@bbb /]# snmptranslate -IR -Onf ciscoMemoryPoolMIB
.iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoMemoryPoolMIB
[root@bbb /]# snmptranslate -IR -On ciscoMemoryPoolMIB
.1.3.6.1.4.1.9.9.48
[root@bbb /]#
(7)SNMP OIDs Tree [ CISCO-MEMORY-POOL-MIB ]
[root@bbb /]# snmptranslate -Tp -m CISCO-MEMORY-POOL-MIB
+--iso(1)
|
+--org(3)
|
+--dod(6)
|
+--internet(1)
|
+--directory(1)
|
+--mgmt(2)
| |
| +--mib-2(1)
| |
| +--transmission(10)
|
+--experimental(3)
|
+--private(4)
| |
| +--enterprises(1)
| |
| +--cisco(9)
| +--ciscoProducts(1)
| +--local(2)
| +--temporary(3)
| +--pakmon(4)
| +--workgroup(5)
| +--otherEnterprises(6)
| | +--ciscoSB(1)
| | +--ciscoSMB(2)
| |
| +--ciscoAgentCapability(7)
| +--ciscoConfig(8)
| +--ciscoMgmt(9)
| | +--ciscoMemoryPoolMIB(48)
| | |
| | +--ciscoMemoryPoolObjects(1)
| | | |
| | | +--ciscoMemoryPoolTable(1)
| | | | |
| | | | +--ciscoMemoryPoolEntry(1)
| | | | | Index: ciscoMemoryPoolType
| | | | |
| | | | +-- ---- Integer32 ciscoMemoryPoolType(1)
| | | | | Textual Convention: CiscoMemoryPoolTypes
| | | | | Range: 1..65535
| | | | +-- -R-- String ciscoMemoryPoolName(2)
| | | | | Textual Convention: DisplayString
| | | | | Size: 0..255
| | | | +-- -R-- Integer32 ciscoMemoryPoolAlternate(3)
| | | | | Range: 0..65535
| | | | +-- -R-- EnumVal ciscoMemoryPoolValid(4)
| | | | | Textual Convention: TruthValue
| | | | | Values: true(1), false(2)
| | | | +-- -R-- Gauge ciscoMemoryPoolUsed(5)
| | | | +-- -R-- Gauge ciscoMemoryPoolFree(6)
| | | | +-- -R-- Gauge ciscoMemoryPoolLargestFree(7)
| | | |
| | | +--ciscoMemoryPoolUtilizationTable(2)
| | | |
| | | +--ciscoMemoryPoolUtilizationEntry(1)
| | | |
| | | +-- -R-- INTEGER ciscoMemoryPoolUtilization1Min(1)
| | | | Textual Convention: Percent
| | | | Range: 0..100
| | | +-- -R-- INTEGER ciscoMemoryPoolUtilization5Min(2)
| | | | Textual Convention: Percent
| | | | Range: 0..100
| | | +-- -R-- INTEGER ciscoMemoryPoolUtilization10Min(3)
| | | Textual Convention: Percent
| | | Range: 0..100
| | |
| | +--ciscoMemoryPoolNotifications(2)
| | |
| | +--ciscoMemoryPoolConformance(3)
| | |
| | +--ciscoMemoryPoolCompliances(1)
| | | |
| | | +--ciscoMemoryPoolCompliance(1)
| | | +--ciscoMemoryPoolComplianceRev1(2)
| | |
| | +--ciscoMemoryPoolGroups(2)
| | |
| | +--ciscoMemoryPoolGroup(1)
| | +--ciscoMemoryPoolUtilizationGroup(2)
| |
| +--ciscoExperiment(10)
| +--ciscoAdmin(11)
| | +--ciscoProxy(1)
| | | |
| | | +--ciscoPartyProxy(1)
| | | |
| | | +--ciscoContextProxy(2)
| | |
| | +--ciscoRptrGroupObjectID(2)
| | | +--ciscoUnknownRptrGroup(1)
| | | +--cisco2505RptrGroup(2)
| | | +--cisco2507RptrGroup(3)
| | | +--cisco2516RptrGroup(4)
| | | +--ciscoWsx5020RptrGroup(5)
| | |
| | +--ciscoChipSets(3)
| | +--ciscoChipSetSaint1(1)
| | +--ciscoChipSetSaint2(2)
| | +--ciscoChipSetSaint3(3)
| | +--ciscoChipSetSaint4(4)
.............................
.............................
(8) 實戰透過 snmpwalk 取得 ciscoMemoryPool 資訊
可參考http://www.oidview.com/mibs/9/CISCO-MEMORY-POOL-MIB.html
以 Processor Memory Pool 及 lsmpi_io Memory Pool 為例
[root@bbb /]# snmptranslate -IR -Onf ciscoMemoryPoolName
.iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoMemoryPoolMIB.ciscoMemoryPoolObjects.ciscoMemoryPoolTable.ciscoMemoryPoolEntry.ciscoMemoryPoolName
或
[root@bbb /]# snmptranslate -m CISCO-MEMORY-POOL-MIB -IR -Onf ciscoMemoryPoolName
.iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoMemoryPoolMIB.ciscoMemoryPoolObjects.ciscoMemoryPoolTable.ciscoMemoryPoolEntry.ciscoMemoryPoolName
[root@bbb /]# snmptranslate -m CISCO-MEMORY-POOL-MIB -IR -On ciscoMemoryPoolName
.1.3.6.1.4.1.9.9.48.1.1.1.2
[root@bbb /]#
或
[root@bbb ~]# snmpwalk -c public -v2c 192.168.111.158 1.3.6.1.4.1.9.9.48
SNMPv2-SMI::enterprises.9.9.48.1.1.1.2.1 = STRING: "Processor"
SNMPv2-SMI::enterprises.9.9.48.1.1.1.2.14 = STRING: "lsmpi_io"
SNMPv2-SMI::enterprises.9.9.48.1.1.1.3.1 = INTEGER: 0
SNMPv2-SMI::enterprises.9.9.48.1.1.1.3.14 = INTEGER: 0
SNMPv2-SMI::enterprises.9.9.48.1.1.1.4.1 = INTEGER: 1
SNMPv2-SMI::enterprises.9.9.48.1.1.1.4.14 = INTEGER: 1
SNMPv2-SMI::enterprises.9.9.48.1.1.1.5.1 = Gauge32: 195206240
SNMPv2-SMI::enterprises.9.9.48.1.1.1.5.14 = Gauge32: 6294296
SNMPv2-SMI::enterprises.9.9.48.1.1.1.6.1 = Gauge32: 2037176144
SNMPv2-SMI::enterprises.9.9.48.1.1.1.6.14 = Gauge32: 832
SNMPv2-SMI::enterprises.9.9.48.1.1.1.7.1 = Gauge32: 1332474908
SNMPv2-SMI::enterprises.9.9.48.1.1.1.7.14 = Gauge32: 412
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 .1.3.6.1.4.1.9.9.48
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.1 = STRING: Processor
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.14 = STRING: lsmpi_io
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.1 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolAlternate.14 = INTEGER: 0
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.1 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolValid.14 = INTEGER: true(1)
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.1 = Gauge32: 195210248 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.14 = Gauge32: 6294296 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.1 = Gauge32: 2037172136 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.14 = Gauge32: 832 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.1 = Gauge32: 1332474908 bytes
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLargestFree.14 = Gauge32: 412 bytes
[root@bbb /]#
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 1.3.6.1.4.1.9.9.48.1.1.1.2
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.1 = STRING: Processor
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName.14 = STRING: lsmpi_io
Processor MemoryPool
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 1.3.6.1.4.1.9.9.48.1.1.1.5.1
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.1 = Gauge32: 195206240 bytes
[root@bbb log]#
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 1.3.6.1.4.1.9.9.48.1.1.1.6.1
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.1 = Gauge32: 2037176144 bytes
lsmpi_io MemoryPool
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 1.3.6.1.4.1.9.9.48.1.1.1.5.14
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.14 = Gauge32: 6294296 bytes
[root@bbb /]# snmpwalk -c public -v2c 192.168.111.158 1.3.6.1.4.1.9.9.48.1.1.1.6.14
CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.14 = Gauge32: 832 bytes
對照 Cicso 設備下指令顯示的資訊,看到的資訊應該跟 snmpget 到的資訊差不多才是
Router#show memory
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 7F4216AD6010 2232382384 195274364 2037108020 2036934440 1332474908
lsmpi_io 7F41C34CE1A8 6295128 6294304 824 824 412
....
....
---End
Cacti Demo
加碼 Demo
FortiGate SNMP OIDs
fgSysDiskUsage 1.3.6.1.4.1.12356.101.4.1.6
fgSysDiskCapacity 1.3.6.1.4.1.12356.101.4.1.7
FortiGate CLI
FortiGateCMD#dia sys logdisk usage
http://www.oidview.com/mibs/12356/FORTINET-FORTIGATE-MIB.html
[root@bbb mibs]# snmptranslate -m FORTINET-FORTIGATE-MIB -IR -Onf fgSysDiskUsage
.iso.org.dod.internet.private.enterprises.fortinet.fnFortiGateMib.fgSystem.fgSystemInfo.fgSysDiskUsage
[root@bbb mibs]# snmptranslate -m FORTINET-FORTIGATE-MIB -IR -On fgSysDiskUsage
.1.3.6.1.4.1.12356.101.4.1.6
[root@bbb mibs]#
[root@bbb mibs]# snmptranslate -m FORTINET-FORTIGATE-MIB -IR -Onf fgSysDiskCapacity
.iso.org.dod.internet.private.enterprises.fortinet.fnFortiGateMib.fgSystem.fgSystemInfo.fgSysDiskCapacity
[root@bbb mibs]# snmptranslate -m FORTINET-FORTIGATE-MIB -IR -On fgSysDiskCapacity
.1.3.6.1.4.1.12356.101.4.1.7
[root@bbb mibs]#
FortiGate
FortiGate
Cacti
2016年11月8日 星期二
三論 SNMP OIDs
三論 SNMP OIDs
基礎入門
(1)利用SNMP OIDs 加入 Zabbix 監控
http://xrcd2.blogspot.tw/2012/10/snmp-oids-zabbix.html
(2)再論 SNMP OIDs
http://xrcd2.blogspot.tw/2012/10/snmp-oid.html
本文開始
(3)三論 SNMP OIDs
在 CheckPoint官網 DownLoad 該 MIB 以 R77 為例.
透過修改 snmpd.conf 的方式,可載入該 MIB.
[root@bbb /]# cat /etc/snmp/snmpd.conf
rocommunity public 127.0.0.1/32
MIB +/usr/share/snmp/mibs/CHECK-R77-MIB.txt
[root@bbb /]#
CHECK-R77-MIB 內文
.....
CHECKPOINT-MIB DEFINITIONS ::= BEGIN
-- SUBTREE: 1.3.6.1.4.1.2620.1
-- iso.org.dod.internet.private.enterprises.checkpoint.products
.....
checkpoint OBJECT IDENTIFIER ::= { enterprises 2620 }
products OBJECT IDENTIFIER ::= { checkpoint 1 }
tables OBJECT IDENTIFIER ::= { checkpoint 500 }
fw OBJECT IDENTIFIER ::= { products 1 }
.....
fwPolicyStat OBJECT IDENTIFIER ::= { fw 25 }
.......
fwNumConn OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Number of connections"
::= { fwPolicyStat 3 }
.......
下面這個值是可以從上面的內文中看出....當然用 snmptranslate 這個最快...
但是要會找 MIB 文中的 Key Word...因為這才是根本的出處...
要不然 fwNumConn 這個東西怎麼來呢??!!
MIB OID ===> .1.3.6.1.4.1.2620.1.1.25.3.0
====> "Number of connections"
驗證
[root@bbb tmp]# snmptranslate -m CHECKPOINT-MIB -IR -On fwNumConn
.1.3.6.1.4.1.2620.1.1.25.3
[root@bbb tmp]#
[root@bbb tmp]# snmptranslate -m CHECKPOINT-MIB -IR -Onf fwNumConn
.iso.org.dod.internet.private.enterprises.checkpoint.products.fw.fwPolicyStat.fwNumConn
[root@bbb tmp]#
取得
[root@bbb tmp]# snmpget -v2c -c public 192.168.xxx.xxx .1.3.6.1.4.1.2620.1.1.25.3.0
SNMPv2-SMI::enterprises.2620.1.1.25.3.0 = Counter32: 2
[root@bbb tmp]#
那網管軟體就可以做 template 了,以 cacti 為例:
其它參考資訊.
https://sc1.checkpoint.com/documents/R76/CP_R76_Splat_AdminGuide/51553.htm
http://www.oidview.com/mibs/2620/CHECKPOINT-MIB.html
其它 監控
SmartView Monitor
2016年7月12日 星期二
以 SNMP 為 Base 的另一套網管軟體 observium
以 SNMP 為 Base 的另一套網管軟體 observium (OpenSource) (LAMP)
URL
http://www.observium.org/
官網上的其它URL
screenshots
http://www.observium.org/docs/screenshots/
docs
http://www.observium.org/docs/
demo
http://demo.observium.org/
RHEL/CentOS6 Install
http://www.observium.org/docs/install_rhel6/
URL
http://www.observium.org/
官網上的其它URL
screenshots
http://www.observium.org/docs/screenshots/
docs
http://www.observium.org/docs/
demo
http://demo.observium.org/
RHEL/CentOS6 Install
http://www.observium.org/docs/install_rhel6/
2013年3月26日 星期二
JDK 1.6.0_43 64 Bit 無法使用 jvm snmp
JDK 1.6.0_43 64 Bit 無法使用 jvm snmp ,一定要使用檔案的方式宣告方可使用.
之前使用直寫的方式,在 java 32 Bit 的版本是沒問題的.
另外一個問題是 /etc/hosts 一定要將主機名稱寫入,要不然 jmx 是無法使用
-Djava.rmi.server.hostname=192.168.x.x 這個參數!
java snmp 以檔案方式宣告如下:
tomcat startup.sh
export JAVA_OPTS="-Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -Dcom.sun.management.config.file=/usr/local/tomcat/bin/snmp.properties -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.x.x. -Dcom.sun.management.jmxremote.port=9012 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
[root@Test-Tomcat bin]# cat snmp.acl
acl = {
{
communities = public
access = read-only
managers = localhost
}
}
[root@Test-Tomcat bin]# cat snmp.properties
com.sun.management.snmp.interface=0.0.0.0
com.sun.management.snmp.port=1610
com.sun.management.snmp.acl=/usr/local/tomcat/bin/snmp.acl
直寫方式如下:
export JAVA_OPTS="="-Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.xx.xx -Dcom.sun.management.jmxremote
.port=9012 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.managemen
t.snmp.port=1610 -Dcom.sun.management.snmp.acl.file=/tmp/snmp.acl -Dcom.sun.management.snmp.interface=0.0.0.0"
之前使用直寫的方式,在 java 32 Bit 的版本是沒問題的.
另外一個問題是 /etc/hosts 一定要將主機名稱寫入,要不然 jmx 是無法使用
-Djava.rmi.server.hostname=192.168.x.x 這個參數!
java snmp 以檔案方式宣告如下:
tomcat startup.sh
export JAVA_OPTS="-Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -Dcom.sun.management.config.file=/usr/local/tomcat/bin/snmp.properties -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.x.x. -Dcom.sun.management.jmxremote.port=9012 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
[root@Test-Tomcat bin]# cat snmp.acl
acl = {
{
communities = public
access = read-only
managers = localhost
}
}
[root@Test-Tomcat bin]# cat snmp.properties
com.sun.management.snmp.interface=0.0.0.0
com.sun.management.snmp.port=1610
com.sun.management.snmp.acl=/usr/local/tomcat/bin/snmp.acl
直寫方式如下:
export JAVA_OPTS="="-Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.xx.xx -Dcom.sun.management.jmxremote
.port=9012 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.managemen
t.snmp.port=1610 -Dcom.sun.management.snmp.acl.file=/tmp/snmp.acl -Dcom.sun.management.snmp.interface=0.0.0.0"
2013年1月5日 星期六
tomcat Error: Failed to start SNMP adaptor with address
之前在測試 JVM SNMP + JMX 時,皆是以 Tomcat 做為 LAB 的測試標的.
但在使用 /usr/local/tomcat/shutdown.sh 將 tomcat 的服務停止時,
總會產生 tomcat Error: Failed to start SNMP adaptor with address 這樣的訊息.
最後總是直接使用 killall -9 去停止該項服務.最後 google 到 解法.
資料參考 http://www.tikalk.com/java/forums/when-use-tomcat-catalina-opts-instead-java-opts
將 JMX & SNMP 的 JAVA_OPTS 從 /etc/profile.d/java.sh
移到 /usr/local/tomcat/startup.sh
在上方處放上原先設定:
export JAVA_OPTS="-Dcom.sun.management.snmp.port=1610 -Dcom.sun.management.snmp.acl.file=/usr/java/jre/lib/management/snmp.acl -Dcom.sun.management.snmp.interface=0.0.0.0 -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.100.101 -Dcom.sun.management.jmxremote.port=9012 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
相關文章如下:
Cacti JVM Monitoring template ( Part I )
http://xrcd2.blogspot.tw/2012/12/cacti-jvm-monitoring-template.html
Cacti JVM Monitoring template ( Part II )
http://xrcd2.blogspot.tw/2013/01/cacti-jvm-monitoring-template-part-ii.html
jmx4perl ( JMX access for Perl )
http://xrcd2.blogspot.tw/2013/01/jmx4perl-jmx-access-for-perl.html
JVM Monitor tools
http://visualvm.java.net/
但在使用 /usr/local/tomcat/shutdown.sh 將 tomcat 的服務停止時,
總會產生 tomcat Error: Failed to start SNMP adaptor with address 這樣的訊息.
最後總是直接使用 killall -9 去停止該項服務.最後 google 到 解法.
資料參考 http://www.tikalk.com/java/forums/when-use-tomcat-catalina-opts-instead-java-opts
將 JMX & SNMP 的 JAVA_OPTS 從 /etc/profile.d/java.sh
移到 /usr/local/tomcat/startup.sh
在上方處放上原先設定:
export JAVA_OPTS="-Dcom.sun.management.snmp.port=1610 -Dcom.sun.management.snmp.acl.file=/usr/java/jre/lib/management/snmp.acl -Dcom.sun.management.snmp.interface=0.0.0.0 -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.100.101 -Dcom.sun.management.jmxremote.port=9012 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
相關文章如下:
Cacti JVM Monitoring template ( Part I )
http://xrcd2.blogspot.tw/2012/12/cacti-jvm-monitoring-template.html
Cacti JVM Monitoring template ( Part II )
http://xrcd2.blogspot.tw/2013/01/cacti-jvm-monitoring-template-part-ii.html
jmx4perl ( JMX access for Perl )
http://xrcd2.blogspot.tw/2013/01/jmx4perl-jmx-access-for-perl.html
JVM Monitor tools
http://visualvm.java.net/
2012年11月16日 星期五
Cisco Router Interface Reliability Status Monitor ( DIY cacti template )
延續 再論 SNMP OIDs http://xrcd2.blogspot.tw/2012/10/snmp-oid.html 這個主題,上次我已經提到如何將 Cisco Router Interface Reliability 加入 zabbix 的監控,這次我將同樣的SNMP OIDs 改成
cacti template 的方式,進行監控!
sample output
Reference: http://forums.cacti.net/viewtopic.php?f=12&t=17722
vi /cacti_dir/resource/snmp_queries/interface.xml
<ifReliability>
<name>Reliability</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.4.1.9.2.2.1.1.22</oid>
</ifReliability>
接下來就圖解說明:
Create Graph Templates
Create Items
Create Data Queries
Create New Graphs
下圖為 Interface Reliability + Interface Status + Interface Traffic
以下的URL為本人自行製作的 template 使用前請務必先將
cacti_data_query_snmp_-_interface_statistics先行備份.
滙出方式 (略)
cacti/console/export templates/
滙入方式(略)
cacti/console/import templates/
cacti environment: Centos 6.3 + cacti 0.8.8.a
data_query:
http://www.mason-arts.com/xrcd2/xml/cacti_data_query_snmp_-_interface_statistics_reliability.xml
data_template:
http://www.mason-arts.com/xrcd2/xml/cacti_data_template_interface_-_reliability.xml
graph_template:
http://www.mason-arts.com/xrcd2/xml/cacti_graph_template_interface_-_reliability.xml
上述的 Template 同步發表於 cacti 官方論壇內
http://forums.cacti.net/viewtopic.php?f=12&t=48912
reliability.zip http://forums.cacti.net/download/file.php?id=26813
訂閱:
文章 (Atom)