If anyone is looking to pull performance metrics from the Dell EMC Unity Unisphere servers that they're running I hope that this saves you some time.
Useful References:
Dell Unisphere® Management REST API Programmer's Guide
Unisphere® Management REST API Reference Guide
Dell EMC Unity Performance Metrics
Errors that I was running into:
- "Unable to verify first certifciate" This may be being bypassed in Postman due to the settings but the Dell cert was needed by Logstash in order for this to work.
- "error" => "PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"
Testing in Postman and following the directions from the vexpose.blog links. This is what I ended up with in the headers section. Auth section was, Basic and then the Dell Unisphere un/pass.
If you click on the "Code" button in the upper right hand corner of that section you get the headers and the link that you'll have to use in with the http_poller plugin.
curl --location --request GET 'https://xx.xx.xx.xx/api/types/metricValue/instances?filter=path%20eq%20%22sp.*.cpu.summary.utilization%22' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-EMC-REST-CLIENT: true' \
--header 'Authorization: Basic TW9uaXRvcmluZ1VzZXI6U3VtbWVyMjAyMCQk' \
--header 'Cookie: MOD_AUTH_CAS_S=d62275a517efc66cc448f0a2aa46006e0df23e59; mod_sec_emc=value2&a619ae23d32a7c58d12182558a3557493b481271e8597cc4085b7ac8c0e46ebb&value1&5b9HL1RpzotPB%2FWjMI4XiWFaKRxgC%2FFc4dCFdne8lqQ%3D%0A&value3&1'
Logstash config:
input {
http_poller {
urls => {
test1 => {
# Supports all options supported by ruby's Manticore HTTP client
method => get
user => "<dell_emc_username>"
password => "<password>"
url => "https://xx.xx.xx.xx/api/types/metricValue/instances?filter=path%20eq%20%22sp.*.cpu.summary.utilization%22"
headers => {
Accept => "application/json"
"Content-Type" => "application/json"
"X-EMC-REST-CLIENT" => true
}
}
}
request_timeout => 60
# Supports "cron", "every", "at" and "in" schedules by rufus scheduler
schedule => { cron => "* * * * * UTC"}
codec => "json"
cacert => "<path_to_website_cert>"
}
}
output {
elasticsearch {
hosts => ["https://abc.com:9243"]
manage_template => false
user => <username>
password => <password>
ssl => true
cacert => "<path_to_elastic_cert"
index => "dell-emc"
}
}