How to integration HP OneView with Nagios.
Posted: Thu Mar 07, 2019 10:53 am
Need to monitor HP OneView server hardware components.
I have 160 plus servers to monitor for HP OneView. I created plugin to monitor all servers, I am reading all server from HP OneView and putting into list and iterating the list and adding check for that but after first server check it will exist from script.
Please refer the below python script(plugin):
res = requests.request("GET", server_details_url, headers=headers, verify=False)
serverList = res.json()['members']
for server in serverList:
uuid = server['uuid']
url = base_url + '/server-hardware/'"%s"%uuid+'/utilization?fields=CpuUtilization'
res = requests.request("GET", url, headers=headers, verify=False)
if res.status_code != 200:
print 'Status Code:'+str(res.status_code)
sys.exit(status['WARNING'])
metricList = res.json()['metricList']
hpOneView_CpuUtil = metricList[0]['metricSamples'][0][1]
hpOneView_CpuUtil_Float = float(hpOneView_CpuUtil)
hpOneView_CpuUtil_display = ("%.1f" % hpOneView_CpuUtil_Float)
critical_value = 90.0
warning_value = 80.0
if hpOneView_CpuUtil_Float >= critical_value:
print "CPU last min avg at " + hpOneView_CpuUtil_display + '% CRITICAL'
sys.exit(status['CRITICAL'])
elif hpOneView_CpuUtil_Float >= warning_value:
print "CPU last min avg at " + hpOneView_CpuUtil_display + '% WARNING'
sys.exit(status['WARNING'])
elif hpOneView_CpuUtil_Float < warning_value:
print "CPU last min avg at " + hpOneView_CpuUtil_display + '% OK'
sys.exit(status['OK'])
else:
print 'Script error near line 66'
sys.exit(status['UNKNOWN'])
Is it possible to check all severs using single plugin?
-If yes, so how can we pass all server to single plugin.
-If no, means we need to create 2 plugin 1st for reading the server and 2nd for pass single sever and monitor, then how to add both file in Nagios for monitor.
I have 160 plus servers to monitor for HP OneView. I created plugin to monitor all servers, I am reading all server from HP OneView and putting into list and iterating the list and adding check for that but after first server check it will exist from script.
Please refer the below python script(plugin):
res = requests.request("GET", server_details_url, headers=headers, verify=False)
serverList = res.json()['members']
for server in serverList:
uuid = server['uuid']
url = base_url + '/server-hardware/'"%s"%uuid+'/utilization?fields=CpuUtilization'
res = requests.request("GET", url, headers=headers, verify=False)
if res.status_code != 200:
print 'Status Code:'+str(res.status_code)
sys.exit(status['WARNING'])
metricList = res.json()['metricList']
hpOneView_CpuUtil = metricList[0]['metricSamples'][0][1]
hpOneView_CpuUtil_Float = float(hpOneView_CpuUtil)
hpOneView_CpuUtil_display = ("%.1f" % hpOneView_CpuUtil_Float)
critical_value = 90.0
warning_value = 80.0
if hpOneView_CpuUtil_Float >= critical_value:
print "CPU last min avg at " + hpOneView_CpuUtil_display + '% CRITICAL'
sys.exit(status['CRITICAL'])
elif hpOneView_CpuUtil_Float >= warning_value:
print "CPU last min avg at " + hpOneView_CpuUtil_display + '% WARNING'
sys.exit(status['WARNING'])
elif hpOneView_CpuUtil_Float < warning_value:
print "CPU last min avg at " + hpOneView_CpuUtil_display + '% OK'
sys.exit(status['OK'])
else:
print 'Script error near line 66'
sys.exit(status['UNKNOWN'])
Is it possible to check all severs using single plugin?
-If yes, so how can we pass all server to single plugin.
-If no, means we need to create 2 plugin 1st for reading the server and 2nd for pass single sever and monitor, then how to add both file in Nagios for monitor.