- Community Home
- >
- Storage
- >
- HPE Nimble Storage
- >
- Array Setup and Networking
- >
- Re: Nimble storage monitoring with check_mk or snm...
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-11-2016 11:52 AM
08-11-2016 11:52 AM
Re: Nimble storage monitoring with check_mk or snmp
Hi Rohan-
I made some changes to your check_mk plugin that add more per volume performance metrics.
It seems to work, but I think there may be some kind of undocumented unit mismatch because my numbers appear to be off by at least a factor of 1000.
My question to the nimble developers is...
Is it possible that this MIB entry-
volStatTimeEpochSeconds OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Time at which the sample was taken, measured in seconds since UNIX epoch."
::= { volEntry 12 }
should actually be milliseconds instead of seconds?
I was thinking maybe byte counters might actually be kbyte counters, but the rates are low for IOPS as well.
It's also possible that I screwed something up and can't see it.
Here's the code...
-------------------------------------------------------------------------------------
#
# Nimble Volume Check (Supports inventory and performance data)
#
# Author: Rohan Fallon and Patrick Gavin
#
# FileName: nimble_vol
# Location: ~/local/share/check_mk/checks
# Usage: cmk --checks nimble -II rgtnimbleprod
#
#
nimble_default_values = (95.0, 98.0)
def inventory_nimble_vol(info):
# Debug: lets see how the data we get looks like
# print info
# return []
for vol, volsize, volusage, state, connections, stat_time, read_ops, read_bytes, write_ops, write_bytes in info:
if state == "1":
yield (vol, nimble_default_values)
def check_nimble_vol(item, params, info):
# unpack check parameters
warn, crit = params
for vol, volsize, volusage, state, connections, stat_time, read_ops, read_bytes, write_ops, write_bytes in info:
if vol == item:
if state == "1":
size_gb = int(volsize) / 1024.0
usage_gb = int(volusage) / 1024.0
usage_percent = float(volusage) / float(volsize) * 100.0
read_iops = get_rate("read_ops.%s" % item, int(stat_time), int(read_ops))
write_iops = get_rate("write_ops.%s" % item, int(stat_time), int(write_ops))
read_bw = get_rate("read_bytes.%s" % item, int(stat_time), int(read_bytes))
write_bw = get_rate("write_bytes.%s" % item, int(stat_time), int(write_bytes))
perfdata = [ ("percent", usage_percent, warn, crit ),
("connections", connections, 0, 0),
("read_iops", read_iops, 0, 0),
("write_iops", read_iops, 0, 0),
("read_bandwidth", read_bw, 0, 0),
("write_bandwidth", write_bw, 0, 0),
]
if usage_percent > crit:
return (2, "CRITICAL - Volume online - Connections = " + connections + " - Size = " + str(size_gb) + "Gb - Usage = " + "{0:6.2f}".format(usage_percent)+ "%", perfdata )
elif usage_percent > warn:
return (1, "WARN - Volume online - Connections = " + connections + " - Size = " + str(size_gb) + "Gb - Usage = " + "{0:6.2f}".format(usage_percent)+ "%" , perfdata)
else:
return (0, "OK - Volume online - Connections = " + connections + " - Size = " + str(size_gb) + "Gb - Usage = " + "{0:6.2f}".format(usage_percent)+ "%", perfdata)
else:
return (2, "CRITICAL - Volume %s offline " % vol)
return (3, "UNKNOWN - Volume not found")
check_info["nimble_vol"] = {
'check_function' : check_nimble_vol,
'inventory_function' : inventory_nimble_vol,
'service_description' : 'Nimble Volume %s',
'has_perfdata' : True,
'snmp_info' : (".1.3.6.1.4.1.37447.1.2.1" , [ "3", "4", "6", "10", "11", "12", "13", "15", "34", "36" ] )
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-12-2016 03:22 PM
08-12-2016 03:22 PM
Re: Nimble storage monitoring with check_mk or snmp
Here's the code that assumes milliseconds instead of seconds. The values it produces are consistent.
#
# Nimble Volume Check (Supports inventory and performance data)
#
# Author: Rohan Fallon and Patrick Gavin
#
# FileName: nimble_vol
# Location: ~/local/share/check_mk/checks
# Usage: cmk --checks nimble_vol -II rgtnimbleprod
#
#
nimble_default_values = (95.0, 98.0)
def inventory_nimble_vol(info):
# Debug: lets see how the data we get looks like
# print info
# return []
for vol, volsize, volusage, state, connections, stat_time, read_ops, read_bytes, write_ops, write_bytes in info:
if state == "1":
yield (vol, nimble_default_values)
def check_nimble_vol(item, params, info):
# unpack check parameters
warn, crit = params
for vol, volsize, volusage, state, connections, stat_time, read_ops, read_bytes, write_ops, write_bytes in info:
if vol == item:
if state == "1":
stat_secs = int(stat_time) / 1000
size_gb = int(volsize) / 1024.0
usage_gb = int(volusage) / 1024.0
usage_percent = float(volusage) / float(volsize) * 100.0
read_iops = get_rate("read_ops.%s" % item, stat_secs, int(read_ops))
write_iops = get_rate("write_ops.%s" % item, stat_secs, int(write_ops))
read_bw = get_rate("read_bytes.%s" % item, stat_secs, int(read_bytes))
write_bw = get_rate("write_bytes.%s" % item, stat_secs, int(write_bytes))
perfdata = [ ("percent", usage_percent, warn, crit ),
("connections", connections, 0, 0),
("read_iops", read_iops, 0, 0),
("write_iops", read_iops, 0, 0),
("read_bandwidth", read_bw, 0, 0),
("write_bandwidth", write_bw, 0, 0),
]
if usage_percent > crit:
return (2, "CRITICAL - Volume online - Connections = " + connections + " - Size = " + str(size_gb) + "Gb - Usage = " + "{0:6.2f}".format(usage_percent)+ "%", perfdata )
elif usage_percent > warn:
return (1, "WARN - Volume online - Connections = " + connections + " - Size = " + str(size_gb) + "Gb - Usage = " + "{0:6.2f}".format(usage_percent)+ "%" , perfdata)
else:
return (0, "OK - Volume online - Connections = " + connections + " - Size = " + str(size_gb) + "Gb - Usage = " + "{0:6.2f}".format(usage_percent)+ "%", perfdata)
else:
return (2, "CRITICAL - Volume %s offline " % vol)
return (3, "UNKNOWN - Volume not found")
check_info["nimble_vol"] = {
'check_function' : check_nimble_vol,
'inventory_function' : inventory_nimble_vol,
'service_description' : 'Nimble Volume %s',
'has_perfdata' : True,
'snmp_info' : (".1.3.6.1.4.1.37447.1.2.1" , [ "3", "4", "6", "10", "11", "12", "13", "15", "34", "36" ] )
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-23-2018 03:30 AM
01-23-2018 03:30 AM
Re: Nimble storage monitoring with check_mk or snmp
Hey, what happened to your template on the share ???? cant find it :-(
And I cant of need et to our new Zabbix setup and new Nimble cs1000
Thx for your help.
- « Previous
-
- 1
- 2
- Next »